42 lines
		
	
	
		
			795 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			795 B
		
	
	
	
		
			Go
		
	
	
	
	
	
// Package metrics is an interface for instrumentation.
 | 
						|
package metrics
 | 
						|
 | 
						|
type Fields map[string]string
 | 
						|
 | 
						|
// Metrics provides a way to instrument application data
 | 
						|
type Metrics interface {
 | 
						|
	Counter(id string) Counter
 | 
						|
	Gauge(id string) Gauge
 | 
						|
	Histogram(id string) Histogram
 | 
						|
	String() string
 | 
						|
}
 | 
						|
 | 
						|
type Counter interface {
 | 
						|
	// Increment by the given value
 | 
						|
	Incr(d uint64)
 | 
						|
	// Decrement by the given value
 | 
						|
	Decr(d uint64)
 | 
						|
	// Reset the counter
 | 
						|
	Reset()
 | 
						|
	// Label the counter
 | 
						|
	WithFields(f Fields) Counter
 | 
						|
}
 | 
						|
 | 
						|
type Gauge interface {
 | 
						|
	// Set the gauge value
 | 
						|
	Set(d int64)
 | 
						|
	// Reset the gauge
 | 
						|
	Reset()
 | 
						|
	// Label the gauge
 | 
						|
	WithFields(f Fields) Gauge
 | 
						|
}
 | 
						|
 | 
						|
type Histogram interface {
 | 
						|
	// Record a timing
 | 
						|
	Record(d int64)
 | 
						|
	// Reset the histogram
 | 
						|
	Reset()
 | 
						|
	// Label the histogram
 | 
						|
	WithFields(f Fields) Histogram
 | 
						|
}
 |