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

Prometheus中缺失指标致分组减法查询结果为空的问题咨询

解决Prometheus分组减法空结果问题

问题核心:Prometheus的减法操作要求两边时间序列的标签完全匹配,若某token仅在其中一个指标中存在,该token的运算结果会被直接丢弃,最终导致整体结果为空。

解决方案

我们需要先获取所有存在的token集合(涵盖deposit和withdraw中出现的所有token),再为每个token填充缺失指标的默认值0,最后执行减法:

兼容低版本Prometheus(无union函数)的写法

(sum by (token) (deposit) or on(token) group_left() sum by (token) (deposit or withdraw) * 0) 
- 
(sum by (token) (withdraw) or on(token) group_left() sum by (token) (deposit or withdraw) * 0)

高版本Prometheus(2.47+,支持union函数)的简洁写法

(sum by (token) (deposit) or on(token) group_left() sum by (token) (union(deposit, withdraw)) * 0) 
- 
(sum by (token) (withdraw) or on(token) group_left() sum by (token) (union(deposit, withdraw)) * 0)

原理说明

  1. sum by (token) (deposit or withdraw)(或sum by (token) (union(deposit, withdraw)))会生成所有出现过的token集合,每个token对应值为0(乘以0后)。
  2. or on(token) group_left() 会将缺失对应token的指标结果替换为0,确保每个token在两边都有值。
  3. 最终减法操作会保留所有token的计算结果,不会因某一边无数据而丢失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 07:43:12