@@ -163,5 +163,60 @@ local utils = import 'mixin-utils/utils.libsonnet';
163163        $.panel('Upload latency' ) +
164164        $.latencyPanel('thanos_objstore_bucket_operation_duration_seconds' , '{%s,component="ingester",operation="upload"}'  % $.jobMatcher($._config.job_names.ingester)),
165165      )
166+     )
167+     .addRowIf(
168+       std.setMember ('tsdb' , $._config.storage_engine),
169+       $.row('Ingester - Blocks storage - TSDB Head' )
170+       .addPanel(
171+         $.successFailurePanel(
172+           'Compactions / sec' ,
173+           'sum(rate(cortex_ingester_tsdb_compactions_total{%s}[$__interval]))'  % [$.jobMatcher($._config.job_names.ingester)],
174+           'sum(rate(cortex_ingester_tsdb_compactions_failed_total{%s}[$__interval]))'  % $.jobMatcher($._config.job_names.ingester),
175+         ),
176+       )
177+       .addPanel(
178+         $.panel('Compactions latency' ) +
179+         $.latencyPanel('cortex_ingester_tsdb_compaction_duration_seconds' , '{%s}'  % $.jobMatcher($._config.job_names.ingester)),
180+       )
181+     )
182+     .addRowIf(
183+       std.setMember ('tsdb' , $._config.storage_engine),
184+       $.row('Ingester - Blocks storage - TSDB WAL' )
185+       .addPanel(
186+         $.successFailurePanel(
187+           'WAL truncations / sec' ,
188+           'sum(rate(cortex_ingester_tsdb_wal_truncations_total{%s}[$__interval])) - sum(rate(cortex_ingester_tsdb_wal_truncations_failed_total{%s}[$__interval]))'  % [$.jobMatcher($._config.job_names.ingester), $.jobMatcher($._config.job_names.ingester)],
189+           'sum(rate(cortex_ingester_tsdb_wal_truncations_failed_total{%s}[$__interval]))'  % $.jobMatcher($._config.job_names.ingester),
190+         ),
191+       )
192+       .addPanel(
193+         $.successFailurePanel(
194+           'Checkpoints created / sec' ,
195+           'sum(rate(cortex_ingester_tsdb_checkpoint_creations_total{%s}[$__interval])) - sum(rate(cortex_ingester_tsdb_checkpoint_creations_failed_total{%s}[$__interval]))'  % [$.jobMatcher($._config.job_names.ingester), $.jobMatcher($._config.job_names.ingester)],
196+           'sum(rate(cortex_ingester_tsdb_checkpoint_creations_failed_total{%s}[$__interval]))'  % $.jobMatcher($._config.job_names.ingester),
197+         ),
198+       )
199+       .addPanel(
200+         $.panel('WAL truncations latency (includes checkpointing)' ) +
201+         $.queryPanel('sum(rate(cortex_ingester_tsdb_wal_truncate_duration_seconds_sum{%s}[$__interval])) / sum(rate(cortex_ingester_tsdb_wal_truncate_duration_seconds_count{%s}[$__interval]))'  % [$.jobMatcher($._config.job_names.ingester), $.jobMatcher($._config.job_names.ingester)], 'avg' ) +
202+         { yaxes:  $.yaxes('s' ) },
203+       )
204+       .addPanel(
205+         $.panel('Corruptions / sec' ) +
206+         $.queryPanel([
207+           'sum(rate(cortex_ingester_wal_corruptions_total{%s}[$__interval]))'  % $.jobMatcher($._config.job_names.ingester),
208+           'sum(rate(cortex_ingester_tsdb_mmap_chunk_corruptions_total{%s}[$__interval]))'  % $.jobMatcher($._config.job_names.ingester),
209+         ], [
210+           'WAL' ,
211+           'mmap-ed chunks' ,
212+         ]) +
213+         $.stack + {
214+           yaxes:  $.yaxes('ops' ),
215+           aliasColors:  {
216+             WAL:  '#E24D42' ,
217+             'mmap-ed chunks' : '#E28A42' ,
218+           },
219+         },
220+       )
166221    ),
167222}
0 commit comments