如何计算普罗米修斯警报中触发的警报并将其附加到警报标签?

How to count fired alerts in Prometheus alerts and append it to alerting labels?

例如,我有 2 台主机,当 CPU > 90% 时将触发警报。 我可以打开 Prometheus UI 和警报管理器 UI,我看到警报为 2 台主机触发。

我使用 webhook 作为接收器,我想获取每个主机的 CPU>90% 的警报计数,我该如何实现?

我考虑是否可以从某个地方获取计数值,然后将其附加到警报标签中,最后我可以从 webhook 接口中的标签中获取值。

我提到了,他们使用变化函数,但如果值不变化就不能覆盖(假设CPU保持90%)。

综合考虑,我认为Prometheus和Alert manager不支持这种情况,因为它没有意义。

对于用户,如果 he/she 想知道在过去 1 小时内特定规则触发了多少警报(假设 CPU > 90%),他们只会关注如何收到了多少警报,而不是普罗米修斯发出了多少警报。

我们知道,Alert Manger 有"group_wait"、"repeat_interval" 和"Inhibited" 规则,这些参数会影响Alert Manager 发出警报的数量和频率。即使我可以得到普罗米修斯触发的警报时间,但这个数字对用户来说是错误的,因为 Alert Manger 可能 "Inhibited" 警报。