Prometheus 通过 Grafana 实现指标可视化与趋势分析,需配置 Prometheus 数据源、编写反映业务含义的 PromQL 查询(如 rate/increase/sum by)、构建支持下钻和历史对比的趋势面板,并分层设计可复用的监控看板。

Prometheus 本身不提供图形化界面,但通过与 Grafana 集成,能高效完成指标数据的可视化与趋势分析。关键在于合理配置数据源、设计有意义的查询表达式,并利用 Grafana 的时间序列分析能力挖掘变化规律。
配置 Grafana 连接 Prometheus 数据源
确保 Grafana 能稳定读取 Prometheus 指标是基础。在 Grafana 中添加数据源时:
- 类型选择 Prometheus,URL 填写 Prometheus Server 的访问地址(如
http://prometheus:9090) - 建议启用 Direct 访问模式(避免经代理转发导致标签丢失或延迟)
- 可设置 Scrape interval 为与 Prometheus 全局抓取周期一致(如 15s),提升查询响应一致性
- 测试连接成功后,保存并设为默认数据源,后续面板将自动继承该配置
编写可读性强的趋势型 PromQL 查询
可视化效果好坏,很大程度取决于 PromQL 是否准确反映业务含义。趋势分析常用以下模式:
- 用
rate()或irate()计算单位时间变化率(如rate(http_requests_total[5m])表示每秒请求数) - 用
increase()查看某段时间内绝对增长量(适合对比日/周环比) - 叠加
sum by()、avg by()等聚合函数,按服务、实例、状态码等维度分组观察趋势差异 - 避免裸用
count()或无范围向量的指标,易因采样点缺失导致趋势失真
在 Grafana 中构建趋势分析面板
一个有效的趋势图不只是折线,还需支持下钻与上下文比对:
- 图表类型优先选 Time series(新版 Grafana 默认),开启 Legend 并用
{{job}}、{{instance}}等变量自动标注图例 - 启用 Tooltip → Multi 模式,悬停时显示各时间点多个指标值,便于横向对比
- 添加 Compare mode(如 “Previous day” 或 “7d ago”),一键叠加历史同期曲线
- 对关键指标(如错误率)配置 Thresholds 和颜色映射(如 >5% 标红),让异常趋势一目了然
建立可复用的趋势监控看板
面向不同角色(SRE、开发、产品)应有分层看板,避免信息过载:
- 顶层看板聚焦 SLO 相关指标:HTTP 错误率、P95 延迟、服务可用性,使用
histogram_quantile()计算分位数 - 中间层按服务拆分,展示 CPU 使用率、内存增长、队列积压等资源趋势,配合
deriv()判断斜率是否持续恶化 - 底层支持动态变量(如
$service、$env),点击某条曲线可下钻到具体实例级指标 - 导出看板 JSON 并纳入 Git 版本管理,便于环境间同步与变更审计

















