很多人第一次接触监控体系时,印象通常是几张 Grafana 图表,再加几条告警规则。表面上看,好像监控系统就是把数据采上来、画出来、超阈值时发个通知。但如果只这样理解,就会忽略它背后真正重要的东西:你到底在监控什么、这些指标怎么产生、为什么这些图能帮助你判断系统是否健康。

Prometheus 与 Grafana 的价值,不只是“一个负责采集,一个负责展示”,而是在帮助我们把系统运行状态结构化地表达出来,让性能、容量、错误和趋势都能被持续观察。

监控体系为什么不能等出问题了再补

因为监控体系本质上是在回答两个问题。

第一,系统现在健康吗。

第二,如果不健康,最早能从哪里看出来。

这两个问题都要求你在平时就已经有足够的指标模型,而不是出事以后再临时猜测应该看什么。如果没有提前设计好指标,很多问题在线上第一次出现时,你甚至连观察入口都没有。

所以监控不是事故之后的补丁,而是系统上线前就该具备的基础能力。

Prometheus 更像在做什么

Prometheus 更像是时间序列指标系统的核心底座。

它负责抓取指标、存储时间序列数据、支持基于标签的查询和聚合,再配合规则引擎做告警判断。它真正强大的地方,是让你能够围绕“某个服务、某个接口、某个实例、某种状态码”这些维度去观察趋势变化。

从这个角度看,Prometheus 管的不只是数据,而是系统运行状态的结构化表达。

Grafana 的价值不只是画图

Grafana 最直观的作用当然是展示图表,但更重要的是,它把原本分散的指标查询和时间序列结果组织成可理解的观测面板。

例如一个服务的 dashboard 里,可能会同时放请求量、错误率、延迟分位数、CPU、内存、依赖调用情况和告警概览。这样一来,工程师看到的就不再是零散数据,而是一个相对完整的运行状态切面。

所以 Grafana 的价值并不只是美观,而是在帮助团队形成统一的“看系统”的方式。

一个监控体系真正难的地方在哪里

难点往往不在工具部署,而在指标设计。

如果指标定义混乱、命名不统一、标签维度失控,最后即使采到了很多数据,也很难真正支撑排障和治理。反过来,如果你从一开始就知道哪些指标能体现流量、哪些能体现稳定性、哪些能体现资源压力,那么监控体系才会越来越有判断力。

也就是说,工具只是载体,指标模型才是灵魂。

应该重点关注哪些指标类型

虽然具体系统不同,但很多服务都会绕不开这几类核心指标。

  • 流量:请求数、QPS、并发数
  • 稳定性:错误率、状态码分布、超时数
  • 性能:平均延迟、P95、P99
  • 资源:CPU、内存、磁盘、网络
  • 依赖:数据库、缓存、消息队列、下游服务调用状态

这些指标组合起来,基本就能构成一个服务健康度的基础轮廓。

一个常见误区

一个常见误区是面板做得越来越多,但没有明确的观测目标。最后 dashboard 很华丽,真正出问题时却不知道先看哪张图。

更合理的方式,是围绕具体问题设计视图。例如“这个服务现在有没有异常”“这次延迟上升是资源问题还是依赖问题”“错误率升高集中在哪个接口”。只要问题导向清晰,监控面板才真正有价值。

一个值得自己做的小练习

给你当前最熟悉的一个服务,试着设计一个最小监控面板,要求至少包括。

  • 请求量
  • 错误率
  • 延迟分位数
  • CPU 和内存
  • 一个关键下游依赖指标

然后问自己:如果今晚这个服务出问题,我能不能仅凭这几张图先收缩出问题范围。如果答案是否定的,说明你的监控模型还需要继续补强。

小结

Prometheus 与 Grafana 并不只是“监控常用工具”这么简单。前者帮助系统采集和组织时间序列指标,后者帮助团队把这些指标转化成统一、可读、可判断的观测面板。真正决定监控体系价值的,不是图画得多漂亮,而是你能否通过这些指标快速理解系统健康状态,并在问题刚出现时尽早发现它。