Expose Prometheus process and go runtime metrics.

Signed-off-by: Gabi Davar <grizzly.nyo@gmail.com>
This commit is contained in:
Gabi Davar 2024-04-26 16:02:51 +03:00
parent a7bdbec9e3
commit 531b1f1d59
No known key found for this signature in database
GPG Key ID: 4C89F443A9961916

View File

@ -28,10 +28,12 @@ package metrics
import (
"net"
"net/http"
"regexp"
"time"
"github.com/go-logr/logr"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/collectors"
"github.com/prometheus/client_golang/prometheus/promhttp"
"k8s.io/utils/clock"
@ -186,10 +188,19 @@ func New(log logr.Logger, c clock.Clock) *Metrics {
)
)
// Create Registry and register the recommended collectors
registry := prometheus.NewRegistry()
registry.MustRegister(collectors.NewProcessCollector(collectors.ProcessCollectorOpts{}))
registry.MustRegister(
collectors.NewGoCollector(
collectors.WithGoCollectorRuntimeMetrics(collectors.MetricsAll),
collectors.WithoutGoCollectorRuntimeMetrics(regexp.MustCompile("^/godebug/.*")),
),
)
// Create server and register Prometheus metrics handler
m := &Metrics{
log: log.WithName("metrics"),
registry: prometheus.NewRegistry(),
registry: registry,
clockTimeSeconds: clockTimeSeconds,
clockTimeSecondsGauge: clockTimeSecondsGauge,