From ad19db2a5615855a8360b1aba03e9579a45fdd6c Mon Sep 17 00:00:00 2001 From: sonamkshenoy <49382298+sonamkshenoy@users.noreply.github.com> Date: Fri, 2 Feb 2024 13:19:07 +0530 Subject: [PATCH 1/2] Custom registry --- pkg/internal/controller/metrics/metrics.go | 9 +++++++++ pkg/metrics/client_go_adapter.go | 5 +++++ pkg/metrics/leaderelection.go | 5 +++++ pkg/metrics/workqueue.go | 5 +++++ pkg/webhook/internal/metrics/metrics.go | 5 +++++ 5 files changed, 29 insertions(+) diff --git a/pkg/internal/controller/metrics/metrics.go b/pkg/internal/controller/metrics/metrics.go index b74ce062be..df0e24fee1 100644 --- a/pkg/internal/controller/metrics/metrics.go +++ b/pkg/internal/controller/metrics/metrics.go @@ -84,3 +84,12 @@ func init() { collectors.NewGoCollector(), ) } + +func RegisterReconciliationMetrics(customRegistry metrics.RegistererGatherer) { + customRegistry.MustRegister(ReconcileTotal, + ReconcileErrors, + TerminalReconcileErrors, + ReconcileTime, + WorkerCount, + ActiveWorkers) +} diff --git a/pkg/metrics/client_go_adapter.go b/pkg/metrics/client_go_adapter.go index ff28998c44..90c7ecab1f 100644 --- a/pkg/metrics/client_go_adapter.go +++ b/pkg/metrics/client_go_adapter.go @@ -43,6 +43,11 @@ func init() { registerClientMetrics() } +// register the metrics with the passed registry +func RegisterClientMetrics(customRegistry RegistererGatherer) { + customRegistry.MustRegister(requestResult) +} + // registerClientMetrics sets up the client latency metrics from client-go. func registerClientMetrics() { // register the metrics with our registry diff --git a/pkg/metrics/leaderelection.go b/pkg/metrics/leaderelection.go index a19c099602..1def8637be 100644 --- a/pkg/metrics/leaderelection.go +++ b/pkg/metrics/leaderelection.go @@ -21,6 +21,11 @@ func init() { leaderelection.SetProvider(leaderelectionMetricsProvider{}) } +// register the metrics with the passed registry +func RegisterLeaderElection(customRegistry RegistererGatherer) { + customRegistry.MustRegister(leaderGauge) +} + type leaderelectionMetricsProvider struct{} func (leaderelectionMetricsProvider) NewLeaderMetric() leaderelection.SwitchMetric { diff --git a/pkg/metrics/workqueue.go b/pkg/metrics/workqueue.go index cff1de4c1c..51871ac609 100644 --- a/pkg/metrics/workqueue.go +++ b/pkg/metrics/workqueue.go @@ -99,6 +99,11 @@ func init() { workqueue.SetProvider(workqueueMetricsProvider{}) } +// register the metrics with the passed registry +func RegisterWorkqueueMetrics(customRegistry RegistererGatherer) { + customRegistry.MustRegister(depth, adds, latency, workDuration, unfinished, longestRunningProcessor, retries) +} + type workqueueMetricsProvider struct{} func (workqueueMetricsProvider) NewDepthMetric(name string) workqueue.GaugeMetric { diff --git a/pkg/webhook/internal/metrics/metrics.go b/pkg/webhook/internal/metrics/metrics.go index 557004908b..d535cb5819 100644 --- a/pkg/webhook/internal/metrics/metrics.go +++ b/pkg/webhook/internal/metrics/metrics.go @@ -63,6 +63,11 @@ func init() { metrics.Registry.MustRegister(RequestLatency, RequestTotal, RequestInFlight) } +// register the metrics with the passed registry +func RegisterRequestMetrics(customRegistry metrics.RegistererGatherer) { + customRegistry.MustRegister(RequestLatency, RequestTotal, RequestInFlight) +} + // InstrumentedHook adds some instrumentation on top of the given webhook. func InstrumentedHook(path string, hookRaw http.Handler) http.Handler { lbl := prometheus.Labels{"webhook": path} From 647b6ddddf5f0db7674b99dc3ffa8e694eea33b8 Mon Sep 17 00:00:00 2001 From: sonamkshenoy <49382298+sonamkshenoy@users.noreply.github.com> Date: Fri, 2 Feb 2024 13:28:31 +0530 Subject: [PATCH 2/2] Reformatting --- pkg/internal/controller/metrics/metrics.go | 7 +++++-- pkg/metrics/workqueue.go | 10 +++++++++- pkg/webhook/internal/metrics/metrics.go | 6 +++++- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/pkg/internal/controller/metrics/metrics.go b/pkg/internal/controller/metrics/metrics.go index df0e24fee1..dd471a65b9 100644 --- a/pkg/internal/controller/metrics/metrics.go +++ b/pkg/internal/controller/metrics/metrics.go @@ -85,11 +85,14 @@ func init() { ) } +// register the metrics with the passed registry func RegisterReconciliationMetrics(customRegistry metrics.RegistererGatherer) { - customRegistry.MustRegister(ReconcileTotal, + customRegistry.MustRegister( + ReconcileTotal, ReconcileErrors, TerminalReconcileErrors, ReconcileTime, WorkerCount, - ActiveWorkers) + ActiveWorkers, + ) } diff --git a/pkg/metrics/workqueue.go b/pkg/metrics/workqueue.go index 51871ac609..7a55f0be05 100644 --- a/pkg/metrics/workqueue.go +++ b/pkg/metrics/workqueue.go @@ -101,7 +101,15 @@ func init() { // register the metrics with the passed registry func RegisterWorkqueueMetrics(customRegistry RegistererGatherer) { - customRegistry.MustRegister(depth, adds, latency, workDuration, unfinished, longestRunningProcessor, retries) + customRegistry.MustRegister( + depth, + adds, + latency, + workDuration, + unfinished, + longestRunningProcessor, + retries, + ) } type workqueueMetricsProvider struct{} diff --git a/pkg/webhook/internal/metrics/metrics.go b/pkg/webhook/internal/metrics/metrics.go index d535cb5819..b63fe36a3d 100644 --- a/pkg/webhook/internal/metrics/metrics.go +++ b/pkg/webhook/internal/metrics/metrics.go @@ -65,7 +65,11 @@ func init() { // register the metrics with the passed registry func RegisterRequestMetrics(customRegistry metrics.RegistererGatherer) { - customRegistry.MustRegister(RequestLatency, RequestTotal, RequestInFlight) + customRegistry.MustRegister( + RequestLatency, + RequestTotal, + RequestInFlight, + ) } // InstrumentedHook adds some instrumentation on top of the given webhook.