global: resolve_timeout: 5m # Configure SMTP for email alerts smtp_from: 'alerts@didi365.eu' smtp_smarthost: 'smtp.sendgrid.net:587' smtp_auth_username: 'apikey' # smtp_auth_password set via env $SENDGRID_API_KEY in compose route: group_by: ['alertname', 'cluster', 'service'] group_wait: 30s group_interval: 5m repeat_interval: 12h receiver: 'default' routes: - matchers: - severity = critical receiver: 'critical' group_wait: 10s repeat_interval: 1h - matchers: - team = revenue receiver: 'revenue-team' - matchers: - team = ai-platform receiver: 'ai-team' receivers: - name: 'default' email_configs: - to: 'office@clossers.com' send_resolved: true headers: Subject: '[DiDi] {{ .Status | toUpper }}: {{ .GroupLabels.alertname }}' - name: 'critical' email_configs: - to: 'office@clossers.com' send_resolved: true headers: Subject: '[DiDi CRITICAL] {{ .GroupLabels.alertname }}' # Add webhook for Slack/Teams when ready: # webhook_configs: # - url: 'https://hooks.slack.com/services/T.../B.../...' - name: 'revenue-team' email_configs: - to: 'office@clossers.com' - name: 'ai-team' email_configs: - to: 'office@clossers.com' inhibit_rules: # Suppress non-critical alerts if a critical alert is already firing for same service - source_matchers: - severity = critical target_matchers: - severity = warning equal: ['alertname', 'cluster', 'service']