文章目录
1. 前言
以下是介绍调用Prometheus的API获取数据的方法
1.1. API终端
IP:PORT(prometheus一般在内网暴露9090端口,对外网暴露8395端口)
1.2. API状态码说明
- 2xx: 调用成功
- 404 Bad Request :参数错误或者缺失。
- 422 Unprocessable Entity : 表达式无法执行。
- 503 Service Unavailable : 请求超时或者被中断
1.3. API请求返回的格式均使用以下的 JSON 格式
{
"status": "success" | "error",
"data": <data>,
// 当有错误的时候才有以下返回字段
"errorType": "<string>",
"error": "<string>"
}
2. API接口文档
2.1. 查询时间点结果
2.1.1. 请求类型
GET/POST
2.1.2. URL
/api/v1/query
2.1.3. 请求参数
参数名称 | 类型 | 是否必须 | 实例 | 备注 |
---|---|---|---|---|
query | string | 是 | base_user_count{project=“测试22”, organization=“test123”} | PromQL表达式,需要url encode |
time | rfc3339或unix_timestamp | 否 | 1646382531 | 时间戳,精确到秒。如果不填写则用系统当前时间。 |
timeout | duration | 否 | 5m | 请求Prometheus的超时时间,一般不用填写。 |
2.1.4. 返回
{
"status": "success",
"data": {
"resultType": "vector", //返回字段参考:响应数据格式
"result": [
{
"metric": {
}, //指标的label,可以理解为索引,可以根据以下字段进行具体查询
"value": [] //返回结果 时间戳(与传入的时间对应)+具体值
}
]
}
}