【PromQL 快速入门】从零掌握 Prometheus 指标查询

📌 前言

最近在项目中接触了 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]))

💡 四、学习技巧

  1. 在 Grafana Explore 中实验:实时修改查询并观察曲线变化。
  2. 从现有仪表盘反向学习:点击面板的 Edit,查看背后的 PromQL。
  3. 查阅官方文档Prometheus 查询指南

📚 五、推荐资源


🎉 总结

PromQL 的核心是:

  1. 指标告诉你监控什么(如 http_requests_total)。
  2. 标签告诉你如何细分(如 {status="500"})。
  3. 函数告诉你如何计算(如 rate()sum())。

下一步行动

  • 尝试在 Grafana 中复现本文的查询案例。
  • 关注我的专栏,后续更新更多监控实战内容!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值