【发布时间】:2022-10-17 05:28:33
【问题描述】:
我正在使用 Prometheus HTTP API 查询来获取 PowerBI 所需的 API 数据。参考 Prometheus 文档链接如下:
https://prometheus.io/docs/prometheus/latest/querying/api/
我得到如下 JSON 结果。谁能帮我弄清楚突出显示的值是什么? (价值 1435781451.781)
"value": [ **1435781451.781**, "1" ]
似乎它是一个 UNIX 时间戳。但是那个时间戳是什么?每次我们执行查询时它都会发生变化。
我想获取实际的 API 调用时间戳。
$ curl 'http://localhost:9090/api/v1/query?query=up&time=2015-07-01T20:10:51.781Z'
{
"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" ]
}
]
}
}
【问题讨论】:
-
你的问题很好奇。该值是 UNIX 时间戳。如果你将它插入到像EpochConvertor 这样的工具中,你可以看到
1435781451.781在RFC-3339 中是2015-07-01T20:10:51.781Z。由于查询指定了这个时间戳,所以返回的value必须与时间戳匹配,因此value不可能与time=不匹配。你没有在你的问题中证明这个事实。在您的问题中,value匹配time值。 -
@DazWilkin 时间戳表示什么?查询执行时间?
-
测量的时间戳 .... 即 1435781451.781 是服务器在
prometheus(localhost:9090) 和node(localhost:9100) 上抓取up指标的时间。 -
非常感谢您的澄清。有什么方法可以获取 API 调用时间吗?我需要创建一个仪表板,在那里我想针对 API 调用时间制作一个图表。在那种情况下,您是否知道任何可能的场景/PromQL 来获取 API 调用时间而不是服务器抓取时间。
标签: prometheus