Prometheus 的查询语言 PromQL 详解

需要注意的是,本文我们介绍的是 PromQL 的查询范畴,关于 PromQL 计算范畴的内容,我们都没有介绍,比如,算术运算符、比较运算符、逻辑运算符,也是非常重要的内容,尤其在我们配置告警时会用到这些运算符。​

需要注意的是,本文我们介绍的是 PromQL 的查询范畴,关于 PromQL 计算范畴的内容,我们都没有介绍,比如,算术运算符、比较运算符、逻辑运算符,也是非常重要的内容,尤其在我们配置告警时会用到这些运算符。​

01、介绍

我们使用 Prometheus Go client library 在 Go 代码中埋点,将指标数据上报到 Prometheus server,接下来我们使用PromQL查询指标数据。

PromQL 可以在 Prometheus 提供的http://localhost:9090/graph中执行,本文我们介绍怎么使用 PromQL 查询指标数据。

02、PromQL

PromQL 除了直接使用指标名称查询时序数据之外,还可以联合使用 Label 和函数等。

比如我们使用最多的 Counter 指标类型,它会统计自启动 Prometheus 以来的计数总和,但是我们并不关心总数。我们只想知道 Counter 随着时间的推移,计数增加的速度。

比如我们可以直接使用自定义指标名称http_request_count_total查询所有指标名称为http_request_count_total的指标数据(HTTP 请求数)。

实际上,我们并不是要查询 HTTP 请求数的总和,而是想查询单位时间内,请求数的增长速度。此时,我们可以使用函数rate完成。

使用rate(http_request_count_total[5m])可以查询 HTTP 每秒请求数,其中[5m]是指过去 5 分钟每秒请求数的平均值。

比如我们的 HTTP 请求数指标中包含PATH标签,如果我们想要统计所有 HTTP 请求数指标的每秒请求数的总和,可以使用sum聚合运算符 和without子句,sum without(path)(rate(http_request_count_total[5m]))。

比如我们想要查询指定PATH的 HTTP 每秒请求数,我们可以使用rate(http_request_count_total{path="/ping"}[5m])查询,我们通过{path="/ping"}过滤指标数据。

实际上http_request_count_total{path="/ping"}中{}称为选择器,其中path="/ping"中的=称为匹配器,我们可以在{}中使用多个匹配器,使用,分隔。

匹配器有 4 种,path="/ping"中的=是等式匹配器,此外,还有!=不等、=~正则等、!~正则不等。

03、总结

本文我们主要介绍 PromQL 的一般使用方式,主要包括以下几个维度:

  1. 指标名称
  2. 标签
  3. 聚合运算符
  4. 子句
  5. 函数
  6. 选择器
  7. 匹配器

除了指标名称和标签,我们在之前的文章介绍过之外,其它都属于新知识,聚合运算符共计 11 个,我们只使用了sum,子句除了without之外,还有by,函数也只是使用rate举例,建议读者朋友们阅读官方文档,了解所有聚合运算符和函数的使用方式。

需要注意的是,本文我们介绍的是 PromQL 的查询范畴,关于 PromQL 计算范畴的内容,我们都没有介绍,比如,算术运算符、比较运算符、逻辑运算符,也是非常重要的内容,尤其在我们配置告警时会用到这些运算符。

©本文为清一色官方代发,观点仅代表作者本人,与清一色无关。清一色对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。本文不作为投资理财建议,请读者仅作参考,并请自行承担全部责任。文中部分文字/图片/视频/音频等来源于网络,如侵犯到著作权人的权利,请与我们联系(微信/QQ:1074760229)。转载请注明出处:清一色财经

(0)
打赏 微信扫码打赏 微信扫码打赏 支付宝扫码打赏 支付宝扫码打赏
清一色的头像清一色管理团队
上一篇 2023年11月27日 00:06
下一篇 2023年11月27日 00:07

相关推荐

发表评论

登录后才能评论

联系我们

在线咨询:1643011589-QQbutton

手机:13798586780

QQ/微信:1074760229

QQ群:551893940

工作时间:工作日9:00-18:00,节假日休息

关注微信