// RegisterMetricAndTrackRateLimiterUsage registers a metric ownerName_rate_limiter_use in prometheus to track // how much used rateLimiter is and starts a goroutine that updates this metric every updatePeriod func RegisterMetricAndTrackRateLimiterUsage(ownerName string, rateLimiter flowcontrol.RateLimiter) error { err := registerRateLimiterMetric(ownerName) if err != nil { return err } go wait.Forever(func() { metricsLock.Lock() defer metricsLock.Unlock() rateLimiterMetrics[ownerName].Set(rateLimiter.Saturation()) }, updatePeriod) return nil }
// Start syncing probe status. This should only be called once. func (m *manager) Start() { // Start syncing readiness. go wait.Forever(m.updateReadiness, 0) }