From 4f7717842ca698ce0f5fca1fe2911e515c32099e Mon Sep 17 00:00:00 2001 From: Kensei Nakada Date: Sat, 4 Feb 2023 07:21:03 +0000 Subject: [PATCH] feature(scheduler): implement plugin_evaluation_total metric --- pkg/scheduler/framework/runtime/framework.go | 1 + pkg/scheduler/metrics/metrics.go | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/pkg/scheduler/framework/runtime/framework.go b/pkg/scheduler/framework/runtime/framework.go index 1dbce09ff11..b1275e62775 100644 --- a/pkg/scheduler/framework/runtime/framework.go +++ b/pkg/scheduler/framework/runtime/framework.go @@ -734,6 +734,7 @@ func (f *frameworkImpl) RunFilterPlugins( if state.SkipFilterPlugins.Has(pl.Name()) { continue } + metrics.PluginEvaluationTotal.WithLabelValues(pl.Name(), Filter).Inc() if status := f.runFilterPlugin(ctx, pl, state, pod, nodeInfo); !status.IsSuccess() { if !status.IsUnschedulable() { // Filter plugins are not supposed to return any status other than diff --git a/pkg/scheduler/metrics/metrics.go b/pkg/scheduler/metrics/metrics.go index 335cba29396..f5c3eda1ce9 100644 --- a/pkg/scheduler/metrics/metrics.go +++ b/pkg/scheduler/metrics/metrics.go @@ -189,6 +189,14 @@ var ( StabilityLevel: metrics.ALPHA, }, []string{"plugin", "profile"}) + PluginEvaluationTotal = metrics.NewCounterVec( + &metrics.CounterOpts{ + Subsystem: SchedulerSubsystem, + Name: "plugin_evaluation_total", + Help: "Number of attempts to schedule pods by each plugin and the extension point (only Filter is supported now.).", + StabilityLevel: metrics.ALPHA, + }, []string{"plugin", "extension_point"}) + metricsList = []metrics.Registerable{ scheduleAttempts, e2eSchedulingLatency, @@ -207,6 +215,7 @@ var ( PermitWaitDuration, CacheSize, unschedulableReasons, + PluginEvaluationTotal, } )