PromQL聚合操作

Prometheus还提供了下列内置的聚合操作符,这些操作符作用域瞬时向量。可以将瞬时表达式返回的样本数据进行聚合,形成一个新的时间序列。

  • sum (求和)

  • min (最小值)

  • max (最大值)

  • avg (平均值)

  • stddev (标准差)

  • stdvar (标准差异)

  • count (计数)

  • count_values (对value进行计数)

  • bottomk (后n条时序)

  • topk (前n条时序)

  • quantile (分布统计)

使用聚合操作的语法如下:

<aggr-op>([parameter,] <vector expression>) [without|by (<label list>)]

其中只有count_values, quantile, topk, bottomk支持参数(parameter)。

without用于从计算结果中移除列举的标签,而保留其它标签。by则正好相反,结果向量中只保留列出的标签,其余标签则移除。通过without和by可以按照样本的问题对数据进行聚合。

例如:

sum(http_requests_total) without (instance)

等价于

sum(http_requests_total) by (code,handler,job,method)

如果只需要计算整个应用的HTTP请求总量,可以直接使用表达式:

sum(http_requests_total)

count_values用于时间序列中每一个样本值出现的次数。count_values会为每一个唯一的样本值输出一个时间序列,并且每一个时间序列包含一个额外的标签。

例如:

count_values("count", http_requests_total)

topk和bottomk则用于对样本值进行排序,返回当前样本值前n位,或者后n位的时间序列。

获取HTTP请求数前5位的时序样本数据,可以使用表达式:

topk(5, http_requests_total)

quantile用于计算当前样本数据值的分布情况quantile(φ, express)其中0 ≤ φ ≤ 1。

例如,当φ为0.5时,即表示找到当前样本数据中的中位数:

quantile(0.5, http_requests_total)

转载于:https://my.oschina.net/54188zz/blog/3070378

Prometheus PromQLPrometheus Query Language)是用于查询和分析 Prometheus 时间序列数据的查询语言。它提供了丰富的功能和表达能力,使用户能够根据自己的需求灵活地检索、聚合和计算指标数据PromQL 支持以下主要操作: 1. 选择时间序列:通过指定指标名称和一组标签来选择特定的时间序列。例如,`http_requests_total{job="api-server", status="200"}` 选择 `http_requests_total` 指标的 `job` 标签值为 "api-server" 且 `status` 标签值为 "200" 的时间序列。 2. 聚合操作:可以对选择的时间序列进行各种聚合操作,如求和、平均值、最大值、最小值等。例如,`sum(http_requests_total)` 对 `http_requests_total` 指标的所有时间序列进行求和。 3. 算术操作:可以对选择的时间序列进行加减乘除等算术运算。例如,`http_requests_total{job="api-server"} - http_errors_total{job="api-server"}` 计算 `http_requests_total` 和 `http_errors_total` 之间的差值。 4. 函数操作PromQL 提供了许多内置函数,如 `rate()`、`increase()`、`irate()` 等,用于计算速率和增长率等指标。例如,`rate(http_requests_total{job="api-server"}[5m])` 计算 `http_requests_total` 指标的 5 分钟速率。 5. 筛选操作:可以使用一些条件和操作符对时间序列进行筛选和过滤。例如,`http_requests_total > 100` 筛选出 `http_requests_total` 指标值大于 100 的时间序列。 通过组合和嵌套这些操作,用户可以编写复杂的查询语句来获取所需的指标数据,并支持可视化和告警等应用场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值