diff --git a/discovery/manager.go b/discovery/manager.go index 00a625828..450b92b5e 100644 --- a/discovery/manager.go +++ b/discovery/manager.go @@ -41,11 +41,12 @@ import ( ) var ( - failedConfigs = prometheus.NewCounter( + failedConfigs = prometheus.NewCounterVec( prometheus.CounterOpts{ Name: "prometheus_sd_configs_failed_total", Help: "Total number of service discovery configurations that failed to load.", }, + []string{"name"}, ) discoveredTargets = prometheus.NewGaugeVec( prometheus.GaugeOpts{ @@ -54,23 +55,26 @@ var ( }, []string{"name", "config"}, ) - receivedUpdates = prometheus.NewCounter( + receivedUpdates = prometheus.NewCounterVec( prometheus.CounterOpts{ Name: "prometheus_sd_received_updates_total", Help: "Total number of update events received from the SD providers.", }, + []string{"name"}, ) - delayedUpdates = prometheus.NewCounter( + delayedUpdates = prometheus.NewCounterVec( prometheus.CounterOpts{ Name: "prometheus_sd_updates_delayed_total", Help: "Total number of update events that couldn't be sent immediately.", }, + []string{"name"}, ) - sentUpdates = prometheus.NewCounter( + sentUpdates = prometheus.NewCounterVec( prometheus.CounterOpts{ Name: "prometheus_sd_updates_total", Help: "Total number of update events sent to the SD consumers.", }, + []string{"name"}, ) ) @@ -226,7 +230,7 @@ func (m *Manager) updater(ctx context.Context, p *provider, updates chan []*targ case <-ctx.Done(): return case tgs, ok := <-updates: - receivedUpdates.Inc() + receivedUpdates.WithLabelValues(m.name).Inc() if !ok { level.Debug(m.logger).Log("msg", "discoverer channel closed", "provider", p.name) return @@ -255,11 +259,11 @@ func (m *Manager) sender() { case <-ticker.C: // Some discoverers send updates too often so we throttle these with the ticker. select { case <-m.triggerSend: - sentUpdates.Inc() + sentUpdates.WithLabelValues(m.name).Inc() select { case m.syncCh <- m.allGroups(): default: - delayedUpdates.Inc() + delayedUpdates.WithLabelValues(m.name).Inc() level.Debug(m.logger).Log("msg", "discovery receiver's channel was full so will retry the next cycle") select { case m.triggerSend <- struct{}{}: @@ -328,7 +332,7 @@ func (m *Manager) registerProviders(cfg sd_config.ServiceDiscoveryConfig, setNam d, err := newDiscoverer() if err != nil { level.Error(m.logger).Log("msg", "Cannot create service discovery", "err", err, "type", t) - failedConfigs.Inc() + failedConfigs.WithLabelValues(m.name).Inc() return }