m/n/c/metrics: add node name to discovery labels
This allows for identifying the node directly without taking a detour
via its IP address.
Change-Id: Ia36ba52385292264a42f451ce2c63e9a6c76fdb6
Reviewed-on: https://review.monogon.dev/c/monogon/+/2336
Tested-by: Jenkins CI
Reviewed-by: Tim Windelschmidt <tim@monogon.tech>
diff --git a/metropolis/node/core/metrics/discovery.go b/metropolis/node/core/metrics/discovery.go
index d5a992b..ff3fcf1 100644
--- a/metropolis/node/core/metrics/discovery.go
+++ b/metropolis/node/core/metrics/discovery.go
@@ -77,6 +77,7 @@
"__meta_metropolis_role_kubernetes_worker": fmt.Sprintf("%t", new.Roles.KubernetesWorker != nil),
"__meta_metropolis_role_kubernetes_controller": fmt.Sprintf("%t", new.Roles.KubernetesController != nil),
"__meta_metropolis_role_consensus_member": fmt.Sprintf("%t", new.Roles.ConsensusMember != nil),
+ "__meta_metropolis_node": new.Id,
},
})
return nil
diff --git a/metropolis/node/core/metrics/metrics_test.go b/metropolis/node/core/metrics/metrics_test.go
index 70762e1..c946250 100644
--- a/metropolis/node/core/metrics/metrics_test.go
+++ b/metropolis/node/core/metrics/metrics_test.go
@@ -218,7 +218,7 @@
return fmt.Errorf("Get(%q): code %d", url, res.StatusCode)
}
body, _ := io.ReadAll(res.Body)
- want := `[{"targets":["1.2.3.4"],"labels":{"__meta_metropolis_role_consensus_member":"true","__meta_metropolis_role_kubernetes_controller":"false","__meta_metropolis_role_kubernetes_worker":"false"}}]`
+ want := `[{"targets":["1.2.3.4"],"labels":{"__meta_metropolis_node":"metropolis-fake-1","__meta_metropolis_role_consensus_member":"true","__meta_metropolis_role_kubernetes_controller":"false","__meta_metropolis_role_kubernetes_worker":"false"}}]`
if !strings.Contains(string(body), want) {
return util.Permanent(fmt.Errorf("did not find expected value %q in %q", want, string(body)))
}