Skip to content

Commit b91a24d

Browse files
authored
Add new metric for store gateway chunk refetches (#5532)
1 parent 98a8dec commit b91a24d

File tree

3 files changed

+17
-0
lines changed

3 files changed

+17
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
* [ENHANCEMENT] Querier: Retry store gateway on different zones when zone awareness is enabled. #5476
5151
* [ENHANCEMENT] DDBKV: Change metric name from dynamodb_kv_read_capacity_total to dynamodb_kv_consumed_capacity_total and include Delete, Put, Batch dimension. #5481
5252
* [ENHANCEMENT] Compactor: allow unregisteronshutdown to be configurable. #5503
53+
* [ENHANCEMENT] Store Gateway: add metric `cortex_bucket_store_chunk_refetches_total` for number of chunk refetches. #5532
5354
* [BUGFIX] Ruler: Validate if rule group can be safely converted back to rule group yaml from protobuf message #5265
5455
* [BUGFIX] Querier: Convert gRPC `ResourceExhausted` status code from store gateway to 422 limit error. #5286
5556
* [BUGFIX] Alertmanager: Route web-ui requests to the alertmanager distributor when sharding is enabled. #5293

pkg/storegateway/bucket_store_metrics.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ type BucketStoreMetrics struct {
2525
seriesGetAllDuration *prometheus.Desc
2626
seriesMergeDuration *prometheus.Desc
2727
seriesRefetches *prometheus.Desc
28+
chunkRefetches *prometheus.Desc
2829
resultSeriesCount *prometheus.Desc
2930
queriesDropped *prometheus.Desc
3031
chunkSizeBytes *prometheus.Desc
@@ -105,6 +106,10 @@ func NewBucketStoreMetrics() *BucketStoreMetrics {
105106
"cortex_bucket_store_series_refetches_total",
106107
"Total number of cases where the built-in max series size was not enough to fetch series from index, resulting in refetch.",
107108
nil, nil),
109+
chunkRefetches: prometheus.NewDesc(
110+
"cortex_bucket_store_chunk_refetches_total",
111+
"Total number of cases where configured estimated chunk bytes was not enough was to fetch chunks from object store, resulting in refetch.",
112+
nil, nil),
108113
resultSeriesCount: prometheus.NewDesc(
109114
"cortex_bucket_store_series_result_series",
110115
"Number of series observed in the final result of a query.",
@@ -205,6 +210,7 @@ func (m *BucketStoreMetrics) Describe(out chan<- *prometheus.Desc) {
205210
out <- m.seriesGetAllDuration
206211
out <- m.seriesMergeDuration
207212
out <- m.seriesRefetches
213+
out <- m.chunkRefetches
208214
out <- m.resultSeriesCount
209215
out <- m.queriesDropped
210216
out <- m.chunkSizeBytes
@@ -247,6 +253,7 @@ func (m *BucketStoreMetrics) Collect(out chan<- prometheus.Metric) {
247253
data.SendSumOfHistograms(out, m.seriesGetAllDuration, "thanos_bucket_store_series_get_all_duration_seconds")
248254
data.SendSumOfHistograms(out, m.seriesMergeDuration, "thanos_bucket_store_series_merge_duration_seconds")
249255
data.SendSumOfCounters(out, m.seriesRefetches, "thanos_bucket_store_series_refetches_total")
256+
data.SendSumOfCounters(out, m.chunkRefetches, "thanos_bucket_store_chunk_refetches_total")
250257
data.SendSumOfHistograms(out, m.resultSeriesCount, "thanos_bucket_store_series_result_series")
251258
data.SendSumOfCounters(out, m.queriesDropped, "thanos_bucket_store_queries_dropped_total")
252259
data.SendSumOfHistograms(out, m.chunkSizeBytes, "thanos_bucket_store_sent_chunk_size_bytes")

pkg/storegateway/bucket_store_metrics_test.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -393,6 +393,10 @@ func TestBucketStoreMetrics(t *testing.T) {
393393
# TYPE cortex_bucket_store_cached_postings_original_size_bytes_total counter
394394
cortex_bucket_store_cached_postings_original_size_bytes_total 1261064
395395
396+
# HELP cortex_bucket_store_chunk_refetches_total Total number of cases where configured estimated chunk bytes was not enough was to fetch chunks from object store, resulting in refetch.
397+
# TYPE cortex_bucket_store_chunk_refetches_total counter
398+
cortex_bucket_store_chunk_refetches_total 0
399+
396400
# HELP cortex_bucket_store_cached_postings_compressed_size_bytes_total Compressed size of postings stored into cache.
397401
# TYPE cortex_bucket_store_cached_postings_compressed_size_bytes_total counter
398402
cortex_bucket_store_cached_postings_compressed_size_bytes_total 1283583
@@ -634,6 +638,7 @@ type mockedBucketStoreMetrics struct {
634638
seriesGetAllDuration prometheus.Histogram
635639
seriesMergeDuration prometheus.Histogram
636640
seriesRefetches prometheus.Counter
641+
chunkRefetches prometheus.Counter
637642
resultSeriesCount prometheus.Histogram
638643
chunkSizeBytes prometheus.Histogram
639644
postingsSizeBytes prometheus.Histogram
@@ -748,6 +753,10 @@ func newMockedBucketStoreMetrics(reg prometheus.Registerer) *mockedBucketStoreMe
748753
Name: "thanos_bucket_store_series_refetches_total",
749754
Help: fmt.Sprintf("Total number of cases where %v bytes was not enough was to fetch series from index, resulting in refetch.", 64*1024),
750755
})
756+
m.chunkRefetches = promauto.With(reg).NewCounter(prometheus.CounterOpts{
757+
Name: "thanos_bucket_store_chunk_refetches_total",
758+
Help: "Total number of cases where configured estimated chunk bytes was not enough was to fetch chunks from object store, resulting in refetch",
759+
})
751760

752761
m.cachedPostingsCompressions = promauto.With(reg).NewCounterVec(prometheus.CounterOpts{
753762
Name: "thanos_bucket_store_cached_postings_compressions_total",

0 commit comments

Comments
 (0)