前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Prometheus 的查询语言 PromQL 详解

Prometheus 的查询语言 PromQL 详解

作者头像
frank.
发布2023-11-27 18:09:01
1750
发布2023-11-27 18:09:01
举报

大家好,我是 frank。 欢迎大家点击标题下方蓝色文字「Golang 语言开发栈」关注公众号。 公众号主页点击右上角三个点图标,

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 计算范畴的内容,我们都没有介绍, 比如,算术运算符、比较运算符、逻辑运算符,也是非常重要的内容,尤其在我们配置告警时会用到这些运算符。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-11-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言开发栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
Prometheus 监控服务
Prometheus 监控服务(TencentCloud Managed Service for Prometheus,TMP)是基于开源 Prometheus 构建的高可用、全托管的服务,与腾讯云容器服务(TKE)高度集成,兼容开源生态丰富多样的应用组件,结合腾讯云可观测平台-告警管理和 Prometheus Alertmanager 能力,为您提供免搭建的高效运维能力,减少开发及运维成本。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档