prometheus二次开发之HTTP api(一)

Prometheus在/api/v1的路径下开放了HTTP接口,用户可以通过这些接口进行二次开发。这篇笔记挑选了此次监控平台可能会用到的接口进行解析。

1、请求&响应格式

1.JSON响应格式

以JSON格式进行响应。
若API请求成功 返回一个2xx的状态码。
若请求失败,分情况返回以下状态码:

  • 400 Bad Request 参数丢失或不正确;
  • 422 Unprocessable Entity无法执行表达式时;
  • 503 Service Unavailable 查询超时或中止时。

响应JSON内容如下:

{
  "status": "success" | "error",
  "data": <data>,

  // Only set if status is "error". The data field may still hold
  // additional data.
  "errorType": "<string>",
  "error": "<string>",

  // Only if there were warnings while executing the request.
  // There will still be data in the data field.
  "warnings": ["<string>"]
}
2.时间戳格式

输出中的时间戳为以秒为单位的Unix时间戳,故若请求中有时间戳,推荐使用以秒为单位的Unix时间戳。

3.其他格式

可以重复查询的参数名称应用[]为后缀。

<series_selector>占位符指Prometheus的时间序列选择器,例如http_requests_total或http_requests_total{method=~"(GET|POST)"} 并且需要进行URL编码。

占位符 指Prometheus持续时间字符串。[0-9]+[smhdwy]。例如,5m指持续时间为5分钟。

占位符指布尔值(字符串true和false)。

2、表达式查询

用户可以通过接口使用promQL查询瞬时或某一个时间段的值,

1.瞬时查询

url地址:

GET /api/v1/query
POST /api/v1/query

URL查询参数:

  • query= *Prometheus表达式查询字符串,必选。
  • time=<rfc3339 | unix_timestamp> *查询的时间戳,可选。
  • timeout=*超时时间,可选。默认为启动参数-query.timeout标志的值,并由该标志的值限制。

注:
如果time参数未填写,则使用当前服务器时间。
使用POST方法和 Content-Type: application/x-www-form-urlencoded标头直接在请求正文中对这些参数进行URL编码。

返回结果格式:

{
  "resultType": "matrix" | "vector" | "scalar" | "string",
  "result": <value>
}

示例1: 查询Prometheus自带metric

$ curl 'http://localhost:9090/api/v1/query?query=up
{
   "status" : "success",
   "data" : {
      "resultType" : "v
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值