diff --git a/pkg/internal/controller/metrics/metrics.go b/pkg/internal/controller/metrics/metrics.go index b74ce062be..dd471a65b9 100644 --- a/pkg/internal/controller/metrics/metrics.go +++ b/pkg/internal/controller/metrics/metrics.go @@ -84,3 +84,15 @@ func init() { collectors.NewGoCollector(), ) } + +// register the metrics with the passed registry +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..7a55f0be05 100644 --- a/pkg/metrics/workqueue.go +++ b/pkg/metrics/workqueue.go @@ -99,6 +99,19 @@ 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..b63fe36a3d 100644 --- a/pkg/webhook/internal/metrics/metrics.go +++ b/pkg/webhook/internal/metrics/metrics.go @@ -63,6 +63,15 @@ 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}