46 lines
1.3 KiB
Go
46 lines
1.3 KiB
Go
package prometheus
|
|
|
|
import (
|
|
"github.com/prometheus/client_golang/prometheus"
|
|
"github.com/prometheus/client_golang/prometheus/promauto"
|
|
)
|
|
|
|
var (
|
|
TotalRequests = promauto.NewCounter(prometheus.CounterOpts{
|
|
Name: "total_requests",
|
|
Namespace: Namespace,
|
|
Subsystem: ComposerSubsystem,
|
|
Help: "total number of http requests made to osbuild-composer",
|
|
})
|
|
)
|
|
|
|
var (
|
|
ComposeRequests = promauto.NewCounter(prometheus.CounterOpts{
|
|
Name: "total_compose_requests",
|
|
Namespace: Namespace,
|
|
Subsystem: ComposerSubsystem,
|
|
Help: "total number of compose requests made to osbuild-composer",
|
|
})
|
|
)
|
|
|
|
func HTTPDurationHisto(subsystem string) *prometheus.HistogramVec {
|
|
reg := prometheus.NewRegistry()
|
|
histo := promauto.With(reg).NewHistogramVec(prometheus.HistogramOpts{
|
|
Name: "http_duration_seconds",
|
|
Namespace: Namespace,
|
|
Subsystem: subsystem,
|
|
Help: "Duration of HTTP requests.",
|
|
Buckets: []float64{.025, .05, .075, .1, .2, .5, .75, 1, 1.5, 2, 3, 4, 5, 6, 8, 10, 12, 14, 16, 20},
|
|
}, []string{"path", "tenant"})
|
|
|
|
err := prometheus.Register(histo)
|
|
if err != nil {
|
|
registered, ok := err.(prometheus.AlreadyRegisteredError)
|
|
if !ok {
|
|
panic(err)
|
|
}
|
|
// return existing counter if metrics already registered
|
|
return registered.ExistingCollector.(*prometheus.HistogramVec)
|
|
}
|
|
return histo
|
|
}
|