Merge pull request #125377 from wojtek-t/watchcache_resource_version_metric
Expose resource version metrics from watchcache
This commit is contained in:
		@@ -106,6 +106,17 @@ var (
 | 
				
			|||||||
		[]string{"resource"},
 | 
							[]string{"resource"},
 | 
				
			||||||
	)
 | 
						)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						watchCacheResourceVersion = compbasemetrics.NewGaugeVec(
 | 
				
			||||||
 | 
							&compbasemetrics.GaugeOpts{
 | 
				
			||||||
 | 
								Namespace:      namespace,
 | 
				
			||||||
 | 
								Subsystem:      subsystem,
 | 
				
			||||||
 | 
								Name:           "resource_version",
 | 
				
			||||||
 | 
								Help:           "Current resource version of watch cache broken by resource type.",
 | 
				
			||||||
 | 
								StabilityLevel: compbasemetrics.ALPHA,
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							[]string{"resource"},
 | 
				
			||||||
 | 
						)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	watchCacheCapacityIncreaseTotal = compbasemetrics.NewCounterVec(
 | 
						watchCacheCapacityIncreaseTotal = compbasemetrics.NewCounterVec(
 | 
				
			||||||
		&compbasemetrics.CounterOpts{
 | 
							&compbasemetrics.CounterOpts{
 | 
				
			||||||
			Subsystem:      subsystem,
 | 
								Subsystem:      subsystem,
 | 
				
			||||||
@@ -171,6 +182,7 @@ func Register() {
 | 
				
			|||||||
		legacyregistry.MustRegister(EventsReceivedCounter)
 | 
							legacyregistry.MustRegister(EventsReceivedCounter)
 | 
				
			||||||
		legacyregistry.MustRegister(EventsCounter)
 | 
							legacyregistry.MustRegister(EventsCounter)
 | 
				
			||||||
		legacyregistry.MustRegister(TerminatedWatchersCounter)
 | 
							legacyregistry.MustRegister(TerminatedWatchersCounter)
 | 
				
			||||||
 | 
							legacyregistry.MustRegister(watchCacheResourceVersion)
 | 
				
			||||||
		legacyregistry.MustRegister(watchCacheCapacityIncreaseTotal)
 | 
							legacyregistry.MustRegister(watchCacheCapacityIncreaseTotal)
 | 
				
			||||||
		legacyregistry.MustRegister(watchCacheCapacityDecreaseTotal)
 | 
							legacyregistry.MustRegister(watchCacheCapacityDecreaseTotal)
 | 
				
			||||||
		legacyregistry.MustRegister(WatchCacheCapacity)
 | 
							legacyregistry.MustRegister(WatchCacheCapacity)
 | 
				
			||||||
@@ -186,6 +198,11 @@ func RecordListCacheMetrics(resourcePrefix, indexName string, numFetched, numRet
 | 
				
			|||||||
	listCacheNumReturned.WithLabelValues(resourcePrefix).Add(float64(numReturned))
 | 
						listCacheNumReturned.WithLabelValues(resourcePrefix).Add(float64(numReturned))
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// RecordResourceVersion sets the current resource version for a given resource type.
 | 
				
			||||||
 | 
					func RecordResourceVersion(resourcePrefix string, resourceVersion uint64) {
 | 
				
			||||||
 | 
						watchCacheResourceVersion.WithLabelValues(resourcePrefix).Set(float64(resourceVersion))
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// RecordsWatchCacheCapacityChange record watchCache capacity resize(increase or decrease) operations.
 | 
					// RecordsWatchCacheCapacityChange record watchCache capacity resize(increase or decrease) operations.
 | 
				
			||||||
func RecordsWatchCacheCapacityChange(objType string, old, new int) {
 | 
					func RecordsWatchCacheCapacityChange(objType string, old, new int) {
 | 
				
			||||||
	WatchCacheCapacity.WithLabelValues(objType).Set(float64(new))
 | 
						WatchCacheCapacity.WithLabelValues(objType).Set(float64(new))
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -348,6 +348,7 @@ func (w *watchCache) processEvent(event watch.Event, resourceVersion uint64, upd
 | 
				
			|||||||
	if w.eventHandler != nil {
 | 
						if w.eventHandler != nil {
 | 
				
			||||||
		w.eventHandler(wcEvent)
 | 
							w.eventHandler(wcEvent)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						metrics.RecordResourceVersion(w.groupResource.String(), resourceVersion)
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -430,6 +431,7 @@ func (w *watchCache) UpdateResourceVersion(resourceVersion string) {
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
		w.eventHandler(wcEvent)
 | 
							w.eventHandler(wcEvent)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						metrics.RecordResourceVersion(w.groupResource.String(), rv)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// List returns list of pointers to <storeElement> objects.
 | 
					// List returns list of pointers to <storeElement> objects.
 | 
				
			||||||
@@ -629,7 +631,9 @@ func (w *watchCache) Replace(objs []interface{}, resourceVersion string) error {
 | 
				
			|||||||
		w.onReplace()
 | 
							w.onReplace()
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	w.cond.Broadcast()
 | 
						w.cond.Broadcast()
 | 
				
			||||||
	klog.V(3).Infof("Replace watchCache (rev: %v) ", resourceVersion)
 | 
					
 | 
				
			||||||
 | 
						metrics.RecordResourceVersion(w.groupResource.String(), version)
 | 
				
			||||||
 | 
						klog.V(3).Infof("Replaced watchCache (rev: %v) ", resourceVersion)
 | 
				
			||||||
	return nil
 | 
						return nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user