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

如何获取指标最后已知样本的时间戳?实现服务最后运行时间展示

实现服务最后运行时间表格仪表盘

核心思路

利用Prometheus的last_over_time函数,查询服务指标(如up或process_start_time_seconds)的历史样本,获取每个服务最后一次上报数据的时间戳,不受当前仪表盘时间窗口限制,只要Prometheus存储了对应历史数据即可展示。

具体配置步骤

1. 编写PromQL查询

根据需求选择以下任一查询:

  • 基于up指标(推荐,直接获取最后在线时间):

    last_over_time(up{job="你的服务job名"}[1y])
    

    说明:[1y]表示查询过去1年的样本,可根据你的数据保留周期调整(比如[7d]代表7天);job="你的服务job名"替换为实际用于标识服务的标签,也可结合instance等标签精准筛选。

  • 基于process_start_time_seconds指标(获取最后启动时间):

    last_over_time(process_start_time_seconds{job="你的服务job名"}[1y])
    

    说明:返回服务最后一次上报的启动时间,适合需要记录启动时间的场景。

2. Grafana表格面板配置

  • 新建一个Table面板,将上述PromQL查询添加到面板的查询编辑器中。
  • 切换到Transform标签,添加「Reduce」转换:
    • 分组依据选择用于区分服务的标签(如job、instance)
    • 聚合函数选择「Last」,确保每个服务仅显示一行数据
  • 切换到Field标签,对查询结果的字段进行配置:
    • 将Value字段的格式设置为「Time」,列名修改为Last Seen
    • 可添加其他标签字段(如instance、job)作为表格的服务名称列,方便识别

3. 效果验证

即使仪表盘时间窗口设置为「最近1小时」,只要Prometheus中存储了服务5天前的历史样本,表格仍会显示该服务的Last Seen时间戳为5天前的对应时间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 18:23:34