一、API响应格式

  1. Prometheus API使用了JSON格式的响应内容。 当API调用成功后将会返回2xx的HTTP状态码。
  2. 反之,当API调用失败时可能返回以下几种不同的HTTP状态码:
  • 404 Bad Request:当参数错误或者缺失时。
  • 422 Unprocessable Entity 当表达式无法执行时。
  • 503 Service Unavailiable 当请求超时或者被中断时。

    二、瞬时数据查询

  1. 通过使用QUERY API我们可以查询PromQL在特定时间点下的计算结果。

GET /api/v1/query

  1. URL请求参数:

query=:PromQL表达式。
time=:用于指定用于计算PromQL的时间戳。可选参数,默认情况下使用当前系统时间。
timeout=:超时设置。可选参数,默认情况下使用-query,timeout的全局设置。

  • 例如使用以下表达式查询表达式up在时间点2015-07-01T20:10:51.781Z的计算结果:

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

三、响应数据类型

  1. 当API调用成功后,Prometheus会返回JSON格式的响应内容
  2. PromQL表达式可能返回多种数据类型,在响应内容中使用resultType表示当前返回的数据类型,包括:
  • 瞬时向量:vector
  • 区间向量:matrix
  • 标量:scalar
  • 字符串:string

    四、区间数据查询

  1. 使用QUERY_RANGE API我们则可以直接查询PromQL表达式在一段时间返回内的计算结果。

GET /api/v1/query_range

  1. URL请求参数:
  • query=: PromQL表达式。
  • start=: 起始时间。
  • end=: 结束时间。
  • step=: 查询步长。
  • timeout=: 超时设置。可选参数,默认情况下使用-query,timeout的全局设置。
  1. 例如使用以下表达式查询表达式up在30秒范围内以15秒为间隔计算PromQL表达式的结果。

curl ‘http://localhost:9090/api/v1/query_range?query=up&start=2015-07-01T20:10:30.781Z&end=2015-07-01T20:11:00.781Z&step=15s