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

Prometheus HTTP API返回时间戳含义及获取API调用时间咨询

Prometheus API查询结果中时间戳含义及API调用时间获取

问题描述

我正在使用Prometheus HTTP API查询数据并导入PowerBI。调用API后得到的JSON结果中,"value"数组内的第一个值(示例中的1435781451.781)是UNIX时间戳,但每次执行查询该值都会变化,想咨询该时间戳的具体含义,同时希望获取实际的API调用时间。

调用示例及返回结果如下:

$ curl 'http://localhost:9090/api/v1/query?query=up&time=2015-07-01T20:10:51.781Z'

返回JSON:

{
   "status" : "success",
   "data" : {
      "resultType" : "vector",
      "result" : [
         {
            "metric" : {
               "__name__" : "up",
               "job" : "prometheus",
               "instance" : "localhost:9090"
            },
            "value": [ 1435781451.781, "1" ]
         },
         {
            "metric" : {
               "__name__" : "up",
               "job" : "node",
               "instance" : "localhost:9100"
            },
            "value" : [ 1435781451.781, "0" ]
         }
      ]
   }
}

解答

1. value数组中时间戳的含义

这个时间戳代表查询的目标时间点,规则如下:

  • 如果调用/api/v1/query时指定了time参数(比如示例中的2015-07-01T20:10:51.781Z),该时间戳就是time参数对应的UNIX时间戳(精确到毫秒),和你指定的时间完全匹配;
  • 如果调用时未传time参数,这个时间戳就是Prometheus服务器执行该查询请求时的当前系统时间,因此每次查询结果都会变化。

2. 获取实际的API调用时间

有两种可靠方式:

  • 获取服务器响应完成时间:查看HTTP响应头中的Date字段,该字段记录了Prometheus服务器返回响应的时间,也就是API请求处理完成的时间。在PowerBI中,可通过自定义脚本或扩展读取该响应头值;
  • 获取客户端发起请求时间:直接在PowerBI发起API请求的代码中,记录当前本地时间即可,这个时间就是你发起API调用的时间点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 17:10:33