Skip to content

Commit 56d4a99

Browse files
committed
add head stale series metric
Signed-off-by: yeya24 <benye@amazon.com>
1 parent 275a9de commit 56d4a99

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

pkg/ingester/metrics.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,7 @@ type tsdbMetrics struct {
343343
tsdbHeadTruncateFail *prometheus.Desc
344344
tsdbHeadTruncateTotal *prometheus.Desc
345345
tsdbHeadGcDuration *prometheus.Desc
346+
tsdbHeadStaleSeries *prometheus.Desc
346347
tsdbActiveAppenders *prometheus.Desc
347348
tsdbSeriesNotFound *prometheus.Desc
348349
tsdbChunks *prometheus.Desc
@@ -470,6 +471,10 @@ func newTSDBMetrics(r prometheus.Registerer) *tsdbMetrics {
470471
"cortex_ingester_tsdb_head_gc_duration_seconds",
471472
"Runtime of garbage collection in the TSDB head.",
472473
nil, nil),
474+
tsdbHeadStaleSeries: prometheus.NewDesc(
475+
"cortex_ingester_tsdb_head_stale_series",
476+
"Total number of stale series in the head block.",
477+
[]string{"user"}, nil),
473478
tsdbActiveAppenders: prometheus.NewDesc(
474479
"cortex_ingester_tsdb_head_active_appenders",
475480
"Number of currently active TSDB appender transactions.",
@@ -623,6 +628,7 @@ func (sm *tsdbMetrics) Describe(out chan<- *prometheus.Desc) {
623628
out <- sm.tsdbWALWritesFailed
624629
out <- sm.tsdbHeadTruncateFail
625630
out <- sm.tsdbHeadTruncateTotal
631+
out <- sm.tsdbHeadStaleSeries
626632
out <- sm.tsdbHeadGcDuration
627633
out <- sm.tsdbActiveAppenders
628634
out <- sm.tsdbSeriesNotFound
@@ -684,6 +690,7 @@ func (sm *tsdbMetrics) Collect(out chan<- prometheus.Metric) {
684690
data.SendSumOfCounters(out, sm.tsdbHeadTruncateFail, "prometheus_tsdb_head_truncations_failed_total")
685691
data.SendSumOfCounters(out, sm.tsdbHeadTruncateTotal, "prometheus_tsdb_head_truncations_total")
686692
data.SendSumOfSummaries(out, sm.tsdbHeadGcDuration, "prometheus_tsdb_head_gc_duration_seconds")
693+
data.SendSumOfGaugesPerUser(out, sm.tsdbHeadStaleSeries, "prometheus_tsdb_head_stale_series")
687694
data.SendSumOfGauges(out, sm.tsdbActiveAppenders, "prometheus_tsdb_head_active_appenders")
688695
data.SendSumOfCounters(out, sm.tsdbSeriesNotFound, "prometheus_tsdb_head_series_not_found_total")
689696
data.SendSumOfGauges(out, sm.tsdbChunks, "prometheus_tsdb_head_chunks")

pkg/ingester/metrics_test.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -428,6 +428,11 @@ func TestTSDBMetrics(t *testing.T) {
428428
# HELP cortex_ingester_tsdb_exemplar_exemplars_in_storage Number of TSDB exemplars currently in storage.
429429
# TYPE cortex_ingester_tsdb_exemplar_exemplars_in_storage gauge
430430
cortex_ingester_tsdb_exemplar_exemplars_in_storage 30
431+
# HELP cortex_ingester_tsdb_head_stale_series Total number of stale series in the head block.
432+
# TYPE cortex_ingester_tsdb_head_stale_series gauge
433+
cortex_ingester_tsdb_head_stale_series{user="user1"} 382695
434+
cortex_ingester_tsdb_head_stale_series{user="user2"} 2659397
435+
cortex_ingester_tsdb_head_stale_series{user="user3"} 30969
431436
`))
432437
require.NoError(t, err)
433438
}
@@ -691,6 +696,10 @@ func TestTSDBMetricsWithRemoval(t *testing.T) {
691696
# HELP cortex_ingester_tsdb_exemplar_exemplars_in_storage Number of TSDB exemplars currently in storage.
692697
# TYPE cortex_ingester_tsdb_exemplar_exemplars_in_storage gauge
693698
cortex_ingester_tsdb_exemplar_exemplars_in_storage 20
699+
# HELP cortex_ingester_tsdb_head_stale_series Total number of stale series in the head block.
700+
# TYPE cortex_ingester_tsdb_head_stale_series gauge
701+
cortex_ingester_tsdb_head_stale_series{user="user1"} 382695
702+
cortex_ingester_tsdb_head_stale_series{user="user2"} 2659397
694703
`))
695704
require.NoError(t, err)
696705
}
@@ -1018,5 +1027,11 @@ func populateTSDBMetrics(base float64) *prometheus.Registry {
10181027
})
10191028
exemplarsOutOfOrderTotal.Add(3)
10201029

1030+
headStaleSeries := promauto.With(r).NewGauge(prometheus.GaugeOpts{
1031+
Name: "prometheus_tsdb_head_stale_series",
1032+
Help: "Total number of stale series in the head block.",
1033+
})
1034+
headStaleSeries.Set(31 * base)
1035+
10211036
return r
10221037
}

0 commit comments

Comments
 (0)