如果普罗米修斯中缺少某些标签中的数据,则发出警报 [英] Alert if data in certain labels is missing in Prometheus

查看:8
本文介绍了如果普罗米修斯中缺少某些标签中的数据,则发出警报的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在向普罗米修斯发送与两个磁盘相关的数据。如果某个磁盘的指标停止发送指标,我想发出警报。假设我有diska和diskB,并且我正在收集disk_up指标。现在diskB出现故障。在普罗米修斯

disk_up{disk="diskA"}将具有数据和 disk_up{disk="diskB"}将丢失

absent(disk_up)将为0,因为DISK_UP具有DISKA的数据。 absent(disk_up{disk="diskB"})将达到目的。但我不想硬编码磁盘名称。

我是否可以知道为此方案设置警报的哪种方法更好。

推荐答案

您可以使用如下代码:

max_over_time(disk_up[1h])
  unless
disk_up

即该指标在过去1小时内的任何时间都存在,但现在不存在。

但是,如果为某些diskC弹出disk_up指标,您将得到误报。或者指标由于导出器或您的普罗米修斯配置而获得或丢失一个标签。

您可以通过显式过滤您感兴趣的磁盘/实例/来避免前一种情况,但这会使您无法实现不对它们进行硬编码的目标。但这可能是更明智的做法:

max_over_time(disk_up{disk~="disk(A|B)"}[1h])
  unless
disk_up{disk~="disk(A|B)"}

或至少

max_over_time(disk_up{job="my_disk_job"}[1h])
  unless
disk_up{job="my_disk_job"}

这篇关于如果普罗米修斯中缺少某些标签中的数据,则发出警报的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆