Prometheus HTTP API 查询(二) 表达式查询
本文已经收录在 Prometheus 合集 你真的会 Prometheus 查询吗?--PromQL 合集 中。
查询语言表达式可以在计算瞬间向量,也可以在计算范围向量。下面的小节描述每种类型的表达式查询的 API 端点。
瞬时查询
使用 GET 或者 POST 访问下列 API 接口,可以在单个时间点计算瞬时查询:
URL
查询参数:
query=<string> : Prometheus 查询表达式。
time=<rfc3339 | unix_timestamp> : 时间戳,可选的一个选项,不填的话查询当前时间的值,支持 UNIX 时间戳和 RFC 3339 格式的时间描述。
timeout=<duration> : 超时时间,是一个可选的选项。默认使用
-query.timeout
指定的值。
在请求 API 接口时可以使用 POST 方法 并且 header 头可以使用 Content-Type: application/x-www-form-urlencoded
, 当大查询中包含违反服务端 URL 字符限制时比较有用。
查询结果的数据部分格式如下:
<value>
是查询结果,根据查询的类型不同,格式也不一样。
下面这个示例会查询 up
指标在 2021-11-08T23:10:51.781Z
时间的值。
范围时间查询
使用 GET 或者 POST 访问下列 API 接口,可以在一个时间段内计算查询表达式:
URL
查询参数:
query=<string> : Prometheus 查询表达式
start=<rfc3339 | unix_timestamp> : 开始时间戳
end=<rfc3339 | unix_timestamp> : 结束时间戳
step=<duration | float> : 步长。简单理解就是查询的这段时间中两个数据点的间隔是多长时间,比如每分钟一个点,或者每十秒一个点,这就是步长。格式是 1m 、10s 这种。
timeout=<duration> : 超时时间,是一个可选的选项。如果不指定,默认使用
-query.timeout
指定的值。
和进行瞬时查询一样,在请求 API 接口时可以使用 POST 方法 并且 header 头可以使用 Content-Type: application/x-www-form-urlencoded
, 当大查询中包含违反服务端 URL 字符限制时比较有用。
查询结果的数据部分格式如下:
<value>
是查询结果,
下面的示例在 30 秒范围内查询表达式 up
的值,查询步长为 15 秒。
版权声明: 本文为 InfoQ 作者【耳东@Erdong】的原创文章。
原文链接:【http://xie.infoq.cn/article/dfe6d5de1297a7942aa28363f】。未经作者许可,禁止转载。
评论