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 }