1 package metrics 2 3 // Counter describes a metric that accumulates values monotonically. 4 // An example of a counter is the number of received HTTP requests. 5 type Counter interface { 6 With(labelValues ...string) Counter 7 Add(delta float64) 8 } 9 10 // Gauge describes a metric that takes specific values over time. 11 // An example of a gauge is the current depth of a job queue. 12 type Gauge interface { 13 With(labelValues ...string) Gauge 14 Set(value float64) 15 Add(delta float64) 16 } 17 18 // Histogram describes a metric that takes repeated observations of the same 19 // kind of thing, and produces a statistical summary of those observations, 20 // typically expressed as quantiles or buckets. An example of a histogram is 21 // HTTP request latencies. 22 type Histogram interface { 23 With(labelValues ...string) Histogram 24 Observe(value float64) 25 } 26