diff --git a/pkg/scheduler/metrics/metrics.go b/pkg/scheduler/metrics/metrics.go index 297fc46407a..36ec6248527 100644 --- a/pkg/scheduler/metrics/metrics.go +++ b/pkg/scheduler/metrics/metrics.go @@ -261,9 +261,7 @@ var registerMetrics sync.Once func Register() { // Register the metrics. registerMetrics.Do(func() { - for _, metric := range metricsList { - legacyregistry.MustRegister(metric) - } + RegisterMetrics(metricsList...) volumeschedulingmetrics.RegisterVolumeSchedulingMetrics() PodScheduleSuccesses = scheduleAttempts.With(metrics.Labels{"result": "scheduled"}) PodScheduleFailures = scheduleAttempts.With(metrics.Labels{"result": "unschedulable"}) @@ -271,6 +269,14 @@ func Register() { }) } +// RegisterMetrics registers a list of metrics. +// This function is exported because it is intended to be used by out-of-tree plugins to register their custom metrics. +func RegisterMetrics(extraMetrics ...metrics.Registerable) { + for _, metric := range extraMetrics { + legacyregistry.MustRegister(metric) + } +} + // GetGather returns the gatherer. It used by test case outside current package. func GetGather() metrics.Gatherer { return legacyregistry.DefaultGatherer