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

PromQL能否为整个表达式统一应用过滤器而非逐个指标添加?

如何在PromQL中为整个表达式统一添加标签过滤器

针对你的需求,在PromQL(Prometheus查询语言)中,可以通过**with语句**(Prometheus 2.26及以上版本支持)实现只定义一次过滤器,在整个表达式中复用,无需为每个指标重复添加标签筛选条件。

实现示例

使用with语句预先定义带过滤器的指标别名,后续表达式直接引用别名即可:

with (
  allocated = nas_storage_allocated_bytes{project="foo"},
  usage = nas_storage_usage_bytes{project="foo"}
)
((allocated - usage) / deriv(usage[1w]))

补充说明

  • with语句允许在查询开头定义变量,将带过滤器的指标赋值给变量后,后续逻辑可直接复用,既简化了代码结构,也降低了重复修改的出错概率。
  • 若你的Prometheus版本低于2.26,暂不支持with语句,只能保持为每个指标单独添加过滤器的写法,或通过Prometheus记录规则预先生成带标签过滤的指标,再在查询中使用这些预处理后的指标。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 14:16:23