Jos*_*mas 3 prometheus promql prometheus-node-exporter
我正在向 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"})将达到目的。但我不想硬编码磁盘名称。
我可以知道哪种是为这种情况设置警报的更好方法。
你可以使用这样的东西:
max_over_time(disk_up[1h])
unless
disk_up
Run Code Online (Sandbox Code Playgroud)
即该指标在过去 1 小时内的任何时间都存在,但现在不存在。
disk_up但是diskC,如果某个指标弹出某些,您将得到误报。或者,如果指标因导出器或您的 Prometheus 配置而获得或丢失一个标签。
您可以通过显式过滤磁盘/实例/任何您感兴趣的内容来避免前者,但这会破坏您不对其进行硬编码的目标。不过,这可能是更明智的做法:
max_over_time(disk_up{disk~="disk(A|B)"}[1h])
unless
disk_up{disk~="disk(A|B)"}
Run Code Online (Sandbox Code Playgroud)
或者至少
max_over_time(disk_up{job="my_disk_job"}[1h])
unless
disk_up{job="my_disk_job"}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3694 次 |
| 最近记录: |