From 8f3fd319f47b9af4fb42b7ba18aba676923d1f4f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Mierzwa?= Date: Mon, 17 Apr 2017 12:47:34 -0700 Subject: [PATCH] Add inbibited label to exposed metrics --- main.go | 2 +- timer.go | 21 ++++++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/main.go b/main.go index 5865db798..acfcae8cd 100644 --- a/main.go +++ b/main.go @@ -45,7 +45,7 @@ var ( Name: "unsee_collected_alerts", Help: "Total number of alerts collected from Alertmanager API", }, - []string{"silenced"}, + []string{"silenced", "inhibited"}, ) metricAlertGroups = prometheus.NewGauge( prometheus.GaugeOpts{ diff --git a/timer.go b/timer.go index 4dd5e6d76..28d5edecb 100644 --- a/timer.go +++ b/timer.go @@ -57,9 +57,10 @@ func PullFromAlertmanager() { acMap := map[string]models.Autocomplete{} - // counters used to update metrics - var counterAlertsSilenced float64 - var counterAlertsUnsilenced float64 + metricAlerts.With(prometheus.Labels{"silenced": "true", "inhibited": "true"}).Set(0) + metricAlerts.With(prometheus.Labels{"silenced": "true", "inhibited": "false"}).Set(0) + metricAlerts.With(prometheus.Labels{"silenced": "false", "inhibited": "true"}).Set(0) + metricAlerts.With(prometheus.Labels{"silenced": "false", "inhibited": "false"}).Set(0) for _, ag := range alertGroups { // used to generate group content hash @@ -97,9 +98,17 @@ func PullFromAlertmanager() { for _, alert := range alerts { ag.Alerts = append(ag.Alerts, alert) if alert.Silenced != "" { - counterAlertsSilenced++ + if alert.Inhibited { + metricAlerts.With(prometheus.Labels{"silenced": "true", "inhibited": "true"}).Inc() + } else { + metricAlerts.With(prometheus.Labels{"silenced": "true", "inhibited": "false"}).Inc() + } } else { - counterAlertsUnsilenced++ + if alert.Inhibited { + metricAlerts.With(prometheus.Labels{"silenced": "false", "inhibited": "true"}).Inc() + } else { + metricAlerts.With(prometheus.Labels{"silenced": "false", "inhibited": "false"}).Inc() + } } } @@ -125,8 +134,6 @@ func PullFromAlertmanager() { alertManagerError = "" errorLock.Unlock() - metricAlerts.With(prometheus.Labels{"silenced": "true"}).Set(counterAlertsSilenced) - metricAlerts.With(prometheus.Labels{"silenced": "false"}).Set(counterAlertsUnsilenced) metricAlertGroups.Set(float64(len(alertStore))) store.Store.Update(alertStore, colorStore, acStore)