В дополнение к посту 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 ...
Готово.