stacks/monitoring/alertmanager.yml

# stacks/monitoring/alertmanager.yml
# Two routes: one to email for anything I should see at breakfast, one to
# a webhook for "wake me up now" style pages. All secrets live in .env.

global:
  resolve_timeout: 5m
  smtp_smarthost: ${SMTP_HOST}:587
  smtp_from: ${SMTP_FROM}
  smtp_auth_username: ${SMTP_USER}
  smtp_auth_password: ${SMTP_PASS}
  smtp_require_tls: true

route:
  receiver: email-default
  group_by: [alertname, host]
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 4h
  routes:
    - receiver: pager-critical
      matchers:
        - severity = "critical"
      continue: true
    - receiver: email-default
      matchers:
        - severity =~ "warning|info"

receivers:
  - name: email-default
    email_configs:
      - to: ${ALERTS_EMAIL}
        send_resolved: true

  - name: pager-critical
    webhook_configs:
      - url: ${PAGER_WEBHOOK_URL}
        send_resolved: true
        max_alerts: 5

inhibit_rules:
  - source_matchers: [severity = "critical"]
    target_matchers: [severity = "warning"]
    equal: [alertname, host]