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

PromQL中向量求和除法返回无数据,如何计算过滤器使用率占比?

解决PromQL计算过滤器类型使用率占比返回NO DATA的问题

你的查询返回NO DATA通常有两种核心原因:

  • 目标时间段$__range内,filter_counter计数器没有产生任何增量(比如没有请求触发过滤器),导致increase()返回空序列,后续的sum运算也会得到空结果。
  • 指标filter_counter不存在type标签,或者标签值为空,导致sum by (type)无法生成分组结果。

修复后的查询写法

先确保filter_counter是计数器类型指标(Prometheus中计数器指标名称通常带_total后缀),然后使用以下查询处理空值和分母为0的情况:

sum by (type) (increase(filter_counter[$__range]) or vector(0))
/
clamp_min(sum(increase(filter_counter[$__range]) or vector(0)), 1)

关键优化点说明

  1. or vector(0):兜底空序列,避免因某类过滤器无增量或全局无数据导致整个查询返回NO DATA。
  2. clamp_min(..., 1):防止分母为0时出现无穷大结果,确保查询始终返回合法数值。

排查步骤

如果修复后仍无数据,按以下步骤排查:

  • 单独执行increase(filter_counter[$__range]),确认指标是否存在且有增量数据。
  • 检查指标标签,确认type标签存在且有有效取值。
  • 调整$__range时间范围,确保覆盖计数器产生增量的时间段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 06:35:11