mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-19 09:52:49 +00:00
Merge pull request #95363 from wojtek-t/fix_npl_reporting_in_kube_proxy
Fix reporting network_programming_latency metrics in kube-proxy
This commit is contained in:
commit
c9c24b46c3
@ -167,7 +167,10 @@ func (ect *EndpointChangeTracker) Update(previous, current *v1.Endpoints) bool {
|
|||||||
ect.items[namespacedName] = change
|
ect.items[namespacedName] = change
|
||||||
}
|
}
|
||||||
|
|
||||||
if t := getLastChangeTriggerTime(endpoints.Annotations); !t.IsZero() {
|
// In case of Endpoints deletion, the LastChangeTriggerTime annotation is
|
||||||
|
// by-definition coming from the time of last update, which is not what
|
||||||
|
// we want to measure. So we simply ignore it in this cases.
|
||||||
|
if t := getLastChangeTriggerTime(endpoints.Annotations); !t.IsZero() && current != nil {
|
||||||
ect.lastChangeTriggerTimes[namespacedName] = append(ect.lastChangeTriggerTimes[namespacedName], t)
|
ect.lastChangeTriggerTimes[namespacedName] = append(ect.lastChangeTriggerTimes[namespacedName], t)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -222,7 +225,12 @@ func (ect *EndpointChangeTracker) EndpointSliceUpdate(endpointSlice *discovery.E
|
|||||||
|
|
||||||
if changeNeeded {
|
if changeNeeded {
|
||||||
metrics.EndpointChangesPending.Inc()
|
metrics.EndpointChangesPending.Inc()
|
||||||
if t := getLastChangeTriggerTime(endpointSlice.Annotations); !t.IsZero() {
|
// In case of Endpoints deletion, the LastChangeTriggerTime annotation is
|
||||||
|
// by-definition coming from the time of last update, which is not what
|
||||||
|
// we want to measure. So we simply ignore it in this cases.
|
||||||
|
// TODO(wojtek-t, robscott): Address the problem for EndpointSlice deletion
|
||||||
|
// when other EndpointSlice for that service still exist.
|
||||||
|
if t := getLastChangeTriggerTime(endpointSlice.Annotations); !t.IsZero() && !removeSlice {
|
||||||
ect.lastChangeTriggerTimes[namespacedName] =
|
ect.lastChangeTriggerTimes[namespacedName] =
|
||||||
append(ect.lastChangeTriggerTimes[namespacedName], t)
|
append(ect.lastChangeTriggerTimes[namespacedName], t)
|
||||||
}
|
}
|
||||||
|
@ -1413,6 +1413,14 @@ func TestLastChangeTriggerTime(t *testing.T) {
|
|||||||
},
|
},
|
||||||
expected: map[types.NamespacedName][]time.Time{createName("ns", "ep1"): {t2}},
|
expected: map[types.NamespacedName][]time.Time{createName("ns", "ep1"): {t2}},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "delete",
|
||||||
|
scenario: func(fp *FakeProxier) {
|
||||||
|
e := createEndpoints("ns", "ep1", t1)
|
||||||
|
fp.deleteEndpoints(e)
|
||||||
|
},
|
||||||
|
expected: map[types.NamespacedName][]time.Time{},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, tc := range testCases {
|
for _, tc := range testCases {
|
||||||
|
Loading…
Reference in New Issue
Block a user