005、查询接口

查询接口简述

prometheus并没有提供一个交互式的CLI工具。

当前已知的查询数据的方式有如下几种:

  1. WEB UI。直接浏览器访问prometheus的服务地址就可以打开的一个WEB界面。
  2. HTTP API。提供了一系列的POST/GET方法进行数据查询。
  3. promtool。安装包里的一个工具,可以进行查询,非交互式的。
  4. 其他类client工具。比如grafana这种。

日常测试使用的话,WEB UI是最方便直观的,能满足99%的查询需求了。但对于一些冷门的查询需求,比如就要查询指定时间范围的数据,或者metadata此类,则HTTP API无疑是功能齐全的。

WEB UI

浏览器访问prometheus的服务地址,打开界面如下,就可以直接进行查询了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传在这里插入图片描述

promtool

基本不用,简单介绍下。

## 可以查看使用说明
./promtool  --help
## 主要分为check配置文件、query查询、debug、test几个功能。

## 可以通过以下方式查询更多帮助
./promtool query --help
./promtool query instant --help

## 查询举例
./promtool query instant http://99.48.210.225:9090 mysql_binlog_files
./promtool query instant http://99.48.210.225:9090 mysql_binlog_files[1m]

HTTP API

接口这部分对于非开发来说,会有比较多的模糊概念需要理清楚。

常见的HTTP请求方法

GET:一般用于请求资源。带参数的格式为URL?para1=value1&para2=value2。?来区分URL和参数列表,多个参数用&进行串联。

POST:一般用于提交数据进行处理。可以将提交的数据按照指定格式提交服务器。

PUT: 一般用于传输文件。

DELETE: 一般用于删除站点资源。

prometheus提供的接口中只涉及GET、POST方法。

几个发起HTTP请求的方式:

浏览器:通用,但是查询结果没有格式化展示,对GET操作比较比较友好。

postman: 图形界面,使用简单。

curl: linux命令,功能强大,但命令行界面看起来不美观。

开发client: 各种网络包,比如python的request等。

postman举例

下图是GET方法,选择GET方法,输入URL,输入参数名和参数值,Send请求即可。

在这里插入图片描述

下图是POST方法,对于没有文件头要求、认证这部分的站点,请求配置都很简单。

在这里插入图片描述

curl举例:

可以使用curl --help查看具体命令说明。

GET请求样例:

curl -X GET http://99.48.210.225:9090/api/v1/query?query=wjf_test_increase

POST请求样例:

## 数据以键值对形式发送
curl -X POST -d "query=wjf_test_increase" http://99.48.210.225:9090/api/v1/query

## 以二进制格式发送文件里的数据
curl -X POST --data-binary @/tmp/wjf_test_data http://99.48.210.225:9091/metrics/job/mysql_monitor_table/

## echo重定向发送数据
echo "query=wjf_test_increase" | curl  --data-binary @- http://99.48.210.225:9090/api/v1/query

参数说明:

-X : 指定使用的HTTP方法,默认为GET,所以GET请求也可以不指定-X参数。

-d, --data DATA 以ascii编码格式传输数据
–data-ascii DATA 以ascii编码格式传输数据
–data-binary DATA 以二进制格式传输数据
–data-urlencode DATA 使用URL编码对数据进行处理后传输数据

​ DATA部分若以@开头,则可以**@filename直接处理文件内容。@-**表示从stdin读取数据。

prometheus提供的接口:

上面的内容介绍了HTTP API接口的使用方法,之后介绍具体接口时,只需要直接套用就行了。

官方大大的资料: https://prometheus.io/docs/prometheus/latest/querying/api/

下面也简要罗列几个:

接口说明接口方法URL参数备注
查询瞬时向量GET/POST/api/v1/queryquery= <string> : PromQL 表达式。
time=<unix_timestamp> : 可选,指定时间戳。
timeout=<duration> :可选,超时时间
区间向量也可以通过这个接口查询
查询区间向量GET/POST/api/v1/query_rangequery= : PromQL 表达式。
start=<unix_timestamp> : 起始时间戳。
end=<unix_timestamp> : 结束时间戳。

step=<duration float> : 查询时间步长。
timeout=<duration> :可选,超时时间
可以指定start/end时间进行区间查询
删除向量POST/PUT/api/v1/admin/tsdb/delete_series参数具体见官方文档。标记删除
清理磁盘POST/PUT/api/v1/admin/tsdb/clean_tombstones参数具体见官方文档。真正磁盘删除
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值