# AlertManager Configuration for Foxhunt HFT Trading System global: smtp_smarthost: 'localhost:587' smtp_from: 'alerts@foxhunt.local' smtp_require_tls: true # Templates for alert notifications templates: - '/etc/alertmanager/templates/*.tmpl' # Routing configuration route: group_by: ['alertname', 'cluster', 'service'] group_wait: 10s group_interval: 10s repeat_interval: 1m receiver: 'web.hook' routes: # Critical trading alerts - immediate notification - match: severity: critical component: trading receiver: 'critical-trading' group_wait: 0s group_interval: 30s repeat_interval: 5m # Risk management alerts - match: severity: critical component: risk receiver: 'critical-risk' group_wait: 0s group_interval: 30s repeat_interval: 5m # System alerts - match: severity: critical receiver: 'critical-system' group_wait: 5s group_interval: 1m repeat_interval: 10m # Warning alerts - match: severity: warning receiver: 'warning-alerts' group_wait: 30s group_interval: 5m repeat_interval: 30m # Alert receivers receivers: # Default webhook - name: 'web.hook' webhook_configs: - url: 'http://localhost:5001/webhook' send_resolved: true # Critical trading alerts - name: 'critical-trading' email_configs: - to: 'trading-team@foxhunt.local' subject: 'CRITICAL: Foxhunt Trading Alert - {{ .GroupLabels.alertname }}' body: | {{ range .Alerts }} Alert: {{ .Annotations.summary }} Description: {{ .Annotations.description }} Labels: {{ range .Labels.SortedPairs }} {{ .Name }} = {{ .Value }} {{ end }} {{ end }} headers: Priority: 'urgent' slack_configs: - api_url: 'YOUR_SLACK_WEBHOOK_URL' channel: '#trading-alerts' title: 'CRITICAL Trading Alert' text: '{{ range .Alerts }}{{ .Annotations.summary }}{{ end }}' send_resolved: true webhook_configs: - url: 'http://localhost:5001/critical-trading' send_resolved: true # Critical risk alerts - name: 'critical-risk' email_configs: - to: 'risk-team@foxhunt.local' subject: 'CRITICAL: Foxhunt Risk Alert - {{ .GroupLabels.alertname }}' body: | {{ range .Alerts }} Alert: {{ .Annotations.summary }} Description: {{ .Annotations.description }} Labels: {{ range .Labels.SortedPairs }} {{ .Name }} = {{ .Value }} {{ end }} {{ end }} slack_configs: - api_url: 'YOUR_SLACK_WEBHOOK_URL' channel: '#risk-alerts' title: 'CRITICAL Risk Alert' text: '{{ range .Alerts }}{{ .Annotations.summary }}{{ end }}' send_resolved: true # Critical system alerts - name: 'critical-system' email_configs: - to: 'ops-team@foxhunt.local' subject: 'CRITICAL: Foxhunt System Alert - {{ .GroupLabels.alertname }}' body: | {{ range .Alerts }} Alert: {{ .Annotations.summary }} Description: {{ .Annotations.description }} Labels: {{ range .Labels.SortedPairs }} {{ .Name }} = {{ .Value }} {{ end }} {{ end }} slack_configs: - api_url: 'YOUR_SLACK_WEBHOOK_URL' channel: '#system-alerts' title: 'CRITICAL System Alert' text: '{{ range .Alerts }}{{ .Annotations.summary }}{{ end }}' send_resolved: true # Warning alerts - name: 'warning-alerts' email_configs: - to: 'monitoring@foxhunt.local' subject: 'WARNING: Foxhunt Alert - {{ .GroupLabels.alertname }}' body: | {{ range .Alerts }} Alert: {{ .Annotations.summary }} Description: {{ .Annotations.description }} Labels: {{ range .Labels.SortedPairs }} {{ .Name }} = {{ .Value }} {{ end }} {{ end }} slack_configs: - api_url: 'YOUR_SLACK_WEBHOOK_URL' channel: '#monitoring' title: 'Warning Alert' text: '{{ range .Alerts }}{{ .Annotations.summary }}{{ end }}' send_resolved: true # Inhibition rules to prevent alert spam inhibit_rules: # Inhibit all other alerts if trading service is down - source_match: alertname: TradingServiceDown target_match_re: component: trading equal: ['cluster', 'service'] # Inhibit individual service alerts if the whole node is down - source_match: alertname: NodeDown target_match_re: alertname: (ServiceDown|HighLatency|.*Error) equal: ['instance']