Grafana 在 x 分钟内没有数据变化时发出警报

问题描述 投票:0回答:4

在网络和论坛上翻阅,找不到这方面的资源。

我要实现的是当数据在一段时间内没有变化时创建警报。

我们正在监控我们的网络服务器的打开文件,因此这个数字经常波动。注意到当数字停滞时,表明服务器出现问题。所以我们想要的是如果 openfile 保持 X 2 分钟提醒我们。

grafana-alerts
4个回答
7
投票

如果您确实使用 Prometheus 和警报管理器,有一个非常适合我的功能。

变化

因此,如果时间间隔没有变化,在警报管理器中使用类似的东西将会触发

changes(metric_name[5m]) = 0


3
投票

我通过一系列的小事情发出了这样的警报:

  1. 我有一个专门的“警报虚拟板”,用于所有警报,因为每个图表只能有一个警报(grafana 版本 6.6.0)
  2. 我使用以下查询:
    avg_over_time(delta(Sensor_Data[1m])[20s:])
    - 这计算“1 分钟间隔的first_value-last_value”的 20 秒平均值
  3. 我的数据收集程序输入到 prometheus,然后输入到 grafana——如果这个程序冻结,它可能会继续将最后一个值发送到 prometheus,上面的查询将严格降至零。
  4. 因此,如果上述查询在一分钟内处于 (-0.01, 0.01) 范围内,则会发出警报(系统运行时上述查询的典型值为 abs(query) > 0.18)

因此,如果

Sensor_Data
值在大约 2-3 分钟内没有变化,Grafana 会发送警报。


0
投票

这对我有用。确保您使用的是速率或增加函数(没有更改意味着它将降至零)并按如下方式过滤查询:

increase(metric_name) > 0

然后,在警报配置中,将“如果没有数据或所有值为空”设置为“警报”。这样,当没有数据时,就会触发警报。


0
投票

对于那些不使用 Prometheus 的人,您应该能够通过在 Grafana 警报中使用 2 个相同的查询来完成此操作,但时间范围不同。一个是最后一分钟的,一个是 2(到 3)分钟前的。

确保为每个查询配置Reduce表达式以获取最后一个值。然后创建一个数学表达式来检查reduce 表达式是否相等。将其设置为警报条件。

数学表达式将如下所示(您的变量字母可能不同):

$C == $D
© www.soinside.com 2019 - 2024. All rights reserved.