From 466428d8ddab179151841c0ef9e4229e064fe8f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Mierzwa?= Date: Mon, 10 Oct 2022 21:10:21 +0100 Subject: [PATCH] feat(backend): add build_info metric Fixes #4764 --- CHANGELOG.md | 1 + cmd/karma/metrics.go | 10 ++++++++++ cmd/karma/tests/testscript/083_metrics.txt | 3 +++ 3 files changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a8cb7c408..6ccf502bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ ### Added - Added ability to delete multiple silences from the silence browser modal - #4618. +- Added `build_info` metric - #4764. ### Fixed diff --git a/cmd/karma/metrics.go b/cmd/karma/metrics.go index 8aa4eac79..f5edf913d 100644 --- a/cmd/karma/metrics.go +++ b/cmd/karma/metrics.go @@ -9,6 +9,7 @@ import ( ) type karmaCollector struct { + buildInfo *prometheus.Desc collectedAlerts *prometheus.Desc collectedGroups *prometheus.Desc cyclesTotal *prometheus.Desc @@ -19,6 +20,12 @@ type karmaCollector struct { func newKarmaCollector() *karmaCollector { return &karmaCollector{ + buildInfo: prometheus.NewDesc( + "build_info", + "Runtime version information", + []string{"version"}, + prometheus.Labels{}, + ), collectedAlerts: prometheus.NewDesc( "karma_collected_alerts_count", "Total number of alerts collected from Alertmanager API", @@ -59,6 +66,7 @@ func newKarmaCollector() *karmaCollector { } func (c *karmaCollector) Describe(ch chan<- *prometheus.Desc) { + ch <- c.buildInfo ch <- c.collectedAlerts ch <- c.collectedGroups ch <- c.cyclesTotal @@ -68,6 +76,8 @@ func (c *karmaCollector) Describe(ch chan<- *prometheus.Desc) { } func (c *karmaCollector) Collect(ch chan<- prometheus.Metric) { + ch <- prometheus.MustNewConstMetric(c.buildInfo, prometheus.GaugeValue, 1, version) + upstreams := alertmanager.GetAlertmanagers() for _, am := range upstreams { diff --git a/cmd/karma/tests/testscript/083_metrics.txt b/cmd/karma/tests/testscript/083_metrics.txt index b98bccd7f..62d902c38 100644 --- a/cmd/karma/tests/testscript/083_metrics.txt +++ b/cmd/karma/tests/testscript/083_metrics.txt @@ -7,6 +7,9 @@ cmp stderr stderr.txt cmp curl.txt metrics.txt -- metrics.txt -- +# HELP build_info Runtime version information +# TYPE build_info gauge +build_info{version="dev"} # HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles. # TYPE go_gc_duration_seconds summary go_gc_duration_seconds{quantile="0"}