From 531b1f1d594848bae978f933b20485abc3936f83 Mon Sep 17 00:00:00 2001 From: Gabi Davar Date: Fri, 26 Apr 2024 16:02:51 +0300 Subject: [PATCH] Expose Prometheus process and go runtime metrics. Signed-off-by: Gabi Davar --- pkg/metrics/metrics.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/pkg/metrics/metrics.go b/pkg/metrics/metrics.go index e3032375e..55927f3c9 100644 --- a/pkg/metrics/metrics.go +++ b/pkg/metrics/metrics.go @@ -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,