diff --git a/pkg/scheduler/eventhandlers.go b/pkg/scheduler/eventhandlers.go index d0b63902fba..0f080740626 100644 --- a/pkg/scheduler/eventhandlers.go +++ b/pkg/scheduler/eventhandlers.go @@ -133,7 +133,6 @@ func (sched *Scheduler) addPodToSchedulingQueue(obj interface{}) { func (sched *Scheduler) updatePodInSchedulingQueue(oldObj, newObj interface{}) { start := time.Now() - defer metrics.EventHandlingLatency.WithLabelValues(framework.UnscheduledPodUpdate.Label).Observe(metrics.SinceInSeconds(start)) logger := sched.logger oldPod, newPod := oldObj.(*v1.Pod), newObj.(*v1.Pod) @@ -143,8 +142,16 @@ func (sched *Scheduler) updatePodInSchedulingQueue(oldObj, newObj interface{}) { return } + isUnschedPodUpdateIncluded := false for _, evt := range framework.PodSchedulingPropertiesChange(newPod, oldPod) { defer metrics.EventHandlingLatency.WithLabelValues(evt.Label).Observe(metrics.SinceInSeconds(start)) + if evt.Label == framework.UnscheduledPodUpdate.Label { + isUnschedPodUpdateIncluded = true + } + } + if !isUnschedPodUpdateIncluded { + // make sure we always record the latency with UnscheduledPodUpdate label. + defer metrics.EventHandlingLatency.WithLabelValues(framework.UnscheduledPodUpdate.Label).Observe(metrics.SinceInSeconds(start)) } isAssumed, err := sched.Cache.IsAssumedPod(newPod)