上QQ阅读APP看书,第一时间看更新
第4章 PromQL让数据会说话
若想熟练使用MySQL数据库,就必须掌握SQL。TimescaleDB、OpenTSDB、KairosDB、Kdb+、Graphite、eXtremeDB、Riak TS等时间序列数据库都有各自的SQL。由于腾讯、网易等国内的大型互联网公司目前都在基于InfluxDB做集群监控,故很多人比较熟悉InfluxQL。
Promethues也内置了自己的功能表达式查询语言——PromQL(Prometheus Query Langu-age)。它允许用户实时选择和汇聚时间序列数据,从而很方便地在Prometheus中查询和检索数据。表达式的结果可以在浏览器中展示为图形,也可以展示为表格,或者由外部系统通过HTTP API的形式进行调用。虽然PromQL这个单词以QL结尾,但是它并不是一种与SQL类似的语言,因为当涉及在时间序列上执行计算时,SQL往往缺乏必要的表达能力。
PromQL的表现力非常强,除了支持常见的操作符外,还提供了大量的内置函数来实现对数据的高级处理,让监控的数据会说话。日常数据查询、可视化及告警配置这三大功能模块都是依赖PromQL实现的。
PromQL是Prometheus实战的核心,是Prometheus场景的基础,也是Prometheus的必修课。本章会用相对较长的篇幅,从时间序列、PromQL数据类型、选择器、指标类型、聚合操作、二元操作符、内置函数、最佳实践、性能优化等方面,通过理论联系实践的方式,全方位介绍PromQL相关的概念和用法。