osbase/supervisor: use MustRegister for metrics registration
Change-Id: I4321c626f210bea025ab27bfecf783425f1482b5
Reviewed-on: https://review.monogon.dev/c/monogon/+/3703
Tested-by: Jenkins CI
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
diff --git a/osbase/supervisor/BUILD.bazel b/osbase/supervisor/BUILD.bazel
index 9dfda5a..2fc6634 100644
--- a/osbase/supervisor/BUILD.bazel
+++ b/osbase/supervisor/BUILD.bazel
@@ -19,6 +19,7 @@
"//osbase/logtree",
"@com_github_cenkalti_backoff_v4//:backoff",
"@com_github_prometheus_client_golang//prometheus",
+ "@com_github_prometheus_client_golang//prometheus/promauto",
"@org_golang_google_grpc//:grpc",
],
)
diff --git a/osbase/supervisor/supervisor_metrics_prometheus.go b/osbase/supervisor/supervisor_metrics_prometheus.go
index 49ee973..9ae18a8 100644
--- a/osbase/supervisor/supervisor_metrics_prometheus.go
+++ b/osbase/supervisor/supervisor_metrics_prometheus.go
@@ -1,9 +1,8 @@
package supervisor
import (
- "fmt"
-
"github.com/prometheus/client_golang/prometheus"
+ "github.com/prometheus/client_golang/prometheus/promauto"
)
// MetricsPrometheus is a Metrics implementation which exports the supervisor
@@ -24,15 +23,16 @@
// and return a Metrics instance to be used with WithMetrics.
//
// This should only be called once for a given registry.
-func NewMetricsPrometheus(registry *prometheus.Registry) (*MetricsPrometheus, error) {
+func NewMetricsPrometheus(registry *prometheus.Registry) *MetricsPrometheus {
+ factory := promauto.With(registry)
res := &MetricsPrometheus{
- exportedState: prometheus.NewGaugeVec(prometheus.GaugeOpts{
+ exportedState: factory.NewGaugeVec(prometheus.GaugeOpts{
Namespace: "monogon",
Subsystem: "supervisor",
Name: "dn_state_total",
Help: "Total count of supervisor runnables, broken up by DN and state",
}, []string{"dn", "state"}),
- exportedEdge: prometheus.NewCounterVec(prometheus.CounterOpts{
+ exportedEdge: factory.NewCounterVec(prometheus.CounterOpts{
Namespace: "monogon",
Subsystem: "supervisor",
Name: "dn_state_transition_count",
@@ -41,13 +41,7 @@
}, []string{"dn", "old_state", "new_state"}),
cachedState: make(map[string]*NodeState),
}
- if err := registry.Register(res.exportedState); err != nil {
- return nil, fmt.Errorf("when registering dn_state_total: %w", err)
- }
- if err := registry.Register(res.exportedEdge); err != nil {
- return nil, fmt.Errorf("when registering dn_state_transition_count: %w", err)
- }
- return res, nil
+ return res
}
func (m *MetricsPrometheus) exportState(dn string, state NodeState, value float64) {