我有 Prometheus 定义了一些警报规则,我想统计有关 Prometheus 发出的警报数量。
我试图计算用 grafana 发出警报的次数,但它不起作用:
SUM(ALERTS{alertname="XXX", alertstate="firing"})
Run Code Online (Sandbox Code Playgroud)
有没有办法计算一个警报被触发了多少次?
您的查询返回现在触发的警报数量,而不是每个警报被触发的次数。
我发现这个查询(主要)适用于 Prometheus 2.4.0 及更高版本:
changes(ALERTS_FOR_STATE[24h])
Run Code Online (Sandbox Code Playgroud)
它将返回每个警报在过去 24 小时内从“待处理”变为“触发”的次数,这意味着它仅适用于首先具有待处理状态的警报(即for: <some_duration>指定的警报)。
ALERTS_FOR_STATE是新添加的 Prometheus 内部指标,用于在 Prometheus 重启后恢复警报。它的文档记录并不完整(实际上根本没有),但它似乎有效。
哦,如果您想要按警报(或环境、工作或其他)分组的结果,您可以按该标签或标签集对结果求和:
sum by(alertname) (changes(ALERTS_FOR_STATE[24h]))
Run Code Online (Sandbox Code Playgroud)
将为您提供跨作业、环境等触发的每个警报的次数。
| 归档时间: |
|
| 查看次数: |
6186 次 |
| 最近记录: |