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

如何在PromQL中基于当前日期动态匹配带日期后缀的index_name标签指标

PromQL动态匹配当日日期后缀标签的实现方案

完全可以实现,原生PromQL不需要额外插件就支持该需求,常用有两种实现方式:

方案1:Prometheus v2.30及以上版本简洁写法

通过time_format函数将当前时间转为指定格式的字符串,和固定前缀拼接后作为标签正则匹配规则即可:

my_metric{index_name~("cool_index_" + time_format("%Y-%m-%d", time()))}

如果Prometheus部署时区和你业务使用的时区不一致,可对time()添加偏移量调整,比如东八区就写为time() + 8*3600。

方案2:全版本兼容通用写法

如果使用的Prometheus版本较低不支持time_format函数,可以通过label_replace新增临时的当日日期标签,再和index_name的日期后缀做匹配:

label_replace(
  my_metric,
  "current_date",
  "%d-%02d-%02d",
  year(time()),
  month(time()),
  day(time())
)
{index_name~"cool_index_.*", current_date=~index_name}

该写法会先给所有匹配到的my_metric指标新增current_date标签存储当日的年-月-日格式日期,再过滤出index_name后缀与该日期一致的指标,兼容所有Prometheus版本。

避坑提醒

如果你的Prometheus会长期保留历史天的index_name指标,不要直接用my_metric{index_name~"cool_index_.*"}查询,会匹配到所有历史日期的指标,导致结果不符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 23:15:04