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

     1  local lokiLogs = (import './dashboard-loki-logs.json');
     2  local template = import 'grafonnet/template.libsonnet';
     3  
     4  
     5  {
     6    local deploymentTemplate =
     7      template.new(
     8        'deployment',
     9        '$datasource',
    10        'label_values(kube_deployment_created{' + $._config.per_cluster_label + '="$cluster", namespace="$namespace"}, deployment)',
    11        sort=1,
    12      ),
    13  
    14    local podTemplate =
    15      template.new(
    16        'pod',
    17        '$datasource',
    18        'label_values(kube_pod_container_info{' + $._config.per_cluster_label + '="$cluster", namespace="$namespace", pod=~"$deployment.*"}, pod)',
    19        sort=1,
    20      ),
    21  
    22    local containerTemplate =
    23      template.new(
    24        'container',
    25        '$datasource',
    26        'label_values(kube_pod_container_info{' + $._config.per_cluster_label + '="$cluster", namespace="$namespace", pod=~"$pod", pod=~"$deployment.*"}, container)',
    27        sort=1,
    28      ),
    29  
    30    local levelTemplate =
    31      template.custom(
    32        'level',
    33        'debug,info,warn,error',
    34        '',
    35        multi=true,
    36      ),
    37  
    38    local logTemplate =
    39      template.text(
    40        'filter',
    41        label='LogQL Filter'
    42      ),
    43  
    44    grafanaDashboards+: {
    45      local dashboards = self,
    46  
    47      'loki-logs.json': {
    48                          local cfg = self,
    49  
    50                          showMultiCluster:: true,
    51                          clusterLabel:: $._config.per_cluster_label,
    52  
    53                        } + lokiLogs +
    54                        $.dashboard('Loki / Logs', uid='logs')
    55                        .addCluster()
    56                        .addNamespace()
    57                        .addTag()
    58                        .addLog() +
    59                        {
    60                          panels: [
    61                            p {
    62                              targets: [
    63                                e {
    64                                  expr: if dashboards['loki-logs.json'].showMultiCluster then super.expr
    65                                  else std.strReplace(super.expr, $._config.per_cluster_label + '="$cluster", ', ''),
    66                                }
    67                                for e in p.targets
    68                              ],
    69                            }
    70                            for p in super.panels
    71                          ],
    72                          templating+: {
    73                            list+: [
    74                              deploymentTemplate,
    75                              podTemplate,
    76                              containerTemplate,
    77                              levelTemplate,
    78                              logTemplate,
    79                            ],
    80                          },
    81                        },
    82    },
    83  }