Prometheus 检测两个值的变化
我目前使用prometheus alertmanager警报来确定在给定时间运行的盒子数量 我想创建一个警报,如果在线框的数量发生变化,它将发出警报。我用这样的方式:Prometheus 检测两个值的变化,prometheus,prometheus-alertmanager,Prometheus,Prometheus Alertmanager,我目前使用prometheus alertmanager警报来确定在给定时间运行的盒子数量 我想创建一个警报,如果在线框的数量发生变化,它将发出警报。我用这样的方式: sum(up{app="mybox"}) != sum(up{app="mybox"} offset 5m) 这将检测到状态更改,但不会报告当前/以前的值。所有$labels.value将返回的值均为真/假。有没有一种方法可以编写此查询,以便a)它在更改时发出警报,B)报告不同的值?如中所示,只有一个可用的$value是规则的表
sum(up{app="mybox"}) != sum(up{app="mybox"} offset 5m)
这将检测到状态更改,但不会报告当前/以前的值。所有$labels.value将返回的值均为真/假。有没有一种方法可以编写此查询,以便a)它在更改时发出警报,B)报告不同的值?如中所示,只有一个可用的$value
是规则的表达式
在您的情况下,它将是sum(up{app=“mybox”})
的新值。根据您的用例,您可以将其表示为
- 增加:
sum(up{app=“mybox”})-sum(up{app=“mybox”}偏移量5m)!=0
- 变化率:
1-climp_max(sum(up)/sum(up{app=“mybox”}偏移量5m),0)!=0
expr: sum(up{app="mybox"}) != sum(up{app="mybox"} offset 5m)
annotations:
description: The new value {{ $value }} is different from the previous: {{with query "sum(up{app='mybox'} offset 5m)"}}{{ . | first | value}}{{end}}.
注意:在您的案例中,查询可能会简化,但我编写了一般案例