Add Prometheus Metrics
at the first iteration, only the following metrics are collected: - HTTP metrics of each API endpoint - cache counter for request/hit/miss - histogram of storage actions, including: GetContent, PutContent, Stat, List, Move, and Delete Signed-off-by: tifayuki <tifayuki@gmail.com>
This commit is contained in:
parent
3800056b88
commit
e3c37a46e2
118 changed files with 17182 additions and 1550 deletions
72
vendor/github.com/docker/go-metrics/gauge.go
generated
vendored
Normal file
72
vendor/github.com/docker/go-metrics/gauge.go
generated
vendored
Normal file
|
@ -0,0 +1,72 @@
|
|||
package metrics
|
||||
|
||||
import "github.com/prometheus/client_golang/prometheus"
|
||||
|
||||
// Gauge is a metric that allows incrementing and decrementing a value
|
||||
type Gauge interface {
|
||||
Inc(...float64)
|
||||
Dec(...float64)
|
||||
|
||||
// Add adds the provided value to the gauge's current value
|
||||
Add(float64)
|
||||
|
||||
// Set replaces the gauge's current value with the provided value
|
||||
Set(float64)
|
||||
}
|
||||
|
||||
// LabeledGauge describes a gauge the must have values populated before use.
|
||||
type LabeledGauge interface {
|
||||
WithValues(labels ...string) Gauge
|
||||
}
|
||||
|
||||
type labeledGauge struct {
|
||||
pg *prometheus.GaugeVec
|
||||
}
|
||||
|
||||
func (lg *labeledGauge) WithValues(labels ...string) Gauge {
|
||||
return &gauge{pg: lg.pg.WithLabelValues(labels...)}
|
||||
}
|
||||
|
||||
func (lg *labeledGauge) Describe(c chan<- *prometheus.Desc) {
|
||||
lg.pg.Describe(c)
|
||||
}
|
||||
|
||||
func (lg *labeledGauge) Collect(c chan<- prometheus.Metric) {
|
||||
lg.pg.Collect(c)
|
||||
}
|
||||
|
||||
type gauge struct {
|
||||
pg prometheus.Gauge
|
||||
}
|
||||
|
||||
func (g *gauge) Inc(vs ...float64) {
|
||||
if len(vs) == 0 {
|
||||
g.pg.Inc()
|
||||
}
|
||||
|
||||
g.Add(sumFloat64(vs...))
|
||||
}
|
||||
|
||||
func (g *gauge) Dec(vs ...float64) {
|
||||
if len(vs) == 0 {
|
||||
g.pg.Dec()
|
||||
}
|
||||
|
||||
g.Add(-sumFloat64(vs...))
|
||||
}
|
||||
|
||||
func (g *gauge) Add(v float64) {
|
||||
g.pg.Add(v)
|
||||
}
|
||||
|
||||
func (g *gauge) Set(v float64) {
|
||||
g.pg.Set(v)
|
||||
}
|
||||
|
||||
func (g *gauge) Describe(c chan<- *prometheus.Desc) {
|
||||
g.pg.Describe(c)
|
||||
}
|
||||
|
||||
func (g *gauge) Collect(c chan<- prometheus.Metric) {
|
||||
g.pg.Collect(c)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue