操作场景
当我们有数据查询需求时,可以通过查询 API 请求监控数据。
APPID/Token 获取方式
托管 Prometheus API 使用需要通过
APPID
+ Token
的方式进行鉴权访问。Token
从对应 Prometheus 实例的基本信息中获取。查询 API 接口
GET /api/v1/queryPOST /api/v1/query
查询参数
query=<string>: Prometheus:查询表达式。
time=<rfc3339 | unix_timestamp>: 时间戳, 可选。
timeout=<duration>:检测超时时间, 可选。 默认由
-query.timeout
参数指定。简单查询示例
我们可以使用下面的例子进行 API 数据查询,查询服务地址和认证信息可以在相应实例控制台查看:
curl -u "appid:token" 'http://IP:PORT/api/v1/query?query=up'
如果返回状态码为 401 请检查认证信息是否正确。
< HTTP/1.1 401 Unauthorized< Content-Length: 0
范围查询
GET /api/v1/query_rangePOST /api/v1/query_range
根据时间范围查询我们需要的数据是我们面临的最多的场景,这时我们需要用到
/api/v1/query_range
接口,示例如下:$ curl -u "appid:token" 'http://IP:PORT/api/v1/query_range?query=up&start=2015-07-01T20:10:30.781Z&end=2015-07-01T20:11:00.781Z&step=15s'{"status" : "success","data" : {"resultType" : "matrix","result" : [{"metric" : {"__name__" : "up","job" : "prometheus","instance" : "localhost:9090"},"values" : [[ 1435781430.781, "1" ],[ 1435781445.781, "1" ],[ 1435781460.781, "1" ]]},{"metric" : {"__name__" : "up","job" : "node","instance" : "localhost:9091"},"values" : [[ 1435781430.781, "0" ],[ 1435781445.781, "0" ],[ 1435781460.781, "1" ]]}]}}
自建 Grafana 添加数据源
我们可以通过自己部署的 Grafana 添加托管的 Prometheus 为数据源,方便我们在自己的 Grafana 中查看数据,前提是需要保证它们在同一 VPC 内,保证网络是可以互相访问的。
开启 BasicAuth 认证方法,并填写相应的认证信息即可,如下图配置。