Alertmanager支持根据标签和注释过滤警报。我们可以使用以下示例在Prometheus中为警报添加标签:
- alert: HighRequestLatency
expr: job:request_latency_seconds:mean5m{job="myjob"} > 0.5
annotations:
summary: High request latency on {{ $labels.instance }}
description: "Request latency is high (>0.5s) on {{ $labels.instance }}."
labels:
env: production
在这个示例中,我们为警报设置了一个名为“env”的标签,并将其值设置为“production”。
然后,在Alertmanager的配置文件中,我们可以使用以下规则,仅当警报的“env”标签设置为“production”时才将其发送到接收器:
route:
group_wait: 30s
receiver: 'slack-notifications'
routes:
- match:
env: production
receiver: 'email-notifications'
- match:
env: staging
receiver: 'slack-notifications'
这样,我们就可以根据环境触发警报并将其发送到特定的接收器。