X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/063eb858429a7472c888261d0512fd960e92b7ae..9833a2b9be1a722bd9aad08baf48ca072bde7ca7:/services/keep-balance/metrics.go diff --git a/services/keep-balance/metrics.go b/services/keep-balance/metrics.go index 96ee66ce56..ce1b1811cc 100644 --- a/services/keep-balance/metrics.go +++ b/services/keep-balance/metrics.go @@ -24,9 +24,9 @@ type metrics struct { mtx sync.Mutex } -func newMetrics() *metrics { +func newMetrics(registry *prometheus.Registry) *metrics { return &metrics{ - reg: prometheus.NewRegistry(), + reg: registry, statsGauges: map[string]setter{}, observers: map[string]observer{}, } @@ -39,6 +39,7 @@ func (m *metrics) DurationObserver(name, help string) observer { return obs } summary := prometheus.NewSummary(prometheus.SummaryOpts{ + Namespace: "arvados", Name: name, Subsystem: "keepbalance", Help: help, @@ -57,17 +58,20 @@ func (m *metrics) UpdateStats(s balancerStats) { Help string } s2g := map[string]gauge{ - "total": {s.current, "current backend storage usage"}, - "garbage": {s.garbage, "garbage (unreferenced, old)"}, - "transient": {s.unref, "transient (unreferenced, new)"}, - "overreplicated": {s.overrep, "overreplicated"}, - "underreplicated": {s.underrep, "underreplicated"}, - "lost": {s.lost, "lost"}, + "total": {s.current, "current backend storage usage"}, + "garbage": {s.garbage, "garbage (unreferenced, old)"}, + "transient": {s.unref, "transient (unreferenced, new)"}, + "overreplicated": {s.overrep, "overreplicated"}, + "underreplicated": {s.underrep, "underreplicated"}, + "lost": {s.lost, "lost"}, + "dedup_byte_ratio": {s.dedupByteRatio(), "deduplication ratio, bytes referenced / bytes stored"}, + "dedup_block_ratio": {s.dedupBlockRatio(), "deduplication ratio, blocks referenced / blocks stored"}, } m.setupOnce.Do(func() { // Register gauge(s) for each balancerStats field. addGauge := func(name, help string) { g := prometheus.NewGauge(prometheus.GaugeOpts{ + Namespace: "arvados", Name: name, Subsystem: "keep", Help: help, @@ -81,7 +85,7 @@ func (m *metrics) UpdateStats(s balancerStats) { for _, sub := range []string{"blocks", "bytes", "replicas"} { addGauge(name+"_"+sub, sub+" of "+gauge.Help) } - case int, int64: + case int, int64, float64: addGauge(name, gauge.Help) default: panic(fmt.Sprintf("bad gauge type %T", gauge.Value)) @@ -99,6 +103,8 @@ func (m *metrics) UpdateStats(s balancerStats) { m.statsGauges[name].Set(float64(val)) case int64: m.statsGauges[name].Set(float64(val)) + case float64: + m.statsGauges[name].Set(float64(val)) default: panic(fmt.Sprintf("bad gauge type %T", gauge.Value)) }