В дополнение к посту Prometheus: роутинг алертов в Alertmanager.
Имеется конфиг с роутами.
Задача — вырезать все алерты от Дев-а, и слать в «/dev/null».
Для этого — создаём пустой ресивер:
...
receivers:
- name: 'blackhole'
- name: 'default'
slack_configs:
- send_resolved: true
title_link: 'http://dev.monitor.example.world/prometheus/alerts'
title: '{{ if eq .Status "firing" }}:confused:{{ else }}:dancing_panda:{{ end }} [{{ .Status | toUpper }}] {{ .CommonAnnotations.summary }}'
text: "{{ range .Alerts }}*Priority*: `{{ .Labels.severity | toUpper }}`\nMonitoring host: {{ .Labels.monitor }}\n{{ .Annotations.description }}\n{{ end }}"
...
И в роутах добавляем правило, в котором проверяем условие с помощью match_re, и все попавшие под фильтр алерты шлём в receiver: blackhole:
...
receiver: 'default'
routes:
# capture All INFO
- match:
severity: info
receiver: default
routes:
# forward Dev INFO to the 'blackhole'
- match_re:
env: .*(-dev).*
receiver: blackhole
# capture All WARN to the 'warning' with P3
- match:
severity: warning
receiver: warning
routes:
# forward Dev WARNING to the 'blackhole'
- match_re:
env: .*(-dev).*
receiver: blackhole
# forward Stage WARN to the 'default'
- match_re:
env: .*(-stage).*
receiver: default
# capture All CRIT to the 'critical' with P1
- match:
severity: critical
receiver: critical
routes:
# forward Dev CRIT to the 'blackhole'
- match_re:
env: .*(-dev).*
receiver: blackhole
# forward Stage CRIT to the 'default'
- match_re:
env: .*(-stage).*
receiver: default
...
Готово.