Skip to content

Commit f407b47

Browse files
committed
add store size gauge
1 parent c90a41f commit f407b47

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

coderd/prometheusmetrics/aggregator.go

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ type MetricsAggregator struct {
4040
collectCh chan (chan []prometheus.Metric)
4141
updateCh chan updateRequest
4242

43+
storeSizeGauge prometheus.Gauge
4344
updateHistogram prometheus.Histogram
4445
cleanupHistogram prometheus.Histogram
4546
}
@@ -117,14 +118,25 @@ func NewMetricsAggregator(logger slog.Logger, registerer prometheus.Registerer,
117118
metricsCleanupInterval = duration
118119
}
119120

121+
storeSizeGauge := prometheus.NewGauge(prometheus.GaugeOpts{
122+
Namespace: "coderd",
123+
Subsystem: "prometheusmetrics",
124+
Name: "metrics_aggregator_store_size",
125+
Help: "The number of metrics stored in the aggregator",
126+
})
127+
err := registerer.Register(storeSizeGauge)
128+
if err != nil {
129+
return nil, err
130+
}
131+
120132
updateHistogram := prometheus.NewHistogram(prometheus.HistogramOpts{
121133
Namespace: "coderd",
122134
Subsystem: "prometheusmetrics",
123135
Name: "metrics_aggregator_execution_update_seconds",
124136
Help: "Histogram for duration of metrics aggregator update in seconds.",
125137
Buckets: []float64{0.001, 0.005, 0.010, 0.025, 0.050, 0.100, 0.500, 1, 5, 10, 30},
126138
})
127-
err := registerer.Register(updateHistogram)
139+
err = registerer.Register(updateHistogram)
128140
if err != nil {
129141
return nil, err
130142
}
@@ -150,6 +162,7 @@ func NewMetricsAggregator(logger slog.Logger, registerer prometheus.Registerer,
150162
collectCh: make(chan (chan []prometheus.Metric), sizeCollectCh),
151163
updateCh: make(chan updateRequest, sizeUpdateCh),
152164

165+
storeSizeGauge: storeSizeGauge,
153166
updateHistogram: updateHistogram,
154167
cleanupHistogram: cleanupHistogram,
155168
}, nil
@@ -187,8 +200,9 @@ func (ma *MetricsAggregator) Run(ctx context.Context) func() {
187200
}
188201
}
189202
}
190-
191203
timer.ObserveDuration()
204+
205+
ma.storeSizeGauge.Set(float64(len(ma.store)))
192206
case outputCh := <-ma.collectCh:
193207
ma.log.Debug(ctx, "collect metrics")
194208

@@ -217,6 +231,7 @@ func (ma *MetricsAggregator) Run(ctx context.Context) func() {
217231

218232
timer.ObserveDuration()
219233
cleanupTicker.Reset(ma.metricsCleanupInterval)
234+
ma.storeSizeGauge.Set(float64(len(ma.store)))
220235

221236
case <-ctx.Done():
222237
ma.log.Debug(ctx, "metrics aggregator is stopped")

0 commit comments

Comments
 (0)