Skip to content

Commit 6ba9fa8

Browse files
authored
Merge pull request kubernetes#125377 from wojtek-t/watchcache_resource_version_metric
Expose resource version metrics from watchcache
2 parents b0263ba + dbed4f1 commit 6ba9fa8

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

staging/src/k8s.io/apiserver/pkg/storage/cacher/metrics/metrics.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,17 @@ var (
106106
[]string{"resource"},
107107
)
108108

109+
watchCacheResourceVersion = compbasemetrics.NewGaugeVec(
110+
&compbasemetrics.GaugeOpts{
111+
Namespace: namespace,
112+
Subsystem: subsystem,
113+
Name: "resource_version",
114+
Help: "Current resource version of watch cache broken by resource type.",
115+
StabilityLevel: compbasemetrics.ALPHA,
116+
},
117+
[]string{"resource"},
118+
)
119+
109120
watchCacheCapacityIncreaseTotal = compbasemetrics.NewCounterVec(
110121
&compbasemetrics.CounterOpts{
111122
Subsystem: subsystem,
@@ -171,6 +182,7 @@ func Register() {
171182
legacyregistry.MustRegister(EventsReceivedCounter)
172183
legacyregistry.MustRegister(EventsCounter)
173184
legacyregistry.MustRegister(TerminatedWatchersCounter)
185+
legacyregistry.MustRegister(watchCacheResourceVersion)
174186
legacyregistry.MustRegister(watchCacheCapacityIncreaseTotal)
175187
legacyregistry.MustRegister(watchCacheCapacityDecreaseTotal)
176188
legacyregistry.MustRegister(WatchCacheCapacity)
@@ -186,6 +198,11 @@ func RecordListCacheMetrics(resourcePrefix, indexName string, numFetched, numRet
186198
listCacheNumReturned.WithLabelValues(resourcePrefix).Add(float64(numReturned))
187199
}
188200

201+
// RecordResourceVersion sets the current resource version for a given resource type.
202+
func RecordResourceVersion(resourcePrefix string, resourceVersion uint64) {
203+
watchCacheResourceVersion.WithLabelValues(resourcePrefix).Set(float64(resourceVersion))
204+
}
205+
189206
// RecordsWatchCacheCapacityChange record watchCache capacity resize(increase or decrease) operations.
190207
func RecordsWatchCacheCapacityChange(objType string, old, new int) {
191208
WatchCacheCapacity.WithLabelValues(objType).Set(float64(new))

staging/src/k8s.io/apiserver/pkg/storage/cacher/watch_cache.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -348,6 +348,7 @@ func (w *watchCache) processEvent(event watch.Event, resourceVersion uint64, upd
348348
if w.eventHandler != nil {
349349
w.eventHandler(wcEvent)
350350
}
351+
metrics.RecordResourceVersion(w.groupResource.String(), resourceVersion)
351352
return nil
352353
}
353354

@@ -430,6 +431,7 @@ func (w *watchCache) UpdateResourceVersion(resourceVersion string) {
430431
}
431432
w.eventHandler(wcEvent)
432433
}
434+
metrics.RecordResourceVersion(w.groupResource.String(), rv)
433435
}
434436

435437
// List returns list of pointers to <storeElement> objects.
@@ -629,7 +631,9 @@ func (w *watchCache) Replace(objs []interface{}, resourceVersion string) error {
629631
w.onReplace()
630632
}
631633
w.cond.Broadcast()
632-
klog.V(3).Infof("Replace watchCache (rev: %v) ", resourceVersion)
634+
635+
metrics.RecordResourceVersion(w.groupResource.String(), version)
636+
klog.V(3).Infof("Replaced watchCache (rev: %v) ", resourceVersion)
633637
return nil
634638
}
635639

0 commit comments

Comments
 (0)