7.prometheus之查询API
- 一、格式概述
- 二、表达式查询
- 2.1 Instant queries(即时查询)
- 2.2 范围查询
- 三、查询元数据
- 3.1 通过标签匹配器找到度量指标列表
- 3.2 获取标签名
- 3.3 查询标签值
- 四、表达式查询结果格式
- 4.1 范围向量
- 4.2 瞬时向量
- 4.3 标量
- 4.4 字符串
- 五、Targets目标
- 六、Rules规则
- 七、Alerts报警
- 八、查询目标元数据
- 九、Altermanagers警报管理器
- 十、Status状态
- 10.1 Config配置
- 10.2 Flags标志
- 十一、TSDB Admin APIs,TSDB管理API
- 11.1 快照
- 11.2 删除序列
- 11.3 CleanTombstones
在Prometheus服务器上的/api/v1下可以访问当前稳定的HTTP API。 将在该端点下添加任何非中断添加项。
一、格式概述
这个API返回是JSON格式。每个请求成功的返回值都是以2xx开头的编码。
到达API处理的无效请求,返回一个JSON错误对象,并返回下面的错误码:
400 Bad Request。当参数错误或者丢失时。422 Unprocessable Entity。当一个表达式不能被执行时。503 Service Unavailable。当查询超时或者中断时。
对于在到达API端点之前发生的错误,可以返回其他非2xx代码。
如果存在不阻止请求执行的错误,则可以返回警告数组。 成功收集的所有数据都将在数据字段中返回。
JSON响应格式如下:
{
|
输入时间戳可以以RFC3339格式提供,也可以以秒为单位提供给Unix时间戳,可选的小数位数用于亚秒级精度。 输出时间戳始终表示为Unix时间戳,以秒为单位。
可以以[]结尾查询参数的名称。
<series_selector>占位符指的是Prometheus时间序列选择器,如http_requests_total或http_requests_total{method =〜"(GET|POST)"},需要进行URL编码。
<duration>占位符指的是[0-9]+[smhdwy]形式的Prometheus持续时间字符串。 例如,5m指的是5分钟的持续时间。
<bool>占位符引用布尔值(字符串true和false)。
二、表达式查询
可以对指标或指标聚合表达式在某一时刻或者某一段时间进行查询操作,详细解释见下:
2.1 Instant queries(即时查询)
以下端点在单个时间点评估即时查询:
GET /api/v1/query |
URL查询参数:
query=<string>: Prometheus表达式查询字符串。time=<rfc3339 | uninx_timestamp>: 执行时间戳,可选项。timeout=<duration>: 执行超时时间设置,可选项,默认由-query.timeout标志设置
如果time缺省,则用当前服务器时间表示执行时刻。
这个查询结果的data部分有下面格式:
{
|
<value> 是一个查询结果数据,依赖于这个resultType格式,见表达式查询结果格式> 。
下面例子执行了在时刻是2015-07-01T20:10:51.781Z的up表达式:
$ curl 'http://localhost:9090/api/v1/query?query=up&time=2020-03-01T20:10:51.781Z' |
2.2 范围查询
以下端点在一段时间内评估表达式查询:
GET /api/v1/query_range |
URL查询参数
query=<string>: Prometheus表达式查询字符串。start=<rfc3339 | unix_timestamp>: 开始时间戳。end=<rfc3339 | unix_timestamp>: 结束时间戳。step=<duration>: 以持续时间格式查询分辨率步长或浮点秒数。timeout=<duration>:评估超时。 可选的。 默认为-query.timeout标志的值并受其限制。
查询结果的数据部分具有以下格式:
{
|
对于<value>占位符的格式,详见第四章节部分。
以下示例在30秒范围内评估表达式,查询分辨率为15秒。
$ curl 'http://localhost:9090/api/v1/query_range?query=up&start=2020-03-01T20:10:30.781Z&end=2020-03-01T20:11:00.781Z&step=15s' |
三、查询元数据
3.1 通过标签匹配器找到度量指标列表
以下端点返回与特定标签集匹配的时间系列列表。
GET /api/v1/series |
URL查询参数:
match[]=<series_selector>: 选择器是series_selector。这个参数个数必须大于等于1.start=<rfc3339 | unix_timestamp>: 开始时间戳。end=<rfc3339 | unix_timestamp>: 结束时间戳。
查询结果的data部分包含一个对象列表,这些对象包含标识每个系列的标签名称/值对。
下面这个例子返回时间序列数据, 选择器是up或者process_start_time_seconds{job="prometheus"}
$ curl -g 'http://localhost:9090/api/v1/series?' --data-urlencode 'match[]=up' --data-urlencode 'match[]=process_start_time_seconds{job="prometheus"}'
|
3.2 获取标签名
以下端点返回标签名称列表:
GET /api/v1/labels
POST /api/v1/labels
JSON响应的data部分是字符串标签名称的列表。
如下例子:
[mingming.chen@m162p84 ~]$ curl 'localhost:9095/api/v1/labels' | python -m json.tool |
3.3 查询标签值
以下端点返回提供的标签名称的标签值列表:
GET /api/v1/label/<label_name>/values
JSON响应的data部分是字符串标签值的列表。
此示例查询作业标签的所有标签值:
[mingming.chen@m162p84 ~]$ curl http://localhost:9095/api/v1/label/job/values | python -m json.tool |
四、表达式查询结果格式
表达式查询可能会在data部分的result属性中返回以下响应值。 <sample_value>占位符是数字样本值。 JSON不支持特殊的浮点值,例如NaN,Inf和-Inf,因此样本值将作为带引号的JSON字符串而不是原始数字传输。
4.1 范围向量
范围向量返回的result类型是一个matrix矩阵。下面返回的结果是result部分的数据格式:
[ |
4.2 瞬时向量
瞬时向量的result类型是vector。下面是result部分的数据格式
[ |
4.3 标量
标量查询返回result类型是scalar。下面是result部分的数据格式:
[ <unix_time>, "<scalar_value>" ]
4.4 字符串
字符串的result类型是string。下面是result部分的数据格式:
[ <unix_time>, "<string_value>" ]
五、Targets目标
以下端点返回Prometheus目标发现的当前状态概述:
GET /api/v1/targets |
活动目标和删除目标都是响应的一部分。 labels表示重新标记发生后的标签集。 discoveredLabels表示在发生重新标记之前在服务发现期间检索到的未修改标签。
$ curl http://localhost:9090/api/v1/targets |
状态查询参数允许调用者按活动或已删除的目标进行过滤(例如,state=active, state=dropped, state=any)。 请注意,对于已滤除的目标,仍然返回空数组。 其他值将被忽略。
$ curl 'http://localhost:9090/api/v1/targets?state=active' |
六、Rules规则
/rules API端点返回当前加载的警报和记录规则列表。 此外,它还返回由每个警报规则的Prometheus实例触发的当前活动警报。
由于/rules端点相当新,它没有与总体API v1相同的稳定性保证。
GET /api/v1/rules
$ curl http://localhost:9090/api/v1/rules
{
|
七、Alerts报警
/alerts端点返回所有活动警报的列表。
由于/alerts端点相当新,它没有与总体API v1相同的稳定性保证。
GET /api/v1/alerts
$ curl http://localhost:9090/api/v1/alerts
{
|
八、查询目标元数据
以下端点返回有关目标正在刮取的度量标准的元数据。 这是实验性的,将来可能会发生变化。
GET /api/v1/targets/metadata
URL查询参数:
match_target=<label_selectors>:通过标签集匹配目标的标签选择器。 如果留空则选择所有目标。metric=<string>:用于检索元数据的度量标准名称。 如果留空,则检索所有度量标准元数据。limit=<number>:要匹配的最大目标数。
查询结果的data部分包含一个包含度量元数据和目标标签集的对象列表。
以下示例从前两个目标返回go_goroutines指标的所有元数据条目,标签为job ="prometheus"。
curl -G http://localhost:9091/api/v1/targets/metadata \
--data-urlencode 'metric=go_goroutines' \
|
以下示例返回标签instance="127.0.0.1:9090"的所有目标的所有度量标准的元数据。
curl -G http://localhost:9091/api/v1/targets/metadata \
--data-urlencode 'match_target={instance="127.0.0.1:9090"}'
|
九、Altermanagers警报管理器
以下端点返回Prometheus alertmanager发现的当前状态概述:
GET /api/v1/alertmanagers
活动和丢弃的Alertmanagers都是响应的一部分。
$ curl http://localhost:9090/api/v1/alertmanagers |
十、Status状态
以下状态端点显示当前的Prometheus配置。
10.1 Config配置
以下端点返回当前加载的配置文件:
GET /api/v1/status/config
配置作为转储的YAML文件返回。 由于YAML库的限制,不包括YAML注释。
$ curl http://localhost:9090/api/v1/status/config |
10.2 Flags标志
以下端点返回Prometheus配置的标志值:
GET /api/v1/status/flags
所有值都以“字符串”的形式出现。
$ curl http://localhost:9090/api/v1/status/flags |
v2.2中的新内容。
十一、TSDB Admin APIs,TSDB管理API
这些是为高级用户公开数据库功能的API。 除非设置了--web.enable-admin-api,否则不会启用这些API。
我们还公开了一个gRPC API,其定义可以在这里找到。 这是实验性的,将来可能会发生变化。
11.1 快照
快照会将所有当前数据的快照创建到TSDB数据目录下的snapshots/<datetime>-<rand>中,并将该目录作为响应返回。 它可以选择跳过仅存在于头块中但尚未压缩到磁盘的快照数据。
POST /api/v1/admin/tsdb/snapshot?skip_head=
$ curl -XPOST http://localhost:9090/api/v1/admin/tsdb/snapshot |
快照已存在<data-dir>/snapshots/20171210T211224Z-2be650b6d019eb54 v2.1新内容。
11.2 删除序列
DeleteSeries删除时间范围内所选系列的数据。 实际数据仍然存在于磁盘上,并在将来的压缩中清除,或者可以通过Clean Tombstones端点来明确清理。
如果成功,则返回204。
POST /api/v1/admin/tsdb/delete_series
URL查询参数:
match[]=<series_selector>:选择要删除的系列的重复标签匹配器参数。 必须至少提供一个match[]参数。start= <rfc3339 | unix_timestamp>:开始时间戳。 可选,默认为最短可能时间。end= <rfc3339 | unix_timestamp>:结束时间戳。 可选,默认为最长可能时间。
不提及开始和结束时间将清除数据库中匹配系列的所有数据。
例:
$ curl -X POST -g 'http://localhost:9090/api/v1/admin/tsdb/delete_series?match[]=up&match[]=process_start_time_seconds{job="prometheus"}'
|
11.3 CleanTombstones
CleanTombstones从磁盘中删除已删除的数据并清理现有的逻辑删除。 这可以在删除系列后使用以释放空间。
如果成功,则返回204。
POST /api/v1/admin/tsdb/clean_tombstones
这不需要参数或正文。
$ curl -XPOST http://localhost:9090/api/v1/admin/tsdb/clean_tombstones
7.prometheus之查询API的更多相关文章
- 快递查询API接口(trackingmore)
快递查询接口 目前提供快递查询的接口平台有: Trackingmore 快递100 快递网 不同接口的区别: (1)Trackingmore支持380家快递公司,其中有55家为国内的快递,其余325家 ...
- 百度手机号码归属地查询api与返回json处理
前天无意间在网上看到百度ApiStore,然后好奇就进去看了看.正好最近在某博培训Android,刚学到java基础.抱着锻炼的心态选择手机号码归属地查询api进行练手.api地址 (http://a ...
- 常用免费快递查询API对接案例
现在许多电商公司和ERP都会寻找比较适用的集成快递查询接口,减少对接难度,现在整理一下常用的免费快递查询接口,并附上调用案例,如果有觉得不对的地方,望能够一起沟通探讨! 一.快递查询接口 目前有提供免 ...
- 快递查询API接口对接方法
各类接口 快递查询API有即时查询和订阅查询两种,即时是请求即返回数据,订阅则是订阅快递单号到接口,有物流轨迹更新则全量返回数据.目前常用的有快递鸟.快递100.快递网等. 快递鸟即时API可以查询3 ...
- 快递查询api(多接口方案)
/** 本环境使用php+smarty,结合两种快递api调取快递数据 * 说明,先快递鸟调取数据,失败后再调取快递网的数据* 快递鸟 http://www.kdniao.com 快递网 http:/ ...
- 手机归属地查询-IP地址查询-身份证查询-域名备案查询--Api接口
使用这些接口是需要密钥的 公共密钥 appkey: 10003 secret: d1149a30182aa2088ef645309ea193bf 生成后sign: b59bc3ef6191eb9f ...
- 免费的手机号码归属地查询API接口文档
聚合数据手机号码归属四查询API接口,根据手机号码或手机号码的前7位,查询手机号码归属地信息,包括省份 .城市.区号.邮编.运营商和卡类型. 通过链接https://www.juhe.cn/docs/ ...
- 各种快递查询--Api接口
授权成功我的密钥 爱查快递API使用说明文档 API地址: 以前:http://api.ickd.cn/?com=[]&nu=[]&id=[]&type=[]&enco ...
- whois 查询 API
项目介绍 免费Whois查询接口,完全开放 API接口,返回JSON格式数据(支持POST,GET方式) 网页查询接口(支持POST,GET方式) 测试接口 页面: http://whois.tt80 ...
随机推荐
- P6007 [USACO20JAN]Springboards G
本题解仅用与作者加深算法理解,也欢迎大家的阅读 做题背景 原本关于二维的点的 \(dp\) 问题一直都没有什么想法,昨天晚上再做一道 \(cdq\) 的题目的时候被同学询问了这道题,发现可以用二维偏序 ...
- EHCACHE实现登录错误次数账号锁定
使用EHCACHE实现账号密码登录校验失败5次锁定10分钟 <?xml version="1.0" encoding="UTF-8"?> <e ...
- 微信开发中,不同手机系统遇到的bug(不定时更新)
Ios系统 1.body上绑定click事件失效. 解决:body标签下面,用个div,当做包裹所有内容的大容器.给这个div,绑定click事件. 2.不支持 YYYY-MM-DD 的时间格式. 用 ...
- js实现刮刮卡抽奖
刮刮卡抽奖是前端活动页常见的功能: 链接:图像擦除插件(下载及教程讲解) 推荐理由:无缝刮痕,兼容性好,上手简单 插件有些要修改的地方,打开图像擦除插件后可以看下方网友讨论,或者直接下载本博 ...
- Linux vmstat 使用说明
摘自 https://www.thomas-krenn.com/en/wiki/Linux_Performance_Measurements_using_vmstat Linux Performanc ...
- Spark内核-部署模式
Master URL Meaning local 在本地运行,只有一个工作进程,无并行计算能力. local[K] 在本地运行,有K个工作进程,通常设置K为机器的CPU核心数量. local[*] 在 ...
- CMake将生成的可执行文件保存到其他目录
在运行一些程序的时候,我们一般会把数据文件放在其他位置.而当在修改程序时,需要不断的修改代码,编译,执行.每次编译之后,都得将可执行文件复制到数据文件的目录. 这一问题有两种解决方法,一是直接在数据目 ...
- Numpy的学习5-array的分割
import numpy as np A = np.arange(12).reshape((3, 4)) print(A) """ array([[ 0, 1, 2, 3 ...
- Python手把手教程之用户输入input函数
函数input() 函数 input() 让程序暂停运行,等待用户输入一些文本.获取用户输入后,Python将其存储在一个变量中,以方便你使用. 例如,下面的程序让用户输入一些文本,再将这些文本呈现给 ...
- windows Server 2016安装Sqlserver远程连接的坑
如果要连接远程服务器 首先打开防火墙端口1433 新建入站规则 然后 如果没启用 就启用 然后重启服务就行 如果还是不行 进去属性 修改三处 然后重启服务