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