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

如何找出Prometheus中缺失tenant_id标签的com_name应用?

正确查询缺失tenant_id标签的com_name应用方法

错误查询的问题分析

  • 第一个查询 group ({com_name=~"id-pro-.+", tenant_id=""}) by (com_name):这个语句是匹配tenant_id标签值为空字符串的指标,而非缺失tenant_id标签的指标,所以会返回那些有tenant_id但值为空的应用,和你要找的“缺失标签”需求不符。
  • 第二个查询 node_load1{com_name="id-pro-.+", not_existent_label="tenant_id"}:语法错误,PromQL没有这种判断标签不存在的写法,因此返回空集。

正确的查询方法

方法1:使用unless运算符对比集合

通过对比所有符合com_name规则的应用,减去带有tenant_id标签的应用,剩下的就是缺失标签的目标:

count by (com_name) ({com_name=~"id-pro-.+"}) 
unless 
count by (com_name) ({com_name=~"id-pro-.+", tenant_id=~".+"})

解释:

  • 前半部分统计所有符合id-pro-.+规则的com_name应用;
  • 后半部分统计带有tenant_id标签(值不为空)的同规则应用;
  • unless运算符会返回前半部分存在但后半部分不存在的com_name,也就是缺失tenant_id标签的应用。

方法2:使用label_exists函数(Prometheus 2.27+版本支持)

如果你的Prometheus版本在2.27及以上,可以直接用label_exists的否定形式筛选:

count by (com_name) ({com_name=~"id-pro-.+", !label_exists(tenant_id)})

解释:!label_exists(tenant_id)直接匹配不存在tenant_id标签的指标,再按com_name分组统计即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 14:19:54