58 lines
1.6 KiB
Django/Jinja
58 lines
1.6 KiB
Django/Jinja
apiVersion: 1
|
|
|
|
groups:
|
|
{% for group in alert_groups %}
|
|
- orgId: 1
|
|
name: {{ group.name }}
|
|
folder: {{ grafana_folder }}
|
|
interval: {{ group.interval }}
|
|
rules:
|
|
{% for rule in group.rules %}
|
|
- uid: {{ rule.uid }}
|
|
title: {{ rule.title }}
|
|
condition: C
|
|
for: {{ rule['for'] }}
|
|
noDataState: {{ rule.no_data | default('NoData') }}
|
|
execErrState: Alerting
|
|
labels:
|
|
severity: {{ rule.severity }}
|
|
annotations:
|
|
summary: {{ rule.summary }}
|
|
data:
|
|
- refId: A
|
|
relativeTimeRange:
|
|
from: 600
|
|
to: 0
|
|
datasourceUid: {{ grafana_loki_uid if rule.source | default('prometheus') == 'loki' else grafana_prometheus_uid }}
|
|
model:
|
|
refId: A
|
|
expr: '{{ rule.expr }}'
|
|
instant: true
|
|
{% if rule.source | default('prometheus') == 'loki' %}
|
|
queryType: instant
|
|
{% else %}
|
|
range: false
|
|
{% endif %}
|
|
- refId: B
|
|
datasourceUid: __expr__
|
|
model:
|
|
refId: B
|
|
type: reduce
|
|
expression: A
|
|
reducer: last
|
|
settings:
|
|
mode: dropNN
|
|
- refId: C
|
|
datasourceUid: __expr__
|
|
model:
|
|
refId: C
|
|
type: threshold
|
|
expression: B
|
|
conditions:
|
|
- evaluator:
|
|
type: {{ rule.op }}
|
|
params:
|
|
- {{ rule.threshold }}
|
|
{% endfor %}
|
|
{% endfor %}
|