跳至主要內容

PromQL 操作符

鸟书大约 2 分钟monitorprometheuspromqloperations

PromQL 操作符

Prometheus Query Language (PromQL) 支持多种操作,这些操作允许你对时间序列数据进行筛选、比较、数学运算和聚合。以下是 PromQL 中的一些主要操作及其含义:

比较操作

  • ==, !=, <, >, <=, >=: 这些是比较操作符,用于在时间序列数据点之间进行比较。比较操作会产生一个布尔向量,其中每个样本点都有一个布尔值(truefalse)表示比较的结果。

算术操作

  • +, -, *, /, %, ^: 这些是基本的算术操作符,用于对时间序列进行数学运算。例如,你可以使用加法来合并两个度量,或者使用除法来计算比率。

聚合操作

  • sum, avg, min, max, count, stddev, stdvar: 这些操作符用于对一组时间序列进行聚合,产生一个新的时间序列,其中每个时间点的值是对原时间序列在同一时间点的值进行相应操作的结果。
  • quantile: 计算给定分位数的量化值,例如,可以使用 quantile(0.99) 来找出所有时间序列中 99% 的数据点低于的值。

向量匹配和聚合

  • group_left, group_right, without, ignoring: 这些操作用于控制向量之间的匹配和聚合方式。例如,ignoring 可以让你在聚合操作中忽略某些标签,而 without 可以从结果中移除某些标签。

时间窗口操作

  • rate: 计算单位时间内时间序列的变化率,通常用于计算每秒的事件数或操作数。
  • irate: 计算瞬时速率,即在最近的时间窗口内平均每秒的变化量,适合处理非单调增加的计数器。
  • increase: 计算时间序列在指定时间窗口内的增长量,通常用于处理单调增加的计数器。

标签操作

  • label_join, label_replace: 这些操作用于处理和修改时间序列的标签,例如,合并多个标签的值或替换标签。

常量向量操作

  • vector: 创建一个没有时间维度的向量,可以用于与时间序列数据进行算术操作。

特殊操作

  • absent: 返回一个布尔向量,其中包含对于每个时间点,如果在选择的时间序列中找不到对应样本则为 true,否则为 false

PromQL 的操作符和函数可以组合使用,以执行复杂的查询和数据处理任务,这对于监控和警报系统来说是非常有用的。通过使用这些操作,你可以根据你的监控需求对时间序列数据进行深入分析。