// https://github.com/stefanprodan/k8s-podinfo/blob/master/pkg/server/instrument.go func NewInstrument() *Instrument { // used for monitoring and alerting (RED method) histogram := prometheus.NewHistogramVec(prometheus.HistogramOpts{ Subsystem: "http", Name: "requests", Help: "Seconds spent serving HTTP requests.", Buckets: prometheus.DefBuckets, }, []string{"method", "path", "status"}) // used for horizontal pod auto-scaling (Kubernetes HPA v2) counter := prometheus.NewCounterVec( prometheus.CounterOpts{ Subsystem: "http", Name: "requests_total", Help: "The total number of HTTP requests.", }, []string{"status"}, ) prometheus.MustRegister(histogram) prometheus.MustRegister(counter) return &Instrument{ Histogram: histogram, Counter: counter, } }