2.5.0 数据查询

对于 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