Codebase list golang-github-go-kit-kit / 0c243515-0bf2-4b25-8735-9c1038fa7c1b/v0.7.0 metrics / metrics.go
0c243515-0bf2-4b25-8735-9c1038fa7c1b/v0.7.0

Tree @0c243515-0bf2-4b25-8735-9c1038fa7c1b/v0.7.0 (Download .tar.gz)

metrics.go @0c243515-0bf2-4b25-8735-9c1038fa7c1b/v0.7.0raw · history · blame

package metrics

// Counter describes a metric that accumulates values monotonically.
// An example of a counter is the number of received HTTP requests.
type Counter interface {
	With(labelValues ...string) Counter
	Add(delta float64)
}

// Gauge describes a metric that takes specific values over time.
// An example of a gauge is the current depth of a job queue.
type Gauge interface {
	With(labelValues ...string) Gauge
	Set(value float64)
	Add(delta float64)
}

// Histogram describes a metric that takes repeated observations of the same
// kind of thing, and produces a statistical summary of those observations,
// typically expressed as quantiles or buckets. An example of a histogram is
// HTTP request latencies.
type Histogram interface {
	With(labelValues ...string) Histogram
	Observe(value float64)
}