我有一个 kubernetes 集群,我正在使用 Prometheus 进行监控和警报。Prometheus 警报管理器会不断重复警报,直到它们处于活动状态。我想将我的警报管理器配置为仅向 slack 发送一次警报并仅在警报状态发生变化时重复警报
我尝试仅在特定时间生成警报,如下所示
(kube_pod_container_status_restarts_total > 3) * ((time() % 86400 / 3600 > bool 3) == bool (time() % 86400 / 3600 < bool 4))
但这对我不起作用
Prometheus 服务器配置如下:
prometheus-server.yml
alert: PodRestartAlert
expr: kube_pod_container_status_restarts_total >3
for: 5m
labels:
severity:
annotations:
description: ""
summary: 'The pods that are restarted more than 3 times'
Alertmanager 配置如下:
global:
slack_api_url: "http://"
receivers:
- name: default-receiver
slack_configs:
- channel: '#abc'
text: Prometheus Alert generated
route:
group_by:
- alertname
- datacenter
- app
group_interval: 5m
receiver: default-receiver
repeat_interval: 0
我正在尝试实现以下目标:
如果最初有 10 个 pod 重新启动超过 3 次,那么它应该只向 slack 抛出一次警报
如果在一两天后重新启动的 Pod 数量增加到 20 个 Pod,那么警报管理器应该只发出一次警报以松弛该 Pod
关于我可以尝试或改变的任何建议都会有很大帮助
提前致谢!