📌 前言
最近在项目中接触了 Prometheus + Grafana 监控体系,发现 PromQL(Prometheus Query Language) 是分析监控数据的核心工具。作为初学者,我整理了这份学习笔记,希望能帮助其他同学快速上手!
🎯 一、PromQL 是什么?
PromQL 是 Prometheus 专用的查询语言,用于:
- 从时间序列数据库中提取指标数据
 - 实时计算聚合结果(如 CPU 使用率、错误率)
 - 在 Grafana 中生成可视化图表
 
🔍 二、核心概念:指标与标签
1. 指标(Metric)
指标是监控数据的名称,表示被测量的系统属性(如 http_requests_total)。
常见指标类型
| 类型 | 特点 | 示例 | 
|---|---|---|
| Counter | 只增不减(如请求总数) | http_requests_total | 
| Gauge | 可增可减(如内存占用) | node_memory_free | 
| Histogram | 统计数据分布(如延迟分桶) | request_latency_seconds_bucket | 
2. 标签(Label)
标签是键值对,用于细分指标维度(如按服务、实例、状态码过滤)。
示例:
http_requests_total{method="GET", status="200", instance="10.0.0.1:8080"}
 
method="GET":请求方法status="200":HTTP 状态码
🚀 三、PromQL 实战查询
1. 基础查询
- 直接查询指标:
node_cpu_seconds_total - 按标签过滤:
http_requests_total{status!="200"} // 非200请求 
2. 核心函数
| 函数 | 作用 | 示例 | 
|---|---|---|
rate() | 计算计数器增长率 | rate(http_requests_total[5m]) | 
sum() | 求和 | sum(api_errors) by (service) | 
histogram_quantile() | 计算百分位数(P99) | histogram_quantile(0.99, latency_bucket) | 
3. 典型场景
(1)计算 CPU 使用率
100 - (avg(rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)
 
(2)统计 5xx 错误率
sum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m]))
 
💡 四、学习技巧
- 在 Grafana Explore 中实验:实时修改查询并观察曲线变化。
 - 从现有仪表盘反向学习:点击面板的 Edit,查看背后的 PromQL。
 - 查阅官方文档:Prometheus 查询指南。
 
📚 五、推荐资源
- 书籍:《Prometheus 监控实战》
 - 工具:PromQL 在线练习
 
🎉 总结
PromQL 的核心是:
- 指标告诉你监控什么(如 
http_requests_total)。 - 标签告诉你如何细分(如 
{status="500"})。 - 函数告诉你如何计算(如 
rate()、sum())。 
下一步行动:
- 尝试在 Grafana 中复现本文的查询案例。
 - 关注我的专栏,后续更新更多监控实战内容!
 
                  
                  
                  
                  
                            
      
          
                
                
                
                
              
                
                
                
                
                
              
                
                
              
            
                  
					1591
					
被折叠的  条评论
		 为什么被折叠?
		 
		 
		
    
  
    
  
            


            