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

使用向量除法计算百分比时,如何在分子无数据时显示无数据?

解决PromQL分子无数据时返回空结果的问题

你的问题出在给分子加了OR vector(0)——当分子的count查询无数据时,这条语句会把空值强制替换成0,而分母的OR vector(1)会把空值替换成1,0除以1自然得到1。要实现分子无数据时整体返回无数据,只需要去掉分子的默认值设置即可。

正确的查询语句

count(job{branch="qa", status="failed", project_id="123"}) / (count(job{branch="qa", status="success", project_id="123"}) OR vector(1))

逻辑说明

  • 当分子的count有结果时:正常执行除法运算;如果分母的count无结果,会被替换为1,避免出现除以0的错误。
  • 当分子的count无结果时:分子是空向量,PromQL中空向量与任何向量的运算结果都是空向量,因此整个查询不会返回任何数据,完全符合你想要的效果。

你之前尝试的absent函数没用对——absent(pipeline_job_duration{project_id="123"})在指标不存在时返回1,再用clamp_max限制为0,本质还是给分子设了默认值0,所以依然会得到1的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 00:07:32