很多团队做监控,都会经历一个很相似的阶段。
一开始,系统没有监控,大家觉得不安心。
于是接 Prometheus,接 Grafana,接日志系统,接链路追踪,接云监控。慢慢地,CPU、内存、磁盘、网络、接口、数据库、中间件、业务指标都有了图。
再后来,每个团队都有自己的大盘。
运维有主机大盘。
SRE 有服务大盘。
研发有接口大盘。
DBA 有数据库大盘。
业务有订单大盘。
值班室还有一堆综合大屏。
看起来很完整。
但真正故障发生时,问题来了:大家还是不知道先看哪里。
这不是个小问题。
如果一个团队已经投入大量时间建设监控,但事故发生时仍然要靠几个人凭经验到处翻页面,说明监控系统解决了“有没有数据”的问题,却没有解决“如何用数据做判断”的问题。
大盘越多,不等于排障越快
大盘本身没有错。
Grafana 这类工具非常有价值。它能把指标可视化,让团队看到系统状态。很多基础监控、容量分析、性能趋势、日常巡检,都离不开大盘。
问题在于,很多团队把“建设可观测性”简单理解成“画更多大盘”。
于是每遇到一个问题,就新增一个图。每上线一个组件,就新增一个大盘。每次事故复盘,都有人说“这里应该补一个监控面板”。
久而久之,大盘越来越多。
但故障响应并没有因此明显变快。
原因很简单:大盘解决的是展示问题,不一定解决决策问题。
一张大盘能告诉你某个指标是多少,但它通常不会告诉你:
这个指标异常是否真的影响业务?
这个异常属于哪个系统对象?
它和其他异常有没有因果关系?
当前应该优先看哪个服务、哪个接口、哪个组件?
下一步应该查日志、Trace、事件,还是看下游依赖?
这些问题才是故障现场真正需要回答的。
如果一个工具只负责展示曲线,判断路径仍然靠人脑记忆,那大盘越多,反而可能让排障更慢。
因为值班人需要在更多页面之间选择。
事故现场需要的是入口,不是展厅
很多监控大盘像一个展厅。
它把各种系统状态都摆出来:资源、服务、接口、数据库、缓存、消息队列、业务指标。平时看起来很壮观,巡检时也能看出一些趋势。
但事故现场不是参观展厅。
事故现场更像一个指挥台。
你需要先判断:哪里出问题了?影响范围多大?谁应该处理?下一步看什么?
这就要求可观测系统不只是“把数据摆出来”,而是提供一个明确入口。
这个入口至少要有三个能力:
第一,它能把系统按真实结构组织起来。
不是把所有曲线平铺出来,而是知道哪些对象属于接口层、哪些属于服务层、哪些属于组件层、哪些属于基础设施层。
第二,它能表达健康状态。
不是让人自己盯曲线猜,而是能明确告诉你哪些对象正常,哪些对象异常,哪些对象没有数据。
第三,它能提供排障路径。
当一个对象异常时,系统应该把相关的指标、日志、链路、事件、仪表盘、上下游对象连接起来,让人沿着路径继续分析。
如果没有这三个能力,大盘再多,也只是更多展板。
为什么大盘会失效
大盘在故障现场失效,通常不是因为图画得不漂亮,而是因为它缺少几个关键上下文。
第一,缺少对象上下文
指标是底层信号,但人处理故障时关心的是对象。
比如 http_request_duration_seconds_p99 这条指标升高了。它本身只是一个指标。真正的问题是:哪个接口慢了?属于哪个服务?影响哪个业务?有没有下游依赖异常?
如果大盘只是展示指标,值班人就必须自己把指标翻译成对象。
这个翻译过程很依赖经验。
老同学知道某个 PromQL 对应哪个服务,知道某个 label 的含义,知道哪个图和哪个业务有关。新同学可能完全不知道。
一旦系统变大,这种知识就会变成隐性负债。
监控数据在那里,但理解数据的人不一定在。
第二,缺少层级上下文
故障经常不是单点异常。
一个支付接口成功率下降,可能同时伴随支付服务错误率升高、Redis 超时增加、MySQL 慢查询变多、某个机房网络抖动。
如果这些信息分散在不同大盘里,就很难快速判断影响范围。
值班人需要来回切:
先看业务接口大盘。
再看服务大盘。
再看数据库大盘。
再看缓存大盘。
再看主机和网络大盘。
再回到业务大盘确认是否恢复。
每个页面都有数据,但没有一个页面告诉你这些数据之间的层级关系。
系统缺少一张健康状态的全景图。
第三,缺少时间上下文
故障定位离不开时间。
什么时候开始异常?异常持续多久?是否和发布、配置变更、扩容、流量突增、上游故障发生在同一时间?
很多大盘可以切时间范围,但它通常只展示某类数据的时间序列。
真正需要的是把健康状态、指标变化、日志异常、Trace 异常、告警事件、变更事件放到同一个时间判断里。
否则,时间只能靠人脑对齐。
人脑对齐时间,是事故现场最浪费时间的事情之一。
第四,缺少行动上下文
看到一个图异常之后,下一步做什么?
这是大盘很少回答的问题。
比如一个服务错误率升高,大盘能显示错误率曲线,但不会自动告诉你:
该看哪类日志?
该查哪个 Trace 查询条件?
该跳到哪个数据库面板?
该看哪个变更事件?
该联系哪个团队?
这些动作通常依赖人的经验。
结果就是,同一个故障,资深同学 5 分钟能找到方向,新同学可能 30 分钟还在翻页面。
这不是个人能力问题,而是系统没有把排障路径沉淀下来。
大盘泛滥的几个典型症状
如果你的团队有下面这些现象,说明大盘已经开始从资产变成负担。
第一,首页收藏了一堆大盘,但值班人不知道哪个最重要。
每个大盘都有人维护,每个大盘都有存在理由,但故障时没有优先级。越关键的时刻,越容易陷入选择困难。
第二,同一个指标在多个大盘里重复出现。
不同团队各建各的页面,图表重复、口径不一致、阈值不一致。一个大盘显示正常,另一个大盘看起来异常,最后还要先讨论“看哪个为准”。
第三,告警消息只告诉你指标异常,不告诉你业务对象。
比如“P99 超过阈值”“错误率升高”“连接数异常”。收到的人还要再判断它对应哪个系统、哪个服务、哪个接口、哪个实例。
第四,排障时不断在多个系统之间复制条件。
服务名复制到日志系统。TraceID 复制到链路系统。实例地址复制到数据库面板。时间范围在多个页面手动对齐。
这些动作本质上都是机器可以做的,但因为系统没有串起来,只能靠人重复操作。
第五,事故复盘总是补大盘,但下次事故还是不知道先看哪里。
这说明复盘只是在补数据展示,没有沉淀排障路径。
真正需要治理的不是图表数量,而是决策路径
很多团队意识到大盘太多之后,会开始做大盘治理。
比如清理没人看的大盘,统一命名,调整目录结构,合并重复图表,规范变量和标签。
这些工作有必要。
但它们只能解决一部分问题。
真正要治理的,不是大盘数量,而是故障时的决策路径。
你需要回答:
当业务指标异常时,第一入口在哪里?
如何看到当前影响面?
如何从业务对象下钻到技术对象?
如何从接口下钻到服务、日志、Trace、数据库和事件?
如何让新人也能按同样路径排查?
如何把这些路径变成平台能力,而不是只存在某个人脑子里?
如果这些问题没有答案,大盘治理很容易变成目录整理。
看起来更整齐了,但事故发生时仍然不知道先看哪里。
Flashcat 灭火图解决的是“先看哪里”
Flashcat 的灭火图不是为了替代所有大盘。
这点很重要。
大盘仍然适合做详细指标展示、趋势分析、容量分析、性能分析。灭火图要解决的是另一个问题:故障发生时,团队应该从哪里进入。
灭火图把 IT 系统拆成一组观测对象。
这些对象可以按层级组织:
功能接口。
微服务。
标准组件。
基础设施。
每个对象有自己的健康状态。健康就飘绿,异常就飘红,未知就变灰。
底层对象异常后,状态可以聚合到上层对象。这样值班人不需要从几十张大盘里找异常,而是先看一张全局健康图。
哪里红了,先看哪里。
这就是灭火图在故障现场的第一个价值。
它把“先看哪里”这件事从人的经验,变成产品入口。
下钻解决的是“下一步看什么”
知道哪里异常之后,下一步仍然很关键。
灭火图通过下钻规则,把对象和相关数据连接起来。
一个接口卡片,可以关联接口黄金指标、网关日志、Trace 查询、错误码分布、相关服务卡片。
一个微服务卡片,可以关联服务指标、应用日志、调用链、依赖拓扑、发布事件。
一个 MySQL 卡片,可以关联实例指标、慢查询日志、连接池、依赖它的服务。
一个网络链路卡片,可以关联 Pingmesh 数据、链路质量、机房和运营商维度。
这样,值班人看到卡片飘红后,不需要再从头思考“接下来打开哪个系统”。
下钻入口已经在卡片上。
更重要的是,下钻可以把卡片标签自动注入查询条件。
比如卡片有 service=order-service,下钻到日志时就自动带上服务名;卡片有 address=10.0.1.5:3306,下钻到数据库仪表盘时就自动带上实例地址;卡片有接口路径,跳到 Trace 时就可以带上对应 operation 或查询条件。
这件事减少的是事故现场大量机械操作。
它也减少了出错概率。
很多排障错误不是判断错了,而是时间范围选错了、服务名输错了、实例标签没对上、日志字段和指标 label 不一致。
把这些连接固化到下钻规则里,排障路径就更稳定。
大盘应该成为下钻目标,而不是唯一入口
这也是我认为很多团队需要转变的地方。
过去,大盘是监控入口。
大家先打开一个大盘,然后在大盘里找异常。如果找不到,再换另一个大盘。
但在复杂系统里,更合理的方式是:灭火图作为故障入口,大盘作为下钻目标。
也就是说,先从对象健康状态进入,再进入对象相关的大盘看细节。
这样大盘的价值反而会更清晰。
你不需要把所有大盘都放到值班首页,也不需要让新人记住每张大盘的用途。大盘可以服务于具体对象和具体场景。
MySQL 实例卡片下钻到 MySQL 大盘。
Redis 集群卡片下钻到 Redis 大盘。
订单服务卡片下钻到服务性能大盘。
支付接口卡片下钻到接口质量大盘。
这时,大盘不是被废弃,而是被放到了正确位置。
它不再承担“全局入口”的职责,而是承担“细节分析”的职责。
AI 也需要这个入口
现在很多团队希望用 AI 帮忙排障。
但 AI 排障遇到的第一个问题,和人一样:不知道先看哪里。
如果只是把几条告警文本、几段日志、几张曲线丢给 AI,它只能基于碎片做推测。
它很难知道这个异常对象属于哪个业务系统,和哪些服务有关,应该优先看哪些指标,哪些日志字段有意义,哪些 Trace 查询条件能定位问题。
灭火图对 AI 的价值,在于它提供结构化上下文。
AI 可以知道:
当前飘红的是哪个对象。
这个对象在哪个分层。
它的健康指标是什么。
它有哪些下钻路径。
它关联哪些日志、Trace、仪表盘和事件。
它上层和下层对象的状态是什么。
有了这些信息,FlashAI 才能更像一个懂系统的助手,而不是一个只能解释日志文本的聊天窗口。
所以,灭火图不仅是人的故障入口,也是 AI 的故障入口。
这就是它在 AI-Ready 可观测性里的价值。
怎么判断你的大盘体系是否需要升级
可以用几个问题自查。
第一,值班人收到告警后,是否能在 1 分钟内知道应该打开哪个页面?
如果不能,说明入口不清晰。
第二,业务异常时,是否能快速看到影响的是接口、服务、组件还是基础设施?
如果不能,说明缺少层级化健康视图。
第三,一个异常对象是否有固定的排查路径?
比如订单服务异常时,大家是否知道先看哪些指标,再查哪些日志,再看哪些 Trace,再关联哪些事件。如果每次都靠不同人自由发挥,说明路径没有沉淀。
第四,新人能不能按平台入口完成初步排查?
如果新人只能等老同学上线指挥,说明知识还在人脑里,没有进入系统。
第五,AI 分析是否总是停留在泛泛解释?
如果 AI 只能说“建议查看日志和指标”,却不能围绕具体对象分析,说明缺少上下文组织。
这些问题的答案,比“大盘数量有多少”更能反映可观测建设成熟度。
一套更合理的建设顺序
如果你已经有很多大盘,不建议一上来推倒重来。
更现实的方式是分三步。
第一步,保留现有大盘,但重新梳理核心系统对象。
先选一个最关键的业务系统,把它拆成接口、服务、组件、基础设施四层。不要试图一次覆盖所有系统。
第二步,用灭火图建立全局健康入口。
通过卡片规则,把核心接口、微服务、数据库、缓存、消息队列、网络链路生成卡片。先让首页能回答“哪里异常”和“影响范围多大”。
第三步,把已有大盘接到对象下。
不要浪费已有建设成果。把 Grafana 或 Flashcat 仪表盘作为下钻目标,挂到对应卡片上。再逐步补日志、Trace、事件和 AI 分析入口。
这样做的好处是阻力小。
团队不需要放弃过去的监控资产,只是把它们重新组织到更适合故障处理的入口下面。
这才是大盘治理真正应该走的方向。
不是少画图,也不是多画图。
而是让每张图都出现在正确的排障路径里。
最后
监控大盘越做越多,故障时还是不知道先看哪里,这不是某个团队的问题,而是很多可观测体系发展到一定阶段后的必然问题。
第一阶段,团队缺数据,所以要补采集、补指标、补日志、补链路。
第二阶段,团队缺展示,所以要建大盘、建报表、建告警。
第三阶段,团队缺的是决策路径。
也就是:当异常发生时,系统能不能告诉你哪里有问题、影响范围多大、下一步应该看什么。
Flashcat 灭火图解决的正是第三阶段的问题。
它不是要取代大盘,而是要把大盘、日志、Trace、事件、告警、AI 放到一条围绕观测对象展开的排障路径里。
大盘仍然重要。
但大盘不应该是唯一入口。
在复杂系统里,真正的入口应该是系统健康状态,是观测对象,是那张能告诉你哪里着火、下一步看哪里的灭火图。
如果你的团队已经有很多大盘,但故障时仍然依赖少数专家指挥排查,那下一步不一定是继续画图。
更值得做的是:选一个核心系统,把它的大盘、日志、链路和事件重新挂回到观测对象上,建设一张真正能用于故障响应的灭火图。
这一步做完,可观测性才会从“看得见”走向“用得上”。