跳至主要內容

PromQL 内置函数

鸟书大约 2 分钟monitorprometheuspromqlfunctions

PromQL 内置函数

Prometheus Query Language (PromQL) 支持多种函数,这些函数可以用来处理时间序列数据,包括但不限于过滤、聚合、比较、数学运算和时间窗口操作。下面是一些主要的 PromQL 函数及其含义:

过滤器函数

  • {...}:标签匹配器,用于选择具有特定标签集的度量。
  • ==, !=, =~, !~:比较运算符,用于在标签中进行匹配或不匹配。

聚合函数

  • sum, count, avg, min, max, stddev, stdvar:在每个选定的时间序列上应用特定的聚合操作。
  • quantile:计算给定分位数的量化值。

操作符

  • +, -, *, /, %, ^:算术运算符,用于数值运算。
  • and, or, unless:逻辑运算符,用于结合或比较多个向量。

时间窗口函数

  • rate:计算单位时间内的平均变化率。
  • irate:估算单位时间内的瞬时变化率。
  • increase:计算给定时间窗口内度量的增加量。
  • delta:计算两个最近样本的差值。

延迟和偏移

  • offset:将时间序列向前或向后移动指定的时间。
  • delay:与 offset 类似,但已弃用。

向量转换

  • absent:返回没有匹配到任何时间序列的向量。
  • vector:创建一个没有时间戳的常量向量。

标签操作

  • label_replace:替换向量中所有样本的标签。
  • without:删除向量中的某些标签。
  • ignoring:在进行向量匹配时忽略某些标签。

其他函数

  • predict_linear:预测时间序列在未来某个时间点的值。
  • time:返回当前的 Unix 时间戳。

PromQL 函数的使用可以非常灵活,允许用户执行复杂的查询,比如计算某个指标的平均值、找出最大值、比较不同时间窗口的数据、执行数学运算等等。这些函数和运算符可以组合在一起,形成更复杂的表达式,以满足监控和警报的需要。PromQL 的设计目的是为了能够高效地处理大量时间序列数据,同时保持查询的简洁性和可读性。