普罗米修斯会在 4 小时后触发 true expr 警报(第一次除外)

问题描述 投票:0回答:1

我试图控制相同 expr 的普罗米修斯警报,如果它已经第一次触发,则仅在 4 小时后触发。我在配置中配置了应用程序名称和操作,以及生成警报的阈值。对于相同的应用程序名称和操作,我们可以控制警报仅在指定时间后触发吗? (第一次应该在5m后触发)

        - alert: DummyAlert
          expr: sum by (appname, operation)(increase(mycounter{appname="abc", operation="xyz"} [5m])) > 0
          for: 5m
          labels:
            severity: critical
            maintainedby: test
            teamname: test
          annotations:
            summary: test alert
            description: 'test alert'

警报正在被确认,并且不会重复出现相同的警报。有人可以建议对警报进行任何更改吗?

prometheus alert prometheus-alertmanager
1个回答
0
投票

由于您希望超时即使在警报的两个不同触发器之间也能跨越时间,因此警报管理器的配置无法为您解决此问题,因为已解析警报的所有数据都将被删除,并且无法在警报管理器本身内引用。


但幸运的是,您可以进行一项检查,这将防止警报触发频率超过每四个小时一次。为此,您可以使用 Prometheus 的内置伪度量

ALERTS

sum by (appname, operation)(increase(mycounter{appname="abc", operation="xyz"} [5m])) > 0
 unless on(appname, operation) last_over_time(ALERTS{alertname="DummyAlert", alertstate="firing"} [4h])

此处,

last_over_time(ALERTS{alertname="DummyAlert", alertstate="firing"} [4h])
将返回过去四个小时内触发的名称为
DummyAlert
的警报。 仅当初始查询返回一些结果时,整个查询才会产生结果,并且
DummyAlert
对于相同的
appname
operation
在过去四个小时内没有被触发。

© www.soinside.com 2019 - 2024. All rights reserved.