【Prometheus】查询语法(PromQL)

本文详细介绍了Prometheus的查询语言PromQL,包括时间序列过滤器(瞬时向量和区间向量)、时间位移操作、算术二元运算符和聚合操作。重点讲解了increase、irate和rate三个常用函数的使用,帮助理解如何实时选择和汇聚时间序列数据,以及在监控图表中展示数据。
摘要由CSDN通过智能技术生成

1. PromQL介绍

Prometheus 提供了一种功能表达式语言 PromQL,允许用户实时选择和汇聚时间序列数据。在gafana中,选择prometheus的数据源之后,在Metrics输入PromQL,语法正确后,图表页面就会显示出监控数据。
在这里插入图片描述
在 Prometheus 的表达式语言中,表达式或子表达式包括以下四种类型之一:

  • 瞬时向量(Instant vector) - 一组时间序列,每个时间序列包含单个样本,它们共享相同的时间戳。也就是说,表达式的返回值中只会包含该时间序列中的最新的一个样本值。而相应的这样的表达式称之为瞬时向量表达式。http_requests_total
  • 区间向量(Range vector) - 一组时间序列,每个时间序列包含一段时间范围内的样本数据。http_requests_total[5m]
  • 标量(Scalar) - 一个浮点型的数据值。time()sum(http_requests_total)
  • 字符串(String) - 一个简单的字符串值。
    根用户输入的表达式返回的数据类型是否合法取决于用例的不同,例如:瞬时向量表达式返回的数据类型是唯一可以直接绘制成图表的数据类型。

1.1. 时间序列过滤器

1.1.1. 瞬时向量过滤器

瞬时向量过滤器允许在指定的时间戳内选择一组时间序列和每个时间序列的单个样本值。在最简单的形式中,近指定指标(metric)名称。这将生成包含此指标名称的所有时间序列的元素的瞬时向量。
例如:选择指标名称为prometheus_http_requests_total的所有时间序列:
在这里插入图片描述
可以通过向花括号({})里附加一组标签来进一步过滤时间序列。
例如:选择指标名称为 prometheus_http_requests_total,job 标签值为 prometheus,handler标签值为/metrics的时间序列:
在这里插入图片描述
PromQL 还支持用户根据时间序列的标签匹配模式来对时间序列进行过滤,目前主要支持两种匹配模式:完全匹配和正则匹配。总共有以下几种标签匹配运算符:

  • = : 选择与提供的字符串完全相同的标签。
  • != : 选择与提供的字符串不相同的标签。
  • =~ : 选择正则表达式与提供的字符串(或子字符串)相匹配的标签。
  • !~ : 选择正则表达式与提供的字符串(或子字符串)不匹配的标签。

1.1.2. 区间向量过滤器

区间向量与瞬时向量的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值