Prometheus 查询仪表是否比平均值低x%

Prometheus 查询仪表是否比平均值低x%,prometheus,Prometheus,我有很多指标(节点\网络\字节),如果它们比平均值下降超过x%,我想提醒它们 我目前对希望监视的接口执行以下操作: rate(node_network_receive_bytes{device=~"vti-.*"}[1m]) < 6000000 速率(节点\网络\接收\字节{device=~“vti-.*”}[1m])

我有很多指标(
节点\网络\字节
),如果它们比平均值下降超过x%,我想提醒它们

我目前对希望监视的接口执行以下操作:

rate(node_network_receive_bytes{device=~"vti-.*"}[1m]) < 6000000
速率(节点\网络\接收\字节{device=~“vti-.*”}[1m])<6000000
但这显然需要一个常量值,并且接口的正常吞吐量各不相同。我可以改为询问在某个范围内,该值是否比该特定仪表的平均值下降了50%以上

我想这需要像
stdvar
stddev
之类的操作符,但我找不到任何有效的示例,而且我的统计数学有点生疏

一种方法是:

  rate(node_network_receive_bytes{device=~"vti-.*"}[1m])
<
  rate(node_network_receive_bytes{device=~"vti-.*"}[1h]) * 2
速率(节点\网络\接收\字节{device=~“vti-.*”}[1m])
<
速率(节点\网络\接收\字节{device=~“vti-.*}[1h])*2

尽管这种警报往往很吵。

棒极了,巴西先生!快速跟进-当使用匹配多个指标的正则表达式比较两个指标时,普罗米修斯是否映射了所有比较,或者它是否理解第一部分中匹配的设备(即
[1m]
行)只应与
[1h]
行中的相同设备进行比较?它使用标签进行匹配,所以这里的设备必须匹配。