Files
orion/monitoring/alertmanager/alertmanager.yml
Samir Boulahtit f67510b706 docs: switch email provider recommendation from Mailgun to SendGrid
SendGrid handles both transactional emails and marketing campaigns
under one account. Updated alertmanager SMTP placeholders, hetzner
setup guide (Step 19.5), and environment reference to recommend
SendGrid as the primary email provider.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 22:21:49 +01:00

59 lines
1.9 KiB
YAML

# Alertmanager Configuration for Orion Platform
# Docs: https://prometheus.io/docs/alerting/latest/configuration/
global:
resolve_timeout: 5m
# ─── SMTP Configuration (SendGrid) ──────────────────────────────────
# Sign up at sendgrid.com, create an API key, authenticate wizard.lu domain
# Username is literally the string "apikey", password is your SG.xxx API key
smtp_smarthost: 'smtp.sendgrid.net:587' # SendGrid SMTP relay
smtp_from: 'alerts@wizard.lu' # Must match authenticated domain
smtp_auth_username: 'apikey' # Always "apikey" for SendGrid
smtp_auth_password: '' # TODO: Paste your SG.xxx API key here
smtp_require_tls: true
route:
# Group alerts by name and severity
group_by: ['alertname', 'severity']
group_wait: 30s
group_interval: 5m
repeat_interval: 4h
receiver: 'email-warnings'
routes:
# Critical alerts: repeat every 1 hour
- match:
severity: critical
receiver: 'email-critical'
repeat_interval: 1h
# Warning alerts: repeat every 4 hours
- match:
severity: warning
receiver: 'email-warnings'
repeat_interval: 4h
receivers:
- name: 'email-critical'
email_configs:
- to: 'admin@wizard.lu' # TODO: Replace with your alert recipient
send_resolved: true
headers:
Subject: '[CRITICAL] Orion: {{ .GroupLabels.alertname }}'
- name: 'email-warnings'
email_configs:
- to: 'admin@wizard.lu' # TODO: Replace with your alert recipient
send_resolved: true
headers:
Subject: '[WARNING] Orion: {{ .GroupLabels.alertname }}'
# Inhibition rules — suppress warnings when critical is already firing
inhibit_rules:
- source_match:
severity: 'critical'
target_match:
severity: 'warning'
equal: ['alertname', 'instance']