github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/production/loki-mixin/dashboards/loki-reads-resources.libsonnet (about)

     1  local grafana = import 'grafonnet/grafana.libsonnet';
     2  local utils = import 'mixin-utils/utils.libsonnet';
     3  
     4  (import 'dashboard-utils.libsonnet') {
     5    local index_gateway_pod_matcher = if $._config.ssd.enabled then 'container="loki", pod=~"%s-read.*"' % $._config.ssd.pod_prefix_matcher else 'container="index-gateway"',
     6    local index_gateway_job_matcher = if $._config.ssd.enabled then '%s-read' % $._config.ssd.pod_prefix_matcher else 'index-gateway',
     7  
     8    local ingester_pod_matcher = if $._config.ssd.enabled then 'container="loki", pod=~"%s-write.*"' % $._config.ssd.pod_prefix_matcher else 'container="ingester"',
     9    local ingester_job_matcher = if $._config.ssd.enabled then '%s-write' % $._config.ssd.pod_prefix_matcher else 'ingester',
    10  
    11    grafanaDashboards+::
    12      {
    13        'loki-reads-resources.json':
    14          ($.dashboard('Loki / Reads Resources', uid='reads-resources'))
    15          .addCluster()
    16          .addNamespace()
    17          .addTag()
    18          .addRowIf(
    19            $._config.internal_components,
    20            $.row('Gateway')
    21            .addPanel(
    22              $.containerCPUUsagePanel('CPU', 'cortex-gw'),
    23            )
    24            .addPanel(
    25              $.containerMemoryWorkingSetPanel('Memory (workingset)', 'cortex-gw'),
    26            )
    27            .addPanel(
    28              $.goHeapInUsePanel('Memory (go heap inuse)', 'cortex-gw'),
    29            )
    30          )
    31          .addRowIf(
    32            !$._config.ssd.enabled,
    33            $.row('Query Frontend')
    34            .addPanel(
    35              $.containerCPUUsagePanel('CPU', 'query-frontend'),
    36            )
    37            .addPanel(
    38              $.containerMemoryWorkingSetPanel('Memory (workingset)', 'query-frontend'),
    39            )
    40            .addPanel(
    41              $.goHeapInUsePanel('Memory (go heap inuse)', 'query-frontend'),
    42            )
    43          )
    44          .addRowIf(
    45            !$._config.ssd.enabled,
    46            $.row('Query Scheduler')
    47            .addPanel(
    48              $.containerCPUUsagePanel('CPU', 'query-scheduler'),
    49            )
    50            .addPanel(
    51              $.containerMemoryWorkingSetPanel('Memory (workingset)', 'query-scheduler'),
    52            )
    53            .addPanel(
    54              $.goHeapInUsePanel('Memory (go heap inuse)', 'query-scheduler'),
    55            )
    56          )
    57          .addRowIf(
    58            !$._config.ssd.enabled,
    59            grafana.row.new('Querier')
    60            .addPanel(
    61              $.containerCPUUsagePanel('CPU', 'querier'),
    62            )
    63            .addPanel(
    64              $.containerMemoryWorkingSetPanel('Memory (workingset)', 'querier'),
    65            )
    66            .addPanel(
    67              $.goHeapInUsePanel('Memory (go heap inuse)', 'querier'),
    68            )
    69            .addPanel(
    70              $.panel('Disk Writes') +
    71              $.queryPanel(
    72                'sum by(%s, %s, device) (rate(node_disk_written_bytes_total[$__rate_interval])) + %s' % [$._config.per_node_label, $._config.per_instance_label, $.filterNodeDiskContainer('querier')],
    73                '{{%s}} - {{device}}' % $._config.per_instance_label
    74              ) +
    75              $.stack +
    76              { yaxes: $.yaxes('Bps') },
    77            )
    78            .addPanel(
    79              $.panel('Disk Reads') +
    80              $.queryPanel(
    81                'sum by(%s, %s, device) (rate(node_disk_read_bytes_total[$__rate_interval])) + %s' % [$._config.per_node_label, $._config.per_instance_label, $.filterNodeDiskContainer('querier')],
    82                '{{%s}} - {{device}}' % $._config.per_instance_label
    83              ) +
    84              $.stack +
    85              { yaxes: $.yaxes('Bps') },
    86            )
    87            .addPanel(
    88              $.containerDiskSpaceUtilizationPanel('Disk Space Utilization', 'querier'),
    89            )
    90          )
    91          .addRow(
    92            grafana.row.new(if $._config.ssd.enabled then 'Read path' else 'Index Gateway')
    93            .addPanel(
    94              $.CPUUsagePanel('CPU', index_gateway_pod_matcher),
    95            )
    96            .addPanel(
    97              $.memoryWorkingSetPanel('Memory (workingset)', index_gateway_pod_matcher),
    98            )
    99            .addPanel(
   100              $.goHeapInUsePanel('Memory (go heap inuse)', index_gateway_job_matcher),
   101            )
   102            .addPanel(
   103              $.panel('Disk Writes') +
   104              $.queryPanel(
   105                'sum by(%s, %s, device) (rate(node_disk_written_bytes_total[$__rate_interval])) + %s' % [$._config.per_node_label, $._config.per_instance_label, $.filterNodeDisk(index_gateway_pod_matcher)],
   106                '{{%s}} - {{device}}' % $._config.per_instance_label
   107              ) +
   108              $.stack +
   109              { yaxes: $.yaxes('Bps') },
   110            )
   111            .addPanel(
   112              $.panel('Disk Reads') +
   113              $.queryPanel(
   114                'sum by(%s, %s, device) (rate(node_disk_read_bytes_total[$__rate_interval])) + %s' % [$._config.per_node_label, $._config.per_instance_label, $.filterNodeDisk(index_gateway_pod_matcher)],
   115                '{{%s}} - {{device}}' % $._config.per_instance_label
   116              ) +
   117              $.stack +
   118              { yaxes: $.yaxes('Bps') },
   119            )
   120            .addPanel(
   121              $.containerDiskSpaceUtilizationPanel('Disk Space Utilization', index_gateway_job_matcher),
   122            )
   123            .addPanel(
   124              $.panel('Query Readiness Duration') +
   125              $.queryPanel(
   126                ['loki_boltdb_shipper_query_readiness_duration_seconds{%s}' % $.namespaceMatcher()], ['duration']
   127              ) +
   128              { yaxes: $.yaxes('s') },
   129            )
   130          )
   131          .addRow(
   132            $.row('Ingester')
   133            .addPanel(
   134              $.CPUUsagePanel('CPU', ingester_pod_matcher),
   135            )
   136            .addPanel(
   137              $.memoryWorkingSetPanel('Memory (workingset)', ingester_pod_matcher),
   138            )
   139            .addPanel(
   140              $.goHeapInUsePanel('Memory (go heap inuse)', ingester_job_matcher),
   141            )
   142          )
   143          .addRowIf(
   144            !$._config.ssd.enabled,
   145            grafana.row.new('Ruler')
   146            .addPanel(
   147              $.panel('Rules') +
   148              $.queryPanel(
   149                'sum by(%s) (cortex_prometheus_rule_group_rules{%s})' % [$._config.per_instance_label, $.jobMatcher('ruler')],
   150                '{{%s}}' % $._config.per_instance_label
   151              ),
   152            )
   153            .addPanel(
   154              $.containerCPUUsagePanel('CPU', 'ruler'),
   155            )
   156            .addPanel(
   157              $.containerMemoryWorkingSetPanel('Memory (workingset)', 'ruler'),
   158            )
   159            .addPanel(
   160              $.goHeapInUsePanel('Memory (go heap inuse)', 'ruler'),
   161            )
   162          ),
   163      },
   164  }