在网络和论坛上翻阅,找不到这方面的资源。
我要实现的是当数据在一段时间内没有变化时创建警报。
我们正在监控我们的网络服务器的打开文件,因此这个数字经常波动。注意到当数字停滞时,表明服务器出现问题。所以我们想要的是如果 openfile 保持 X 2 分钟提醒我们。
如果您确实使用 Prometheus 和警报管理器,有一个非常适合我的功能。
因此,如果时间间隔没有变化,在警报管理器中使用类似的东西将会触发
changes(metric_name[5m]) = 0
我通过一系列的小事情发出了这样的警报:
avg_over_time(delta(Sensor_Data[1m])[20s:])
- 这计算“1 分钟间隔的first_value-last_value”的 20 秒平均值因此,如果
Sensor_Data
值在大约 2-3 分钟内没有变化,Grafana 会发送警报。
这对我有用。确保您使用的是速率或增加函数(没有更改意味着它将降至零)并按如下方式过滤查询:
increase(metric_name) > 0
然后,在警报配置中,将“如果没有数据或所有值为空”设置为“警报”。这样,当没有数据时,就会触发警报。
对于那些不使用 Prometheus 的人,您应该能够通过在 Grafana 警报中使用 2 个相同的查询来完成此操作,但时间范围不同。一个是最后一分钟的,一个是 2(到 3)分钟前的。
确保为每个查询配置Reduce表达式以获取最后一个值。然后创建一个数学表达式来检查reduce 表达式是否相等。将其设置为警报条件。
数学表达式将如下所示(您的变量字母可能不同):
$C == $D