Files
2026-08-16 14:48:04 +02:00

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 %}