2.5 数据查询

对于Prometheus数据,我们都可以通过HTTP来查询,如果是复杂的数据查询,则还可以使用PromQL进行。

和关系型数据库实现SQL解析一样,Prometheus实现了一套自己的数据库语言(PromQL)解析器。PromQL与SQL的最大差别是PromQL只支持查询。

这里先介绍PromQL的使用方式。例如,在查询主机CPU的使用率时可以使用:

可以看到,PromQL不仅可以做指标运算,还支持各种如 sum、avg等的函数。

Prometheus 通过解析引擎将查询语句转化为 QUERY 请求,然后通过时序数据库找到具体的数据块,在数据返回后再通过支持内置的函数处理数据,最终将结果返回到前端,如图2-13所示。

图2-13

Prometheus支持Grafana等开源显示面板,通过自定义PromQL可以制作丰富的监控视图。Prometheus本身也提供了一个简单的 Web查询控制台,如图2-14所示,Web控制台包含三个主要模块:Graph指标查询,Alerts告警查询、Status状态查询。

图2-14