metropolis/node/core/metrics: expose etcd metrics
Change-Id: Ie916d497b44c05ab51b13d0bb14f4e850291a77e
Reviewed-on: https://review.monogon.dev/c/monogon/+/1950
Tested-by: Jenkins CI
Reviewed-by: Serge Bazanski <serge@monogon.tech>
diff --git a/metropolis/node/core/consensus/configuration.go b/metropolis/node/core/consensus/configuration.go
index 6c07ee7..f7fe954 100644
--- a/metropolis/node/core/consensus/configuration.go
+++ b/metropolis/node/core/consensus/configuration.go
@@ -75,6 +75,8 @@
externalPort int
// externalAddress overrides the address of the node, which is usually its ID.
externalAddress string
+ // etcdMetricsPort overrides the default etcd metrics port used by the node.
+ etcdMetricsPort int
}
// build takes a Config and returns an etcd embed.Config.
@@ -94,6 +96,10 @@
host = c.testOverrides.externalAddress
extraNames = append(extraNames, host)
}
+ etcdPort := int(node.MetricsEtcdListenerPort)
+ if p := c.testOverrides.etcdMetricsPort; p != 0 {
+ etcdPort = p
+ }
cfg := embed.NewConfig()
@@ -102,6 +108,9 @@
cfg.InitialClusterToken = "METROPOLIS"
cfg.Logger = "zap"
cfg.LogOutputs = []string{c.Ephemeral.ServerLogsFIFO.FullPath()}
+ cfg.ListenMetricsUrls = []url.URL{
+ {Scheme: "http", Host: net.JoinHostPort("127.0.0.1", fmt.Sprintf("%d", etcdPort))},
+ }
cfg.Dir = c.Data.Data.FullPath()