Skip to content

Commit 4f853fc

Browse files
committed
fix: eliminate a possible double-record of UnscheduledPodUpdate event handling latency
1 parent a2b3a4f commit 4f853fc

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

pkg/scheduler/eventhandlers.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,6 @@ func (sched *Scheduler) addPodToSchedulingQueue(obj interface{}) {
133133

134134
func (sched *Scheduler) updatePodInSchedulingQueue(oldObj, newObj interface{}) {
135135
start := time.Now()
136-
defer metrics.EventHandlingLatency.WithLabelValues(framework.UnscheduledPodUpdate.Label).Observe(metrics.SinceInSeconds(start))
137136

138137
logger := sched.logger
139138
oldPod, newPod := oldObj.(*v1.Pod), newObj.(*v1.Pod)
@@ -143,8 +142,16 @@ func (sched *Scheduler) updatePodInSchedulingQueue(oldObj, newObj interface{}) {
143142
return
144143
}
145144

145+
isUnschedPodUpdateIncluded := false
146146
for _, evt := range framework.PodSchedulingPropertiesChange(newPod, oldPod) {
147147
defer metrics.EventHandlingLatency.WithLabelValues(evt.Label).Observe(metrics.SinceInSeconds(start))
148+
if evt.Label == framework.UnscheduledPodUpdate.Label {
149+
isUnschedPodUpdateIncluded = true
150+
}
151+
}
152+
if !isUnschedPodUpdateIncluded {
153+
// make sure we always record the latency with UnscheduledPodUpdate label.
154+
defer metrics.EventHandlingLatency.WithLabelValues(framework.UnscheduledPodUpdate.Label).Observe(metrics.SinceInSeconds(start))
148155
}
149156

150157
isAssumed, err := sched.Cache.IsAssumedPod(newPod)

0 commit comments

Comments
 (0)