21 lines
587 B
Go
21 lines
587 B
Go
package db
|
|
|
|
import (
|
|
"time"
|
|
|
|
"github.com/prometheus/client_golang/prometheus"
|
|
"github.com/prometheus/client_golang/prometheus/promauto"
|
|
)
|
|
|
|
var QueryDurations = promauto.NewHistogramVec(prometheus.HistogramOpts{
|
|
Namespace: "monitor",
|
|
Subsystem: "db",
|
|
Name: "query_duration_seconds",
|
|
Help: "Shows database query durations.",
|
|
Buckets: []float64{0.02, 0.05, 0.1, 0.2, 0.5, 1, 2, 4, 6, 8, 10, 12, 15, 20},
|
|
}, []string{"query"})
|
|
|
|
func ObserveDuration(query string) func() time.Duration {
|
|
return prometheus.NewTimer(QueryDurations.WithLabelValues(query)).ObserveDuration
|
|
}
|