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

如何从Prometheus多时间序列中提取最新值生成单序列

从多实例Prometheus指标中提取最新时间序列(避免sum聚合)

问题场景

执行PromQL查询:

metric_xxx{task="task1"}

返回3条带有不同task_uid标签的时间序列(task_uid随实例执行动态变化):

metric_xxx{task="task1", task_uid="task1_202403051227"}
metric_xxx{task="task1", task_uid="task1_202403051323"}
metric_xxx{task="task1", task_uid="task1_202403051417"}

需要提取最新的指标值,生成一条单一时间序列,且不想使用sum聚合(原尝试查询用了sum,但不符合需求)。

解决方案

使用以下PromQL查询,无需sum聚合即可实现需求:

last_over_time(
  metric_xxx{task="task1"} 
  and on() group_left(task_uid) 
  timestamp(metric_xxx{task="task1"}) == max(timestamp(metric_xxx{task="task1"}))
)[1h:1m]

逻辑说明

  1. max(timestamp(metric_xxx{task="task1"})):计算task="task1"下所有指标的最新时间戳;
  2. on() group_left(task_uid):跨序列匹配时保留目标序列的task_uid标签;
  3. metric_xxx{task="task1"} and ...:精准筛选出时间戳等于最新值的那条目标序列;
  4. last_over_time(...)[1h:1m]:获取该序列在最近1小时内、以1分钟为步长的最新值,生成连续的单一时间序列(与期望形态一致)。

当有新的实例启动(task_uid更新),只要其指标时间戳为当前最新,查询会自动切换到新实例的指标数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 18:10:17