| {% from "prometheus/map.jinja" import alertmanager with context %} |
| {%- macro route_entry(route={}) -%} |
| {%- if route.receiver is defined -%} |
| receiver: {{ route.receiver }} |
| {%- endif -%} |
| {%- if route.group_by is defined %} |
| group_by: |
| {%- for group_by in route.group_by %} |
| - {{ group_by }} |
| {%- endfor %} |
| {%- endif %} |
| {%- if route.group_interval is defined %} |
| group_interval: {{ route.group_interval }} |
| {%- endif %} |
| {%- if route.group_wait is defined %} |
| group_wait: {{ route.group_wait }} |
| {%- endif %} |
| {%- if route.repeat_interval is defined %} |
| repeat_interval: {{ route.repeat_interval }} |
| {%- endif %} |
| {%- if route.match_re is defined %} |
| match_re: |
| {%- for match_re in route.match_re %} |
| {{ match_re.label }}: {{ match_re.value }} |
| {%- endfor %} |
| {%- endif %} |
| {%- endmacro -%} |
| |
| global: |
| {%- if alertmanager.config.global is defined %} |
| {%- if alertmanager.config.global.resolve_timeout is defined %} |
| resolve_timeout: {{ alertmanager.config.global.resolve_timeout }} |
| {%- endif %} |
| {%- endif %} |
| |
| route: |
| {%- set config_route = alertmanager.config.get('route', {}) %} |
| {{ route_entry(config_route) | indent(2) }} |
| {%- if config_route.get('routes', {}) %} |
| routes: |
| {%- for route_name, route in config_route.get('routes', {}).iteritems() %} |
| # {{ route_name }} |
| - {{ route_entry(route) | indent(4) }} |
| {%- endfor %} |
| {%- endif %} |
| |
| inhibit_rules: |
| {%- for name, rule in alertmanager.config.get('inhibit_rule', {}).iteritems() %} |
| {%- if rule.get('enabled', True) %} |
| # {{ name }} |
| - source_match: |
| {%- for key, value in rule.source_match.iteritems() %} |
| {{ key }}: {{ value }} |
| {%- endfor %} |
| target_match: |
| {%- for key, value in rule.target_match.iteritems() %} |
| {{ key }}: {{ value }} |
| {%- endfor %} |
| equal: |
| {%- for key in rule.equal %} |
| - {{ key }} |
| {%- endfor %} |
| {%- endif %} |
| {%- endfor %} |
| |
| receivers: |
| {%- for name, config in alertmanager.config.get('receiver', {}).iteritems() %} |
| {%- if config.get('enabled', True) %} |
| - name: '{{ name }}' |
| {%- if config.webhook_configs is defined %} |
| webhook_configs: |
| {%- for name, webhook in config.webhook_configs.iteritems() %} |
| # {{ name }} |
| - url: {{ webhook.url }} |
| {%- if webhook.send_resolved is defined %} |
| send_resolved: {{ webhook.send_resolved | lower }} |
| {%- endif %} |
| {%- endfor %} |
| {%- elif config.slack_configs is defined %} |
| slack_configs: |
| {%- for name, slack in config.slack_configs.iteritems() %} |
| # {{ name }} |
| - api_url: {{ slack.api_url }} |
| {%- if slack.send_resolved is defined %} |
| send_resolved: {{ slack.send_resolved | lower }} |
| {%- endif %} |
| {%- if slack.channel is defined %} |
| channel: {{ slack.channel }} |
| {%- endif %} |
| {%- endfor %} |
| {%- elif config.email_configs is defined %} |
| email_configs: |
| {%- for name, email in config.email_configs.iteritems() %} |
| # {{ name }} |
| - to: {{ email.to }} |
| from: {{ email.from }} |
| smarthost: {{ email.smarthost }} |
| {%- if email.auth_username is defined %} |
| auth_username: '{{ email.auth_username }}' |
| {%- endif %} |
| {%- if email.auth_password is defined %} |
| auth_password: '{{ email.auth_password }}' |
| {%- endif %} |
| {%- if email.auth_secret is defined %} |
| auth_secret: '{{ email.auth_secret }}' |
| {%- endif %} |
| {%- if email.auth_identity is defined %} |
| auth_identity: '{{ email.auth_identity}}' |
| {%- endif %} |
| {%- if email.require_tls is defined %} |
| require_tls: {{ email.require_tls | lower }} |
| {%- endif %} |
| {%- if email.send_resolved is defined %} |
| send_resolved: {{ email.send_resolved | lower }} |
| {%- endif %} |
| {%- endfor %} |
| {%- endif %} |
| {%- endif %} |
| {%- endfor %} |