diff --git a/README.rst b/README.rst index c1f4498..cee3e90 100644 --- a/README.rst +++ b/README.rst @@ -95,44 +95,63 @@ Configure alertmanager global: resolve_timeout: 5m route: - group_by: ['alertname', 'region', 'service'] + group_by: ['region', 'service'] group_wait: 60s group_interval: 5m repeat_interval: 3h - receiver: HTTP-notification - inhibit_rules: - - source_match: + receiver: default + inhibit_rule: + InhibitCriticalWhenDown: + enabled: true + source_match: severity: 'down' target_match: severity: 'critical' equal: ['region', 'service'] - - source_match: + InhibitWarningWhenDown: + enabled: true + source_match: severity: 'down' target_match: severity: 'warning' equal: ['region', 'service'] - - source_match: + InhibitWarningWhenCritical: + enabled: true + source_match: severity: 'critical' target_match: severity: 'warning' - equal: ['alertname', 'region', 'service'] - receivers: - - name: 'HTTP-notification' + equal: ['region', 'service'] + receiver: + HTTP-notification: webhook_configs: - - url: http://127.0.0.1 + localhost: + url: http://127.0.0.1 send_resolved: true - - name: 'HTTP-slack' + HTTP-slack: slack_configs: - - api_url: http://127.0.0.1/slack + slack: + api_url: http://127.0.0.1/slack send_resolved: true - - name: 'smtp' + smtp: email_configs: - - to: test@example.com + email: + to: test@example.com from: test@example.com smarthost: example.com auth_username: username auth_password: password send_resolved: true + #Two endpoints in one receiver + Multi-receiver: + slack_configs: + slack: + api_url: http://127.0.0.1/slack + send_resolved: true + webhook_configs: + webhook: + url: http://127.0.0.1 + send_resolved: true Configure pushgateway --------------------- diff --git a/prometheus/files/alertmanager.yml b/prometheus/files/alertmanager.yml index 86761de..c99956a 100644 --- a/prometheus/files/alertmanager.yml +++ b/prometheus/files/alertmanager.yml @@ -76,7 +76,8 @@ receivers: send_resolved: {{ webhook.send_resolved | lower }} {%- endif %} {%- endfor %} - {%- elif config.slack_configs is defined %} + {%- endif %} + {%- if config.slack_configs is defined %} slack_configs: {%- for name, slack in config.slack_configs.iteritems() %} # {{ name }} @@ -88,7 +89,8 @@ receivers: channel: {{ slack.channel }} {%- endif %} {%- endfor %} - {%- elif config.email_configs is defined %} + {%- endif %} + {%- if config.email_configs is defined %} email_configs: {%- for name, email in config.email_configs.iteritems() %} # {{ name }} diff --git a/tests/pillar/alertmanager.sls b/tests/pillar/alertmanager.sls index f15cd2c..7424689 100644 --- a/tests/pillar/alertmanager.sls +++ b/tests/pillar/alertmanager.sls @@ -17,39 +17,57 @@ prometheus: group_interval: 5m repeat_interval: 3h receiver: HTTP-notification - inhibit_rules: - - source_match: + inhibit_rule: + InhibitCriticalWhenDown: + enabled: true + source_match: severity: 'down' target_match: severity: 'critical' equal: ['region', 'service'] - - source_match: + InhibitWarningWhenDown: + enabled: true + source_match: severity: 'down' target_match: severity: 'warning' equal: ['region', 'service'] - - source_match: + InhibitWarningWhenCritical: + enabled: true + source_match: severity: 'critical' target_match: severity: 'warning' - equal: ['alertname', 'region', 'service'] - receivers: - - name: 'HTTP-notification' + equal: ['region', 'service'] + receiver: + HTTP-notification: webhook_configs: - - url: http://127.0.0.1 + webhook_example: + url: http://127.0.0.1 send_resolved: true - - name: 'HTTP-slack' + HTTP-slack: slack_configs: - - api_url: http://127.0.0.1/slack + slack_example: + api_url: http://127.0.0.1/slack send_resolved: true - - name: 'smtp' + smtp: email_configs: - - to: test@example.com + email_example: + to: test@example.com from: test@example.com smarthost: example.com auth_username: username auth_password: password send_resolved: true + Multi-receiver: + webhook_configs: + webhook: + url: http://127.0.0.1 + send_resolved: true + slack_configs: + slack: + api_url: http://127.0.0.1/slack + send_resolved: true docker: host: enabled: true