From 11a0a18b7394d9e72c5937b1f6c10614771dfa26 Mon Sep 17 00:00:00 2001 From: ylamouroux Date: Wed, 25 May 2022 18:38:04 +0200 Subject: [PATCH 1/2] feat: add the build tag to the member (serf_lan/wan) labels Signed-off-by: ylamouroux --- pkg/exporter/consul_exporter.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/pkg/exporter/consul_exporter.go b/pkg/exporter/consul_exporter.go index 1be53e7..d57bfae 100644 --- a/pkg/exporter/consul_exporter.go +++ b/pkg/exporter/consul_exporter.go @@ -59,12 +59,12 @@ var ( memberStatus = prometheus.NewDesc( prometheus.BuildFQName(namespace, "", "serf_lan_member_status"), "Status of member in the cluster. 1=Alive, 2=Leaving, 3=Left, 4=Failed.", - []string{"member"}, nil, + []string{"member", "build"}, nil, ) memberWanStatus = prometheus.NewDesc( prometheus.BuildFQName(namespace, "", "serf_wan_member_status"), "Status of member in the wan cluster. 1=Alive, 2=Leaving, 3=Left, 4=Failed.", - []string{"member", "dc"}, nil, + []string{"member", "dc", "build"}, nil, ) serviceCount = prometheus.NewDesc( prometheus.BuildFQName(namespace, "", "catalog_services"), @@ -275,8 +275,10 @@ func (e *Exporter) collectMembersMetric(ch chan<- prometheus.Metric) bool { return false } for _, entry := range members { + build := strings.Split(entry.Tags["build"], ":")[0] ch <- prometheus.MustNewConstMetric( - memberStatus, prometheus.GaugeValue, float64(entry.Status), entry.Name, + memberStatus, prometheus.GaugeValue, float64(entry.Status), + entry.Name, build, ) } return true @@ -289,8 +291,10 @@ func (e *Exporter) collectMembersWanMetric(ch chan<- prometheus.Metric) bool { return false } for _, entry := range members { + build := strings.Split(entry.Tags["build"], ":")[0] ch <- prometheus.MustNewConstMetric( - memberWanStatus, prometheus.GaugeValue, float64(entry.Status), entry.Name, entry.Tags["dc"], + memberWanStatus, prometheus.GaugeValue, float64(entry.Status), + entry.Name, entry.Tags["dc"], build, ) } return true From 413d3b85db384d95b151dde25e05348848f1406c Mon Sep 17 00:00:00 2001 From: ylamouroux Date: Wed, 25 May 2022 18:56:16 +0200 Subject: [PATCH 2/2] test the new label set Signed-off-by: ylamouroux --- pkg/exporter/consul_exporter_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/exporter/consul_exporter_test.go b/pkg/exporter/consul_exporter_test.go index 319e6c9..b876053 100644 --- a/pkg/exporter/consul_exporter_test.go +++ b/pkg/exporter/consul_exporter_test.go @@ -88,7 +88,7 @@ consul_raft_leader 1 consul_raft_peers 1 # HELP consul_serf_lan_member_status Status of member in the cluster. 1=Alive, 2=Leaving, 3=Left, 4=Failed. # TYPE consul_serf_lan_member_status gauge -consul_serf_lan_member_status{member="{{ .Node }}"} 1 +consul_serf_lan_member_status{build="1.8.19",member="{{ .Node }}"} 1 # HELP consul_serf_lan_members How many members are in the cluster. # TYPE consul_serf_lan_members gauge consul_serf_lan_members 1