资讯动态

从告警聚合到全链路分析:观测云故障中心与可观测性实践

发布时间:2026/9/9 7:52:46 来源:尧图企业网站定制
1. 故障中心把“告警轰炸”压缩成“一次定位”1.1 故障中心到底解决了什么问题这次观测云的产品更新最让我觉得值得聊的是故障中心这块。很多团队在监控这块遇到的最大痛点不是“监控不够多”而是“监控太多了”生产环境一抖动钉钉群、企微群、邮件同时炸开告警一条接一条但真正的问题到底是什么往往要靠人肉翻聊天记录才能拼出来。这本质上是因为指标、日志、链路、告警散落在不同的模块里彼此之间没有关联出了问题只能按着猜测来回跳转。故障中心做的事情简单说就是把一次故障当作一个对象来管理。告警触发、事件产生、相关指标异常、日志报错、链路调用失败全部自动汇集到同一条故障记录里并且能展示这条故障从产生到恢复的完整时间线。以前排查一个问题可能要在不同页面切换几十次现在可以在故障详情页里按时间顺序把所有关联数据都摊开看确实省事不少。从使用逻辑上讲故障中心很像一个“事件的聚合器”。底层的数据源还是你已有的那些指标、日志、链路数据但故障中心会按照触发规则把散落的数据串起来形成有因果关系的上下文。你可以把一次故障理解为“一个案子的档案袋”里面装着和这个案子有关的全部证据而不是像以前那样证据散落在各个档案柜里得自己一个个去翻。1.2 故障中心的核心使用流程实际使用时故障中心的入口逻辑比较简单。系统会根据你配置的告警策略、异常检测规则自动识别出“疑似故障”的事件。在这个基础上你可以手动去建立故障也可以把多条关联事件合并成一条更完整的故障记录避免重复处理。我建议团队内部明确一个分工告警是“提出问题”故障则是“跟踪解决问题”两者不要混在一起否则流程上依然会乱。具体操作步骤上我一般是这么走的先确保告警策略里开了“自动创建故障”开关或者允许异常事件升级为故障。故障产生后在故障列表中筛选“待处理”状态指派给具体的负责人。排查过程中直接在故障详情页里打开关联指标、日志、Trace数据按时间线来回拖动确认问题发生点和恢复点。处理完成后更新故障状态并填写复盘记录方便后续追溯。这里有一点要注意故障中心虽然能自动关联上下文但关联的准确度取决于你接入的数据质量。如果数据标签Tag本来就打得很乱不同服务之间没有统一的命名规范那么自动关联效果就会大打折扣。所以在推进故障中心之前我强烈建议先花时间梳理一次数据采集的标签规范这比后续在平台里做各种配置更重要。1.3 我的实操体会我第一次用故障中心的时候其实也有一个适应过程因为它不是一个“点击就能立刻变好用”的功能而是需要你提前把规则体系搭建起来。比如你需要思考什么级别的异常才值得进入故障中心如果什么都往里面塞故障中心又会变成第二个告警台反而增加噪声。我的建议是从“故障状态机”的角度来设计初始编排时只把 P1 和 P2 级别的告警也就是影响核心业务的高优问题自动升级为故障P3、P4 级别的告警继续走普通通知渠道。这样故障中心里留下的都是真正需要跨团队协作、需要高层关注的问题。等团队适应了这套流程再逐步把更多事件类型纳入进来不要一上来就贪大求全。另外故障时间线的价值比很多人想象的要大。以前做复盘报告时间点全是靠回忆什么时候告警、什么时候介入、什么时候恢复经常对不上。有了故障中心之后整条时间线都由系统自动记录复盘时直接拿时间线当证据链很多当时拍脑袋的论断都会被数据纠正。我个人觉得这才是故障中心最值钱的地方。2. 错误分析把隐性问题变成可追踪的清单2.1 错误分析和传统监控的区别错误分析在观测云里是独立一块但它和我们平时说的“看错误日志”有明显的区别。传统做法是从日志平台里搜“ERROR”关键字然后手动数有多少条这种做法的问题在于日志格式千奇百怪同一类错误在不同服务里打印的文本可能完全不同你很难精准归并同类问题。而错误分析模块会基于错误的指纹信息错误类型、堆栈框架、错误信息等自动聚合把同源错误归到一起直接告诉你这类错误影响多少个用户、触发了多少次、主要集中在哪几个服务上。这相当于从“逐条看日志”升级成了“按问题看趋势”。对于后端 API 的错误你可以看到错误率曲线、错误堆栈、受影响的耗时数据对于前端的 JS 报错、资源加载失败RUM 数据也会汇入错误分析让你知道哪个页面的哪段代码出了问题在哪个浏览器上最容易复现。这些信息合在一起对定位问题的帮助非常直接。2.2 错误聚合的常见逻辑错误聚合的核心是通过“错误指纹”来去重。指纹的生成方式在不同的模块里会略有差异但大致会考虑错误类型、错误信息的前几行、堆栈里关键帧的组合。观测云默认的聚合策略一般已经能覆盖大部分场景但有两个点我建议团队根据自身情况调一下一个是堆栈聚合的深度另一个是是否按业务维度比如订单号、用户ID拆分统计。举个例子一个 Java 服务报 NPE空指针异常如果堆栈每一帧都计入指纹那么即使同样都是 NPE只要调用栈里的业务方法不同就会被拆成多条错误记录。这样的好处是精细化坏处是列表会变得很碎。反过来如果只按异常类型聚合不同业务的 NPE 又会混在一起不方便排查。实际操作中我的习惯是先用较粗粒度的聚合找热点再下钻到单个服务维度细看而不是一上来就追求精确归类。2.3 从错误分析到问题治理的一个思路错误分析不能只停留在“看了”这个层面最好能和告警、故障中心联动起来。观测云允许针对错误指标配置告警规则比如某条错误记录的错误率在5分钟内超过阈值就触发告警并自动建单。我建议团队把这条链路打通因为很多时候线上错误是无声无息的用户不点开业务根本感知不到等到用户投诉往往已经很晚了。我之前遇到过一次比较典型的案例某个订单查询接口的错误率其实一直有抬升趋势但总量不大业务流量高峰期看起来没那么明显。后来通过错误分析按“版本号”拆分发现是某个新发布版本里多了一个参数校验导致部分老的调用方请求失败。如果没有错误分析这种按不同维度聚合下钻的能力这种隐藏问题是很难快速浮现的。所以错误分析不是一个“看板”而是一个问题的入口数据越规范问题暴露越早。3. 指标分析查询、对比与异常检测的正确打开方式3.1 指标数据的来源与统一建模观测云的指标数据来源比较广基础设施层面的 CPU、内存、磁盘、网络应用性能监控层面的请求量、错误率、延迟还有通过自定义采集器上报的业务指标比如订单量、支付成功率这些都会落到统一的指标库里。统一建模的好处在于你可以用一套查询和分析逻辑去处理所有指标数据不用在不同系统之间切换也方便做跨层级的对比分析。实际使用中指标分析的重点不在于“能看到多少指标”而在于“能不能在合适的时间找到合适的指标”。观测云里支持按标签去过滤和分组比如按主机、按服务名、按集群维度、按版本号这些标签采集得越全分析的灵活度就越高。我的建议是在接入阶段就把主机标签、服务标签、环境标签、版本标签尽量打全后面做指标下钻会顺畅很多。3.2 指标查询与对比的具体用法在指标分析界面里最常见的操作就是选择一个指标设定时间范围然后按某种聚合方式查看曲线。聚合方式一般有平均值、最大值、最小值、求和等不同场景选不同聚合。比如说看 CPU 使用率一般看平均看磁盘 IO 峰值一般看最大看业务流量总量一般用求和。这个选择看似基础实际上很多刚接触的人容易搞混导致看到的数据和预期不符。做对比分析时观测云支持把不同时间范围或不同维度的数据放在同一张图里对比。比如排查“这次发布后响应时间变长了”就可以选发布前后两个时间段做对比同时按“版本号”分组一眼就能看出是哪个版本引入了延迟。我一般还会配合“环比”“同比”功能尤其是业务有周期性波动的场景环比能帮你排除自然涨跌的干扰直接聚焦异常变化。指标对比时还有一点值得注意如果两只曲线来自于不同的指标名但标签结构相似你也可以做关联对比比如把业务请求量和容器 CPU 放在一张图里看。这种跨指标关联的能力在排查“是不是资源不够导致业务卡顿”这个问题时特别好用。3.3 指标异常检测的实战建议异常检测方面观测云提供了静态阈值和动态基线两种方式。静态阈值简单直接比如磁盘使用率超过 90% 就告警这种方式适合资源类指标。动态基线则更适合业务指标因为它能学习历史的周期性规律自动判断“当前值是否偏离正常区间”。举个例子一个交易系统在每天凌晨会有定时任务带来固定的流量高峰如果用固定阈值要么频繁误报要么阈值设高了漏报。动态基线会把这部分周期性波动当成“正常情况”只有明显偏离时才触发告警。我在实际配置动态基线时踩过几个坑这里可以分享一下。第一训练数据最好包含完整的业务周期至少保留一周以上的历史数据否则基线不准确。第二敏感度设置要逐步调不要一开始就调到“特别灵敏”否则异常点会多到让你怀疑人生。第三配置完成之后一定要做一次模拟测试可以用历史数据来回放一遍看看哪些点会触发告警是否合理。没有任何一个异常检测算法是万能药越了解自己业务的形态检测效果越好。我之前还遇到过一次比较有意思的情形某个业务在做活动预热流量比平时翻了几倍业务同学很开心但监控系统一直在报“流量异常”。我一开始以为是阈值没调好后来检查才发现是动态基线没有排除活动期间的样本导致基线被“污染”了。把活动时段的数据单独打标签并调整基线训练范围之后告警就恢复正常了。这个经验说明动态基线不是“配置一次就永久正确”而是需要结合业务节奏持续迭代的。4. 基础设施从资源视角到全局视角的归位4.1 基础设施监控的核心统一资源模型基础设施监控在可观测性体系里往往被当成“传统监控”大家都觉得不新鲜。但我认为基础设施监控真正的价值不在于看单个主机的 CPU 高不高而在于把资源数据和业务数据放在一个坐标系里解释。观测云的基础设施模块会把主机、云账号、容器、进程等都抽象为统一资源对象并且打上标签。这意味着你可以从一台主机出发查到它上面运行了哪些进程、部署了哪些容器、归属哪个服务然后再跳到这个服务的请求量和错误率曲线。我以前排查过一个案例后端服务响应时间飙高我先不看法链路而是先从基础设施列表里找到这台服务的宿主机看 CPU、磁盘、网络的状态很快就定位到是磁盘 IO 被打满了。这个排查路径在以前需要登录服务器看 top、iftop再回监控平台查业务指标来回折腾。现在基础设施和业务数据已经打通在一个界面里就能完成所有操作效率提升非常明显。4.2 云账号同步与资源标签管理如果你用了云主机我建议一定把云账号同步配置好。观测云支持同步云平台上的资源信息把实例规格、计费状态、网络信息等拉进来并定期同步。同步之后你还可以把账号下的标签统一管理比如按部门、按项目、按环境打标签。标签体系一旦统一后面无论是做资源成本的归类还是做故障排障的过滤都会轻松很多。这里有个经验要提醒一下云账号同步来的资源和你在主机上安装的采集器上报的数据本质上是两条数据链路需要靠标签把它们关联起来。如果云侧的实例 ID 和采集器上报的主机名不一致就可能出现“云资源列表里有这台机器但指标图是空的”的情况。处理方式一般是给采集器配置指定的主机名对齐规则或者在采集器侧打上和云侧一致的标签。这个环节看起来小但没做好的话前面说的“统一关联”就无从谈起。4.3 基础设施巡检的自动化玩法巡检这个功能很多人可能平时用得不多但我觉得这恰恰是基础设施监控里性价比最高的一部分。观测云提供了巡检模板可以定时检查主机存活状态、磁盘空间、内存使用率等发现问题就直接出报告不用额外配置复杂的监控规则。对大集群来说人工巡检已经不现实基础巡检模板能把很多重复劳动自动化替换掉。自定义巡检规则时我有几个心得一是巡检频率不要太高主机存活的巡检每 5 分钟一次就够了磁盘空间每天一次也足够太高频率反而会占用资源二是巡检规则要区分环境测试环境的磁盘空间和生产环境的磁盘空间告警阈值肯定不一样三是巡检结果最好接入通知渠道让对应负责人收到否则巡检报告只是存在那里也没意义。自动化的目的不是替代人而是让人把精力花在真正需要思考的问题上。5. 场景让数据从“能看”变成“会用”5.1 场景在观测云里的定位场景说白了就是自定义的观测视图你可以把它理解成一块可自由组合的数据画布。观测云内置了不少预设场景模板比如主机监控、容器监控、应用性能分析等打开就能用。但真正用得好的团队都会针对自己的业务去搭建专属场景因为每个团队关心的指标、关注的维度其实差异很大。我见过不少团队把这个能力当作“可视化大屏”来用只用于领导汇报。这固然没错但我认为场景最核心的价值是帮助你建立“工作台”。比如 SRE 团队可以建一个“核心服务健康总览”把支付成功率、订单量、核心 API 延迟、关键队列堆积量放到同一个页面里业务运营可以建一个“活动实时看板”只看活动期间的流量和转化。每个团队都会有自己的工作台进去之后 10 秒内就能判断当前系统是否正常这才是场景的正确用法。5.2 场景组件的选型与布局思考搭建场景的时候组件选型直接决定看板的可用性。我比较常用的是时序图、表格、Top 榜和散点图时序图适合看趋势表格适合看明细Top 榜适合看排名点击率等偏分布的指标用柱状图更直观。不要在一个场景里堆太多组件信息密度过大的时候反而什么都看不清楚。布局上建议设计层级一级场景看宏观健康度放最重要的几个指标方便团队每天打卡二级场景看服务明细按服务维度拆分支持下钻三级场景看单机或单实例用于排查深层次问题。这样从宏观到微观形成漏斗定位问题时思路会非常清晰不会在一个大而全的看板里迷路。联动功能是另一个我要重点提的。观测云场景里可以配置变量比如“环境”“服务”“区域”组件都绑定这些变量。用户进入场景后通过下拉框切换环境整个看板的所有图表都会同步变化。我第一次在场景里配上变量联动之后有一种“数据从静态变成活起来”的感觉强烈建议所有长时间使用的场景都配上变量。5.3 场景的分享、嵌入与权限管理场景搭好之后还有一个关键点是分享机制。观测云支持把场景通过链接分享给团队成员也可以生成一个只读链接给外部合作方。分享的时候要注意权限设置不要把带内部主机名、Token 信息的敏感场景随便公开出去。对需要长期展示的看板可以考虑嵌入到大屏系统里通过 iframe 方式接入运维大屏、作战室大屏都能用。在团队协作中我还会额外注意场景的版本管理。虽然观测云目前没有像代码仓库那样精细的版本控制但导出导入 JSON 的功能实际上已经能实现“备份”的效果。每次大调整之前我会先导出一份 JSON 存档改乱了再导回来。这个习惯帮我避免过好几次不小心删掉组件导致看板空白的情况。6. 常见问题与排查技巧实录6.1 数据接入之后看不到指标怎么办这类问题是最常见的一般从三个方向排查。第一确认采集器是否正常运行到基础设施列表里看看有没有对应主机上报如果没有说明采集器没装好或者网络不通。第二确认时间范围观测云的默认时间范围可能是最近 15 分钟如果你看的是几个小时前的数据切到正确的时间窗口就能看到。第三确认标签和指标名很多时候数据其实已经上报了只是被筛选条件过滤掉了清空筛选条件再看看。我自己的习惯是先在“指标”页面搜索框里输入指标名看是否出现联想结果。如果搜不到大概率是数据没采集上来如果能搜到但图是空的再去查时间范围和标签。这个排查顺序可以省掉很多绕路。6.2 告警通知迟迟收不到是怎么回事告警通知出问题绝大多数不是平台的问题而是配置的“静默规则”“分组规则”和“通知渠道”三者之间有冲突。我遇到过最典型的场景是团队里有人为了避免夜间打扰设置了全局静默结果第二天所有告警都没收到。排查的时候建议先看告警事件列表中该条告警的状态是触发了但没发送通知还是根本没触发。如果已经触发但通知没到优先检查静默规则和通知渠道配置如果压根没触发那就需要看告警条件是否满足、持续时间是否达到设定值。另一个容易忽略的问题是告警组和通知人的权限。不同成员可能属于不同团队如果告警组里没有包含相应成员或者成员已经离职未移除通知也会落到一个空空如也的列表里。每过一段时间梳理一次告警组和成员名单属于投入很小但收益很明显的维护工作。6.3 错误分析里堆栈信息不全如何优化堆栈信息不完整一般有两个原因。一是采样率设置为了控制存储成本APM 工具默认往往只会保留一部分调用链的完整堆栈错误分析里看到的堆栈可能只是采样样本二是没有上传对应的源码映射文件比如前端的 SourceMap、后端的符号文件导致堆栈无法还原到业务代码层。我的建议是对核心链路和容易出错的模块把采样率调高一些前端项目构建时配置好 SourceMap 的上传且注意不要在生产环境暴露可被任意访问的 SourceMap 地址避免引入安全问题。堆栈信息越全错误分析的价值越大这个投入值得做。6.4 从更新整体来看我的一些印象这次观测云把故障中心、错误、指标分析、基础设施、场景这些模块放在一起更新我能明显感觉到产品在用一条主线把它们串起来从发现问题、定位问题、处理问题、到团队协作每个环节都有对应的数据支撑。对于一个想建立完整可观测性体系的团队来说这确实是一个更完整的解决方案。具体到落地环节我建议先从基础设施和指标分析入手把数据和标签建好再逐步接入 APM、日志、RUM沉淀出组织结构化的问题处理流程最后再通过场景和故障中心把日常协作和紧急响应的闭环跑起来这样一步步走比一次性引入所有模块要稳得多。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价