我正在将与两个磁盘相关的数据发送到Prometheus。我想提醒一个磁盘的指标是否停止发送指标。假设我有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"})
将达到目的。但是我不想对磁盘名称进行硬编码。
我能知道哪种方法是针对这种情况设置警报的更好方法。
答案 0 :(得分:1)
您可以使用类似这样的内容:
JOIN
即该指标在过去1小时内的任何时间都存在,但现在不存在。
但是,如果弹出max_over_time(disk_up[1h])
unless
disk_up
指标disk_up
,您将得到误报。或者,如果度量标准由于出口商或您的Prometheus配置而失去一个标签。
您可以通过显式过滤磁盘/实例/感兴趣的任何内容来避免使用前者,但这会破坏您不对它们进行硬编码的目标。但这可能是更明智的选择:
diskC
或至少
max_over_time(disk_up{disk~="disk(A|B)"}[1h])
unless
disk_up{disk~="disk(A|B)"}