You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Prometheus相加指定磁盘irate指标时返回空查询结果求助

解决Prometheus指定磁盘读取速率相加返回空结果的问题

问题原因

你遇到的空结果问题,核心是Prometheus的二元运算(如+)默认要求左右两边的时间序列标签完全一致才能执行运算。如果两个irate查询返回的序列存在标签差异(比如job标签值不同,或者其他未注意到的标签),就无法找到匹配的序列对,最终返回空结果。

解决方案

方法1:正则匹配+聚合求和(推荐,更简洁)

通过device=~"sdc|sdd"匹配你需要的特定磁盘,再用sum聚合同一实例下的结果,避免标签不匹配的问题:

sum(irate(node_disk_read_bytes_total{instance="10.0.0.10:9100", device=~"sdc|sdd"}[1m])) by (instance)
  • device=~"sdc|sdd":用正则精确匹配sdc和sdd两个设备
  • sum(...) by (instance):将同一实例下这两个设备的读取速率相加,同时保留instance标签

方法2:操作符修饰符强制匹配

如果坚持要分开写两个irate查询,可以用on()或ignoring()指定匹配标签,忽略其他标签差异:

irate(node_disk_read_bytes_total{instance="10.0.0.10:9100", device="sdc"}[1m])
+ on(instance) group_left
irate(node_disk_read_bytes_total{instance="10.0.0.10:9100", device="sdd"}[1m])
  • on(instance):仅根据instance标签匹配两边的序列
  • group_left:保留左侧序列的标签(如果需要保留右侧标签,可改用group_right)

验证步骤

可以先单独执行每个irate查询,查看返回序列的完整标签集(比如是否有job、namespace等额外标签),确认两边的标签值是否完全一致——这是默认+运算能生效的前提。

内容的提问来源于stack exchange,提问作者James Sutherland

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 15:54:42