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

如何在Prometheus中筛选程序最新运行实例的时序数据?

筛选Prometheus中程序最新运行实例的时序数据

下面提供两种可行方案,根据你的监控环境选择:

方案1:利用进程启动时间指标(推荐)

如果你的监控采集器(比如node_exporter)已经采集了process_start_time_seconds指标,这是最可靠的方式——该指标直接返回进程启动的Unix时间戳(秒),数值越大代表启动时间越晚:

最终可用的PromQL:

# 替换metric为你的功耗指标名称
metric{cmdline=~"ProgramName"}
and on(instance, cmdline)
topk(1, process_start_time_seconds{cmdline=~"ProgramName"})

逻辑说明:topk(1, ...)会选出启动时间最晚的实例标签集合,and on(...)则将原功耗指标与该标签匹配,仅保留最新实例的数据。

方案2:通过样本时间推导启动时间(无进程指标时使用)

如果没有process_start_time_seconds指标,可以通过功耗指标的样本时间推导实例启动时间(近似为该实例第一条样本的时间戳):

最终可用的PromQL:

# 替换metric为你的功耗指标名称
metric{cmdline=~"ProgramName"}
and on(instance, cmdline)
topk(1, min by(instance, cmdline) (timestamp(metric{cmdline=~"ProgramName"})))

逻辑说明:min by(instance, cmdline) (timestamp(...))得到每个实例的最早样本时间(近似启动时间),topk(1, ...)选出其中最大的那个(最新启动的实例),最后匹配原指标得到目标数据。

注意事项

  • 若你的实例唯一标识不是instance,请调整by()和on()中的标签名,确保能区分不同的程序实例
  • 如果需要保留最新的N个实例,只需把topk(1, ...)中的1替换为对应数值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 13:18:07