github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/production/loki-mixin/dashboards/loki-deletion.libsonnet (about) 1 local g = import 'grafana-builder/grafana.libsonnet'; 2 local utils = import 'mixin-utils/utils.libsonnet'; 3 4 (import 'dashboard-utils.libsonnet') { 5 local compactor_matcher = if $._config.ssd.enabled then '%s-read' % $._config.ssd.pod_prefix_matcher else 'compactor', 6 grafanaDashboards+:: 7 { 8 'loki-deletion.json': 9 ($.dashboard('Loki / Deletion', uid='deletion')) 10 .addCluster() 11 .addNamespace() 12 .addTag() 13 .addRow( 14 ($.row('Headlines') + 15 { 16 height: '100px', 17 showTitle: false, 18 }) 19 .addPanel( 20 $.panel('Number of Pending Requests') + 21 $.statPanel('sum(loki_compactor_pending_delete_requests_count{%s})' % $.namespaceMatcher(), format='none') 22 ) 23 .addPanel( 24 $.panel('Oldest Pending Request Age') + 25 $.statPanel('max(loki_compactor_oldest_pending_delete_request_age_seconds{%s})' % $.namespaceMatcher(), format='dtdurations') 26 ) 27 ) 28 .addRow( 29 g.row('Churn') 30 .addPanel( 31 g.panel('Delete Requests Received / Day') + 32 g.queryPanel('sum(increase(loki_compactor_delete_requests_received_total{%s}[1d]))' % $.namespaceMatcher(), 'received'), 33 ) 34 .addPanel( 35 g.panel('Delete Requests Processed / Day') + 36 g.queryPanel('sum(increase(loki_compactor_delete_requests_processed_total{%s}[1d]))' % $.namespaceMatcher(), 'processed'), 37 ) 38 ).addRow( 39 g.row('Failures') 40 .addPanel( 41 g.panel('Failures in Loading Delete Requests / Hour') + 42 g.queryPanel('sum(increase(loki_compactor_load_pending_requests_attempts_total{status="fail", %s}[1h]))' % $.namespaceMatcher(), 'failures'), 43 ) 44 ).addRow( 45 g.row('Deleted lines') 46 .addPanel( 47 g.panel('Lines Deleted / Sec') + 48 g.queryPanel('sum(rate(loki_compactor_deleted_lines{' + $._config.per_cluster_label + '=~"$cluster",job=~"$namespace/%s"}[$__rate_interval])) by (user)' % compactor_matcher, '{{user}}'), 49 ) 50 ), 51 }, 52 }