Skip to content
This repository was archived by the owner on Apr 28, 2025. It is now read-only.

Commit 76b89ff

Browse files
committed
Cortex writes dashboard: add panels for KV activity
For HA-tracker, show which tenants are changing election. For ingester, show how many are active, leaving, etc.
1 parent c09fed3 commit 76b89ff

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
* [CHANGE] Increased `CortexIngesterReachingSeriesLimit` critical alert threshold from 80% to 85%. #363
2424
* [CHANGE] Decreased `-server.grpc-max-concurrent-streams` from 100k to 10k. #369
2525
* [CHANGE] Decreased blocks storage ingesters graceful termination period from 80m to 20m. #369
26+
* [ENHANCEMENT] Writes dashboard: fix HA-tracker KV panels; add elections panel and ingester state panel. #371
2627
* [ENHANCEMENT] cortex-mixin: Make `cluster_namespace_deployment:kube_pod_container_resource_requests_{cpu_cores,memory_bytes}:sum` backwards compatible with `kube-state-metrics` v2.0.0. #317
2728
* [ENHANCEMENT] Cortex-mixin: Include `cortex-gw-internal` naming variation in default `gateway` job names. #328
2829
* [ENHANCEMENT] Ruler dashboard: added object storage metrics. #354

cortex-mixin/dashboards/writes.libsonnet

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,16 @@ local utils = import 'mixin-utils/utils.libsonnet';
110110
$.panel('Latency') +
111111
utils.latencyRecordingRulePanel('cortex_kv_request_duration_seconds', $.jobSelector($._config.job_names.distributor) + [utils.selector.eq('kv_name', 'distributor-hatracker')])
112112
)
113+
.addPanel(
114+
$.panel('Elected replica changes / min') +
115+
$.queryPanel([
116+
'max by(exported_cluster, user)(increase(cortex_ha_tracker_elected_replica_changes_total{%s}[1m])) >0' % $.jobMatcher($._config.job_names.distributor),
117+
], [
118+
'{{user}}/{{exported_cluster}}',
119+
]) +
120+
$.stack + {
121+
yaxes: $.yaxes('cpm'),
122+
},
113123
)
114124
)
115125
.addRow(
@@ -138,8 +148,15 @@ local utils = import 'mixin-utils/utils.libsonnet';
138148
)
139149
.addPanel(
140150
$.panel('Latency') +
141-
utils.latencyRecordingRulePanel('cortex_kv_request_duration_seconds', $.jobSelector($._config.job_names.ingester)+ [utils.selector.eq('kv_name', 'ingester-lifecycler')])
151+
utils.latencyRecordingRulePanel('cortex_kv_request_duration_seconds', $.jobSelector($._config.job_names.ingester) + [utils.selector.eq('kv_name', 'ingester-lifecycler')])
142152
)
153+
.addPanel(
154+
$.panel('Ingester status') +
155+
$.queryPanel([
156+
'max by (state)(cortex_ring_members{%s}) >0' % $.jobMatcher($._config.job_names.distributor),
157+
], [
158+
'{{state}}',
159+
])
143160
)
144161
)
145162
.addRowIf(

0 commit comments

Comments
 (0)