nuvolaris/templates/alert-manager-02-cm.yaml (88 lines of code) (raw):
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
apiVersion: v1
kind: ConfigMap
metadata:
annotations:
meta.helm.sh/release-name: nuvolaris-prometheus
meta.helm.sh/release-namespace: nuvolaris
labels:
app.kubernetes.io/instance: nuvolaris-prometheus
app.kubernetes.io/name: alertmanager
name: nuvolaris-prometheus-alertmanager
namespace: nuvolaris
data:
alertmanager.yml: |
global:
{% if slack %}
slack_api_url: '{{slack_api_url}}'
{% endif %}
receivers:
{% if gmail %}
- name: email-receiver
email_configs:
- to: '{{email_recipients}}'
from: '{{email_from}}'
smarthost: smtp.gmail.com:587
auth_username: '{{gmail_username}}'
auth_identity: '{{gmail_username}}'
auth_password: '{{gmail_password}}'
{% endif %}
{% if slack %}
- name: slack-notifications
slack_configs:
- channel: '{{slack_channel_name}}'
send_resolved: true
icon_url: https://avatars3.githubusercontent.com/u/3380462
{% raw %}
title: |-
[{{ .Status | toUpper }}{{ if eq .Status "firing" }}:{{ .Alerts.Firing | len }}{{ end }}] {{ .CommonLabels.alertname }} for {{ .CommonLabels.job }}
{{- if gt (len .CommonLabels) (len .GroupLabels) -}}
{{" "}}(
{{- with .CommonLabels.Remove .GroupLabels.Names }}
{{- range $index, $label := .SortedPairs -}}
{{ if $index }}, {{ end }}
{{- $label.Name }}="{{ $label.Value -}}"
{{- end }}
{{- end -}}
)
{{- end }}
text: >-
{{ range .Alerts -}}
*Alert:* {{ .Annotations.title }}{{ if .Labels.severity }} - `{{ .Labels.severity }}`{{ end }}
{{ if .Annotations.description }}
*Description:* {{ .Annotations.description }}
{{ end }}
*Details:*
{{ range .Labels.SortedPairs }} • *{{ .Name }}:* `{{ .Value }}`
{{ end }}
{{ end }}
{% endraw %}
{% endif %}
route:
group_interval: 5m
group_wait: 10s
{% if slack and slack_default %}
receiver: slack-notifications
{% endif %}
{% if gmail and gmail_default %}
receiver: email-receiver
{% endif %}
repeat_interval: 10m
{% if slack or gmail %}
# All the above attributes are inherited by all child routes and can
# overwritten on each.
routes:
{% if slack %}
- receiver: slack-notifications
group_wait: 10s
match_re:
severity: critical|warning
continue: true
{% endif %}
{% if gmail %}
- receiver: email-receiver
group_wait: 10s
match_re:
severity: critical
continue: true
{% endif %}
{% endif %}
templates:
- /etc/alertmanager/*.tmpl