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

Prometheus即时查询中关联指标的可行性及实现方法咨询

在Prometheus即时查询中关联指标并排序的解决方案

当然可以!要实现你想要的——关联job_last_run和job_state指标,按运行时间戳排序并展示对应状态——我们可以通过PromQL的标签匹配、关联语法来完成,具体如下:

核心查询语句

sort_desc(job_last_run + on(jobname) group_left(state) label_format(label_replace(job_state, "jobname", "$1", "name", "(.*)"), state="%v") * 0)

语句拆解说明

我们一步步来看这个查询的作用:

  • label_replace(job_state, "jobname", "$1", "name", "(.*)"):首先统一两个指标的作业名称标签——把job_state的name标签替换成jobname,这样就能和job_last_run的jobname标签匹配,为后续关联做准备。
  • label_format(..., state="%v"):把job_state的指标值(可读状态数值)转换成名为state的标签,这样我们就能在查询结果里直接看到每个作业对应的状态。
  • ... * 0:将处理后的job_state指标值置为0,这样和job_last_run相加时不会改变原有的时间戳数值,保证结果里的数值还是正确的作业运行时间戳。
  • on(jobname) group_left(state):指定按jobname标签关联两组指标,group_left表示保留左边(job_last_run)的所有序列,并把右边的state标签附加到左边的序列上,实现“一个时间戳对应一个状态”的关联效果。
  • sort_desc(...):最后按job_last_run的时间戳值降序排序,让最近运行的作业排在最前面。

展示效果

在Prometheus的UI中执行这个查询后,你会看到每个作业对应的序列:

  • 标签包含jobname(作业名)和state(对应状态数值)
  • 指标值是该作业的最后运行时间戳(秒级Unix时间)
  • 所有序列按时间戳从新到旧排序

如果是在Grafana中用表格面板展示,只需将这个查询添加到面板中,然后在字段设置里选择显示jobname、state标签和指标值,就能得到你想要的结构化表格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 04:12:10