prometheus server 可以通过HTTPAPI的方式进行查询,官网链接https://prometheus.io/docs/prometheus/latest/querying/basics/
我这边主要用到的是实时查询,当然prometheus还支持历史查询,我这里 先介绍实时查询,其他的可以直接参考官方文档。
实时查询接口:
"%s/api/v1/query?query=%s"
(1) 直接查询某一监控指标:
比如查询 process_start_time_seconds,
http://localhost:9090/api/v1/query?query=process_start_time_seconds
{
"status":"success",
"data":{
"resultType":"vector",
"result":[
{
"metric":{
"__name__":"process_start_time_seconds",
"instance":"localhost:9090",
"job":"prometheus"
},
"value":[
1533194622.184,
"1532609170.42"
]
},
{
"metric":{
"__name__":"process_start_time_seconds",
"instance":"localhost:9295",
"job":"postgres"
},
"value":[
1533194622.184,
"1533034386.88"
]
}
]
}
}
(2)根据某一字段加上标签:
比如查询job为prometheus的process_start_time_seconds指标:
http://localhost:9090/api/v1/query?query=process_start_time_seconds{job="prometheus"}
(3)正则表达式匹配前缀:
比如一些监控 指标都以pro开头,可以通过正则表达式匹配前缀的方式一把搂回来:
htp://localhost:9090/api/v1/query?query={__name__=~"pro.*"}
当然prometheus是支持各个标签 label之间通过and ,or ,unless进行组合,比如:
htp://localhost:9090/api/v1/query?query={__name__=~"pro.*"}and{job="progres"}
查询出job名为progres,标签名以pro为前缀的监控数据。