Добрый день, может кто сталкивался с автоматизацией заполнения ресиверов в alertmanager из аннотаций кастомных подов?
Я имею в виду, что я хочу, чтобы алерменеджеры брали приемники из аннотаций pod, как бы не руками. Например, если пространство имен _, то получатели получают из custom.io/owner (например).
Я имею в виду, может ли это выглядеть
- name: smthg
email_configs:
- to: "__meta_kubernetes_pod_annotation_custom_io_owner"
заранее спасибо

Использование ярлыков для направления уведомлений по электронной почте Удобной особенностью Alertmanager является то, что почти все поля уведомлений являются шаблонными. Это можно использовать для маршрутизации электронной почты на основе меток.
Если вы отправляете уведомления по электронной почте напрямую клиентам, было бы полезно не создавать маршрут и получателя для каждого клиента в Alertmanager. Это может быть полезно, если вы являетесь хостинговой компанией, предоставляющей оповещения на машинах, которые вы арендуете, или поставщиком общих услуг внутри компании.
Я предполагаю, что у вас уже есть работающая настройка уведомлений по электронной почте, такая как была показана ранее с Gmail.
Начнем с Прометея. Нам нужно поместить целевой адрес электронной почты в метку оповещения. Допустим, вы построили временной ряд, который выглядит так:
mymetric{job = "myjob",email_to = "[email protected]",instance = "host1"}
mymetric{job = "myjob",email_to = "[email protected]",instance = "host2"}
Затем вы можете написать предупреждение, которое распространяет эту метку email_to, например:
groups:
- name: test.rules
rules:
- alert: MyAlert
expr: mymetric > 1
Теперь в Alertmanager нам нужно сделать две вещи. Нам нужно убедиться, что каждый уникальный адрес электронной почты получает собственное уведомление через группировку, и нам нужно сделать так, чтобы затем перейти на этот адрес электронной почты.
route:
group_by: [email_to]
receiver: email_router
receivers:
- name: email_router
email_configs:
- to: "{{ .GroupLabels.email_to }}"
from: [email protected]
# Add whatever other settings you need to talk to your SMTP server
headers:
subject: "You have {{ .Alerts.Firing | len }} firing alerts"
html: |
Hi {{ .GroupLabels.email_to }},
<p>
You have the following firing alerts:
<ul>
{{ range .Alerts }}
<li>{{.Labels.alertname}} on {{ .Labels.instance }}</li>
{{ end }}
</ul>
</p>
Поскольку email_to находится в группе group_by, мы можем получить к нему доступ через .GroupLabels. В противоположность этому, поскольку в одном уведомлении могут быть оповещения с разными именами оповещений и метками экземпляров, нам нужно выполнить итерацию по ним, чтобы перечислить их все.
https://www.robustperception.io/using-labels-to-direct-email-notifications
Привет! Добро пожаловать в StackOverflow, пожалуйста, не копируйте всю веб-страницу. Возможно, вы захотите объяснить своими словами, как предоставленный вами ответ относится к вопросу ОП.
Как сейчас написано, ваш ответ неясен. Пожалуйста, редактировать, чтобы добавить дополнительную информацию, которая поможет другим понять, как это относится к заданному вопросу. Дополнительную информацию о том, как писать хорошие ответы, можно найти в справочном центре.