Expose scheduler metric register function to make it possible for plugins to use it

This commit is contained in:
caiweidong 2020-03-15 17:45:32 +08:00
parent 84dc704679
commit bbaa76c8f5

View File

@ -261,9 +261,7 @@ var registerMetrics sync.Once
func Register() { func Register() {
// Register the metrics. // Register the metrics.
registerMetrics.Do(func() { registerMetrics.Do(func() {
for _, metric := range metricsList { RegisterMetrics(metricsList...)
legacyregistry.MustRegister(metric)
}
volumeschedulingmetrics.RegisterVolumeSchedulingMetrics() volumeschedulingmetrics.RegisterVolumeSchedulingMetrics()
PodScheduleSuccesses = scheduleAttempts.With(metrics.Labels{"result": "scheduled"}) PodScheduleSuccesses = scheduleAttempts.With(metrics.Labels{"result": "scheduled"})
PodScheduleFailures = scheduleAttempts.With(metrics.Labels{"result": "unschedulable"}) 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. // GetGather returns the gatherer. It used by test case outside current package.
func GetGather() metrics.Gatherer { func GetGather() metrics.Gatherer {
return legacyregistry.DefaultGatherer return legacyregistry.DefaultGatherer