pdf文档 PromQL 从入门到精通 推荐

2.77 MB 16 页 0 评论
语言 格式 评分
中文(简体)
.pdf
3
摘要
文档详细介绍了PromQL的基础知识及实际应用场景,包括查询选择器的使用、Offset关键字的时序调整、算术运算符和比较运算符的应用、rate和irate函数的区别、histogram_quantile函数的使用方法、以及告警规则的配置。同时,文档还讲解了逻辑运算符和集合运算符的使用,聚合函数的应用如sum、avg、min、max等,以及group_left和group_right的高级使用技巧。此外,文档还涉及PromQL在Kubernetes环境中的实践,如与kube-state-metrics结合使用,并对处理分布式系统延时指标的函数进行了详细说明。
AI总结
## PromQL 从入门到精通 —— 文档总结 以下是对《PromQL 从入门到精通》的中文文档内容进行的总结,涵盖了PromQL的核心知识点和实践场景: ### 1. PromQL 简介与核心概念 PromQL(Prometheus Query Language)是用于查询时序数据的语言,广泛应用于监控和可观测性领域。本文档通过生产实践中的场景,详细介绍了PromQL的基本知识和高级功能。 ### 2. 查询选择器 PromQL的查询选择器用于过滤时序数据,支持以下操作符: - **=**:完全匹配,如 `app="clickhouse"` - **!=**:完全不匹配 - **=~**:正则匹配,如 `app=~"n9e-.*"` - **!~**:正则不匹配 指标名称可以通过标签 `__name__` 进行查询,例如: ```promql {__name__="mem_available_percent", app="clickhouse"} ``` ### 3. Offset 关键字 用于获取历史数据,常见于同比分析。以下示例中,`offset 1d` 表示获取1天前的数据: ```promql sum(http_requests_total{method="GET"} offset 1d) ``` ### 4. 算术运算符 支持加减乘除等基本算术运算,能够直接在服务端完成复杂计算。例如,利用算术运算符可以动态生成新的指标: ```promql mem_available{app="clickhouse"} / mem_total{app="clickhouse"} * 100 ``` ### 5. 比较运算符 用于设置告警阈值,典型用法是将即时向量与标量进行比较。例如: ```promql mem_available_percent{app="clickhouse"} < 60 ``` ### 6. 逻辑/集合运算符 包括 `and`、`or` 和 `unless`,用于即时向量之间的逻辑运算。例如: ```promql disk_used_percent{app="clickhouse"} > 70 and disk_total{app="clickhouse"}/1024/1024/1024 < 500 ``` ### 7. 聚合运算符 用于对多个时间序列进行聚合操作,常见函数包括 `sum`、`min`、`max`、`avg` 等。示例: ```promql avg(mem_available_percent{app="clickhouse"}) bottomk(2, mem_available_percent{app="clickhouse"}) ``` ### 8. 高级函数 #### (1) count_gt_over_time 用于统计时间范围内超过阈值的次数,适合告警规则。例如: ```promql count_gt_over_time(interface_status[5m], 10) >= 3 ``` #### (2) rate 和 irate - `rate`:计算时间范围内的每秒变化率,平滑处理数据。 - `irate`:基于时间范围内的最后两个数据点计算,变化更剧烈,适合短期敏感监控。 #### (3) histogram_quantile 用于计算分位数,常用于分析分布式系统的延迟。示例: ```promql histogram_quantile(0.95, rate(http_request_duration_bucket{job="apiserver"}[5m])) ``` ### 9. group_left 和 group_right 用于处理一对多或多对一的匹配场景: - `group_left`:保留高基数向量的标签。 - `group_right`:保留低基数向量的标签。 示例: ```promql method_code:http_errors:rate5m / ignoring(code) group_left method:http_requests:rate5m ``` ### 10. 实际应用场景 #### (1) 内存可用率告警 通过 PromQL 设置阈值,即时监控内存健康状态: ```promql mem_available_percent{app="clickhouse"} < 60 ``` #### (2) HTTP 错误率统计 计算不同 HTTP 方法的错误率: ```promql method_code:http_errors:rate5m{code="500"} / ignoring(code) method:http_requests:rate5m ``` #### (3) 多维度数据处理 结合 Kubernetes 标签,实现高级监控逻辑。例如,根据 `kube_pod_labels` 统计 5xx 请求量: ```promql sum(rate(http_request_count{code=~"^(?:5..)$"}[5m])) by (pod) * on (pod) group_left(label_version) kube_pod_labels ``` ### 11. 小结 - PromQL 是时序数据查询的核心语言,其功能强大且灵活。 - 文档中仅介绍了部分常用函数,更多功能请参考官方文档。 - 作者:秦晓辉(快猫星云,https://flashcat.cloud/),致力于监控与可观测性领域。
P1
P2
P3
P4
P5
P6
P7
下载文档到本地,方便使用
- 可预览页数已用完,剩余 9 页请下载阅读 -
文档评分
请文明评论,理性发言.