| # ============================================================================= | |
| # Alertmanager — Routing & Escalation | |
| # ============================================================================= | |
| apiVersion: monitoring.coreos.com/v1 | |
| kind: AlertmanagerConfig | |
| metadata: | |
| name: platform-routing | |
| namespace: monitoring | |
| spec: | |
| route: | |
| groupBy: [alertname, namespace, severity] | |
| groupWait: 30s | |
| groupInterval: 5m | |
| repeatInterval: 4h | |
| receiver: slack-platform | |
| routes: | |
| # Critical → Slack + PagerDuty | |
| - match: | |
| severity: critical | |
| receiver: pagerduty | |
| repeatInterval: 15m | |
| continue: true | |
| # Security → Security team channel | |
| - match: | |
| team: security | |
| receiver: slack-security | |
| repeatInterval: 30m | |
| # App team alerts | |
| - match: | |
| team: app | |
| receiver: slack-app-team | |
| receivers: | |
| - name: slack-platform | |
| slackConfigs: | |
| - apiURL: | |
| name: slack-webhook | |
| key: url | |
| channel: "#platform-alerts" | |
| title: "{{ .CommonAnnotations.summary }}" | |
| text: "{{ range .Alerts }}{{ .Annotations.description }}\n{{ end }}" | |
| - name: pagerduty | |
| pagerDutyConfigs: | |
| - routingKey: | |
| name: pagerduty-key | |
| key: routing-key | |
| severity: "{{ .CommonLabels.severity }}" | |
| - name: slack-security | |
| slackConfigs: | |
| - apiURL: | |
| name: slack-webhook | |
| key: url | |
| channel: "#security-alerts" | |
| title: "SECURITY: {{ .CommonAnnotations.summary }}" | |
| - name: slack-app-team | |
| slackConfigs: | |
| - apiURL: | |
| name: slack-webhook | |
| key: url | |
| channel: "#app-alerts" | |
| title: "{{ .CommonAnnotations.summary }}" | |