# Alertmanager Configuration for Synor Testnet # Routes alerts to appropriate channels based on severity global: # Default timeout for resolving alerts resolve_timeout: 5m # Alert routing configuration route: # Group alerts by alertname and instance group_by: ['alertname', 'instance'] # Wait before sending initial notification group_wait: 30s # Wait between sending notifications for new alerts in same group group_interval: 5m # Wait before resending notification for same alert repeat_interval: 4h # Default receiver receiver: 'default-receiver' # Child routes for specific severities routes: # Critical alerts - immediate notification - match: severity: critical receiver: 'critical-receiver' group_wait: 10s repeat_interval: 1h continue: true # Warning alerts - batched notification - match: severity: warning receiver: 'warning-receiver' group_wait: 1m repeat_interval: 6h # Receivers define where alerts go receivers: - name: 'default-receiver' # Default: log to stdout (visible in docker logs) webhook_configs: [] - name: 'critical-receiver' # Critical alerts - configure your preferred channel # Example: Discord webhook (uncomment and add your URL) # webhook_configs: # - url: 'https://discord.com/api/webhooks/YOUR_WEBHOOK_ID/YOUR_WEBHOOK_TOKEN' # send_resolved: true # http_config: # follow_redirects: true # Example: Slack webhook (uncomment and add your URL) # slack_configs: # - api_url: 'https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK' # channel: '#synor-alerts' # title: '{{ .Status | toUpper }}: {{ .CommonAnnotations.summary }}' # text: '{{ .CommonAnnotations.description }}' # send_resolved: true webhook_configs: [] - name: 'warning-receiver' # Warning alerts - lower priority channel webhook_configs: [] # Inhibition rules - suppress lower severity when higher fires inhibit_rules: # If SynorNodeDown fires, suppress other alerts for same instance - source_match: alertname: 'SynorNodeDown' target_match_re: alertname: 'Synor.*' equal: ['instance'] # If NetworkPartition fires, suppress LowPeerCount - source_match: alertname: 'SynorNetworkPartition' target_match: alertname: 'SynorLowPeerCount' equal: ['instance'] # Critical suppresses warning for same alert type - source_match: severity: 'critical' target_match: severity: 'warning' equal: ['alertname', 'instance']