prometheus-book
Search…
Introduction
全书组织
Part I - Prometheus基础
第1章 天降奇兵
第2章 探索PromQL
理解时间序列
Metrics类型
初识PromQL
PromQL操作符
PromQL聚合操作
PromQL内置函数
在HTTP API中使用PromQL
最佳实践:4个黄金指标和USE方法
小结
第3章 Prometheus告警处理
Part II - Prometheus进阶
第4章 Exporter详解
第5章 数据与可视化
第6章 集群与高可用
第7章 Prometheus服务发现
Part III - Prometheus实战
第8章 监控Kubernetes
第9章 Prometheus Operator
参考资料
Powered By
GitBook
PromQL聚合操作
Prometheus还提供了下列内置的聚合操作符,这些操作符作用域瞬时向量。可以将瞬时表达式返回的样本数据进行聚合,形成一个新的时间序列。
sum
(求和)
min
(最小值)
max
(最大值)
avg
(平均值)
stddev
(标准差)
stdvar
(标准方差)
count
(计数)
count_values
(对value进行计数)
bottomk
(后n条时序)
topk
(前n条时序)
quantile
(分位数)
使用聚合操作的语法如下:
1
<aggr-op>([parameter,] <vector expression>) [without|by (<label list>)]
Copied!
其中只有
count_values
,
quantile
,
topk
,
bottomk
支持参数(parameter)。
without用于从计算结果中移除列举的标签,而保留其它标签。by则正好相反,结果向量中只保留列出的标签,其余标签则移除。通过without和by可以按照样本的问题对数据进行聚合。
例如:
1
sum(http_requests_total) without (instance)
Copied!
等价于
1
sum(http_requests_total) by (code,handler,job,method)
Copied!
如果只需要计算整个应用的HTTP请求总量,可以直接使用表达式:
1
sum(http_requests_total)
Copied!
count_values用于时间序列中每一个样本值出现的次数。count_values会为每一个唯一的样本值输出一个时间序列,并且每一个时间序列包含一个额外的标签。
例如:
1
count_values("count", http_requests_total)
Copied!
topk和bottomk则用于对样本值进行排序,返回当前样本值前n位,或者后n位的时间序列。
获取HTTP请求数前5位的时序样本数据,可以使用表达式:
1
topk(5, http_requests_total)
Copied!
quantile用于计算当前样本数据值的分布情况quantile(φ, express)其中0 ≤ φ ≤ 1。
例如,当φ为0.5时,即表示找到当前样本数据中的中位数:
1
quantile(0.5, http_requests_total)
Copied!
Previous
PromQL操作符
Next
PromQL内置函数
Last modified
2yr ago
Copy link