Skip to content

Commit 0ce1b00

Browse files
committed
[loki] Generate Dashboards from loki-mixin
Signed-off-by: Jan-Otto Kröpke <mail@jkroepke.de>
1 parent e203b00 commit 0ce1b00

23 files changed

+836
-3274
lines changed

charts/loki/.helmignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,4 @@ test/
3030
scenarios/
3131
docs/
3232
*-values.yaml
33+
hack/

charts/loki/ci/non-default-values.yaml

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,13 @@ nameOverride: '{{ $.Release.Name }}'
33
test:
44
enabled: true
55
loki:
6+
auth_enabled: true
67
commonConfig:
78
replication_factor: 1
89
useTestSchema: true
910
tenants:
11+
- name: "self-monitoring"
12+
password: "self-monitoring"
1013
- name: "test-user-1"
1114
password: "test-password-1"
1215
- name: "test-user-2"
@@ -16,9 +19,42 @@ loki:
1619
- name: ndots
1720
value: "3"
1821
ingester:
19-
replicas: 0
22+
replicas: 1
2023
zoneAwareReplication:
2124
enabled: true
25+
zoneA:
26+
extraAffinity:
27+
podAntiAffinity:
28+
requiredDuringSchedulingIgnoredDuringExecution:
29+
- labelSelector:
30+
matchExpressions:
31+
- key: name
32+
operator: In
33+
values:
34+
- '{{ include "loki.prefixIngesterName" . }}ingester-zone-a'
35+
topologyKey: kubernetes.io/hostname
36+
zoneB:
37+
extraAffinity:
38+
podAntiAffinity:
39+
requiredDuringSchedulingIgnoredDuringExecution:
40+
- labelSelector:
41+
matchExpressions:
42+
- key: name
43+
operator: In
44+
values:
45+
- '{{ include "loki.prefixIngesterName" . }}ingester-zone-b'
46+
topologyKey: kubernetes.io/hostname
47+
zoneC:
48+
extraAffinity:
49+
podAntiAffinity:
50+
requiredDuringSchedulingIgnoredDuringExecution:
51+
- labelSelector:
52+
matchExpressions:
53+
- key: name
54+
operator: In
55+
values:
56+
- '{{ include "loki.prefixIngesterName" . }}ingester-zone-c'
57+
topologyKey: kubernetes.io/hostname
2258
dnsConfig:
2359
options:
2460
- name: ndots
@@ -51,6 +87,8 @@ queryScheduler:
5187
lokiCanary:
5288
enabled: true
5389
kind: Deployment
90+
tenant:
91+
password: "self-monitoring"
5492
chunksCache:
5593
suffix: "l1"
5694
enabled: true
@@ -80,11 +118,17 @@ gateway:
80118
metrics:
81119
enabled: false
82120
monitoring:
121+
serviceMonitor:
122+
enabled: true
123+
labels:
124+
release: kube-prometheus-stack
83125
dashboards:
84126
enabled: true
85127
rules:
86128
enabled: true
87129
alerting: true
130+
labels:
131+
release: kube-prometheus-stack
88132
additionalGroups:
89133
- name: "additional-rules"
90134
rules:

charts/loki/hack/sync_grafana_dashboards.py

Lines changed: 52 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def new_representer(dumper, data):
3737
{
3838
'git': 'https://github.com/grafana/loki.git',
3939
'branch': refs['ref.loki'],
40-
'content': "(import 'dashboards.libsonnet') + (import 'config.libsonnet') + {_config+:: { horizontally_scalable_compactor_enabled: false, internal_components: true, meta_monitoring+: { enabled: true }, promtail+: { enabled: false }, ssd+: { enabled: false, pod_prefix_matcher: 'loki.*' }}}",
40+
'content': "(import 'dashboards.libsonnet') + (import 'config.libsonnet') + {_config+:: { horizontally_scalable_compactor_enabled: false, internal_components: false, meta_monitoring+: { enabled: true }, promtail+: { enabled: false }, ssd+: { enabled: false, pod_prefix_matcher: 'loki.*' }}}",
4141
'cwd': 'production/loki-mixin',
4242
'destination': '../templates/monitoring/dashboards',
4343
'type': 'jsonnet_mixin',
@@ -48,14 +48,62 @@ def new_representer(dumper, data):
4848

4949
# Additional conditions map
5050
condition_map = {}
51-
52-
replacement_map = {}
51+
replacement_map = {
52+
'($namespace)/(bloom-gateway': {
53+
'replacement': '($namespace)/(loki.*-bloom-gateway',
54+
},
55+
'($namespace)/(distributor': {
56+
'replacement': '($namespace)/(loki.*-distributor',
57+
},
58+
'($namespace)/(querier': {
59+
'replacement': '($namespace)/(loki.*-querier',
60+
},
61+
'($namespace)/(index-gateway': {
62+
'replacement': '($namespace)/(loki.*-index-gateway',
63+
},
64+
'($namespace)/(query-frontend': {
65+
'replacement': '($namespace)/(loki.*-query-frontend',
66+
},
67+
'($namespace)/(partition-ingester.*|ingester.*': {
68+
'replacement': '($namespace)/(loki.*-partition-ingester.*|loki.*-ingester.*',
69+
},
70+
'($namespace)/(partition-ingester-.*|ingester-zone-.*': {
71+
'replacement': '($namespace)/(loki.*-partition-ingester-.*|loki.*-ingester-zone-.*',
72+
},
73+
'($namespace)/bloom-gateway': {
74+
'replacement': '($namespace)/loki.*-bloom-gateway',
75+
},
76+
'($namespace)/query-frontend': {
77+
'replacement': '($namespace)/loki.*-query-frontend',
78+
},
79+
'($namespace)/query-scheduler': {
80+
'replacement': '($namespace)/loki.*-query-scheduler',
81+
},
82+
'($namespace)/distributor': {
83+
'replacement': '($namespace)/loki.*-distributor',
84+
},
85+
'($namespace)/ruler': {
86+
'replacement': '($namespace)/loki.*-ruler',
87+
},
88+
'($namespace)/querier': {
89+
'replacement': '($namespace)/loki.*-querier',
90+
},
91+
'"(.*compactor|loki.*-backend.*|loki-single-binary)"': {
92+
'replacement': '".*compactor|loki.*-backend.*|loki-single-binary)',
93+
},
94+
'cluster=~\\"$cluster\\"': {
95+
'replacement': 'cluster=~\\"|$cluster\\"',
96+
},
97+
'*.index-gateway': {
98+
'replacement': '.*index-gateway',
99+
},
100+
}
53101

54102
# standard header
55103
header = '''{{- /*
56104
Generated from '%(name)s' from %(url)s
57105
Do not change in-place! In order to change this file first read following link:
58-
https://github.com/prometheus-community/helm-charts/tree/main/charts/loki/hack
106+
https://github.com/grafana-community/helm-charts/tree/main/charts/loki/hack
59107
*/ -}}
60108
{{- if and .Values.monitoring.dashboards.enabled (dig "%(name)s" "enabled" true .Values.monitoring.dashboards) %(condition)s }}%(init_line)s
61109
apiVersion: v1

0 commit comments

Comments
 (0)