---
{{ ansible_managed | comment }}

{% macro raw(string) -%}
{{ "{{" }} {{ string }} {{ "}}" }}
{%- endmacro %}

groups:

  - name: ups.rules
    rules:

      - alert: UpsOutputSourceChanged
        expr: upsOutputSource != 3
        for: 0m
        labels:
          severity: critical
        annotations:
          summary: >-
            Source d'alimentation changée

      - alert: UpsBatteryStatus
        expr: upsBatteryStatus == 3
        for: 0m
        labels:
          severity: warning
        annotations:
          summary: >-
            État de la batterie faible

      - alert: UpsBatteryStatus
        expr: upsBatteryStatus == 4
        for: 0m
        labels:
          severity: critical
        annotations:
          summary: >-
            État de la batterie critique

      - alert: UpsHighLoad
        expr: upsOutputPercentLoad > 70
        for: 3m
        labels:
          severity: critical
        annotations:
          summary: >-
            Charge de {{ raw('$value | printf "%.1f"') }}%

      - alert: UpsWrongInputVoltage
        expr: (upsInputVoltage < 210) or (upsInputVoltage > 250)
        for: 5m
        labels:
          severity: warning
        annotations:
          summary: >-
            Tension d'entrée de {{ raw('$value') }}V

      - alert: UpsWrongOutputVoltage
        expr: >-
          abs(upsInputVoltage - avg_over_time(upsOutputVoltage[1d]))
            < 3 * stddev_over_time(upsOutputVoltage[1d])
        for: 5m
        labels:
          severity: warning
        annotations:
          summary: >-
            Tension de sortie de {{ raw('$value') }}V

      - alert: UpsTimeRemaining
        expr: upsEstimatedMinutesRemaining < 8
        for: 0m
        labels:
          severity: warning
        annotations:
          summary: >-
            Autonomie restante de {{ raw('$value') }} min

      - alert: UpsTimeRemaining
        expr: upsEstimatedMinutesRemaining < 5
        for: 0m
        labels:
          severity: critical
        annotations:
          summary: >-
            Autonomie restante de {{ raw('$value') }} min

...