cloud/bmaas/bmdb: implement BMDB client metrics
This implements some basic BMDB metrics exported by any client code
using the BMDB.
It also enables their use in the Shepherd and BMSRV.
Change-Id: I1d5e82fd2c34a7bfd42f37fad540d69f7b23f347
Reviewed-on: https://review.monogon.dev/c/monogon/+/1600
Tested-by: Jenkins CI
Reviewed-by: Tim Windelschmidt <tim@monogon.tech>
diff --git a/cloud/shepherd/equinix/manager/control_loop.go b/cloud/shepherd/equinix/manager/control_loop.go
index 4896c15..b30edbc 100644
--- a/cloud/shepherd/equinix/manager/control_loop.go
+++ b/cloud/shepherd/equinix/manager/control_loop.go
@@ -15,6 +15,7 @@
"k8s.io/klog/v2"
"source.monogon.dev/cloud/bmaas/bmdb"
+ "source.monogon.dev/cloud/bmaas/bmdb/metrics"
"source.monogon.dev/cloud/bmaas/bmdb/model"
)
@@ -52,6 +53,7 @@
type processInfo struct {
process model.Process
+ processor metrics.Processor
defaultBackoff bmdb.Backoff
}
@@ -165,7 +167,7 @@
var sess *bmdb.Session
for {
if sess == nil {
- sess, err = conn.StartSession(ctx)
+ sess, err = conn.StartSession(ctx, bmdb.SessionOption{Processor: pinfo.processor})
if err != nil {
return fmt.Errorf("could not start BMDB session: %w", err)
}