如何使用 Prometheus 警报规则检测新指标

2024-04-05

假设我有一个指标request_failures对于用户。对于每个用户,我向指标添加一个唯一的标签值。所以对于用户来说u1,当请求失败两次时,我得到以下指标:

    request_failures{user_name="u1"} 2

我还有一条规则,当出现新的失败时就会触发。其表达式为:

    increase(request_failures[1m]) > 0

这对于已经遇到故障的用户来说非常有效。例如,当 u1 遇到第三次失败时,规则就会触发。

当新用户请求失败时u2,我得到的指标为:

    request_failures{user_name="u1"} 2
    request_failures{user_name="u2"} 1

现在的问题是警报规则不会触发u2。尽管所有三个指标都是相同的,但该规则似乎无法识别“新指标”请求失败,只是有不同的标签。

任何人都可以指出我应该如何构建规则?


正如@MichaelDoubez 已经说过的,increase()不将新创建的指标视为价值增加。不幸的是,同样适用changes()。这是有原因的,例如缺少刮擦,但仍然可以通过查询来解决。

increase(request_failures[10m]) > 0
or
( request_failures unless request_failures offset 10m )

第二部分(开头为or)将触发 10 分钟(由offset)当有新的指标时。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 Prometheus 警报规则检测新指标 的相关文章

随机推荐