1-5-10故障治理体系 根因分析快速定位落地实践 邹晟 公司职位去哪儿网-基础平台DevOps技术专家 2017年加入Qunar,近期一直在做稳定性治理方面的事情,包括1-5-10工具体系的建设和落地,其中包含根因分析、预案中心、预案演练等 故障治理1-5-10框架 目录 根 因 分 析 产 品 设 计 与 效 果 根 因 分 析 架 构 设 计 与 落 地 难 点 解 决 未 来 规 划 故障治理1-5-10框架 故障治理1-5-10框架-背景 故障治理1-5-10框架-定义与度量 单一责任方数据呈现->责任方、受影响方各自呈现单一故障率维度指标->故障率指标与MTBF、MTTR指标并重结果指标与过程指标共同呈现->结果指标与过程指标分别呈现 故障治理框架-稳定性度量 故障治理1-5-10框架-定义与度量 根因分析定位辅助业务同学达成故障期间5分钟定 位的目标 故障治理1-5-10框架-经验总结 根因分析产品设计与效果 根因分析产品设计与效果 设计目标 精 准 快 速 触 达 ü故 障 场 景 : 当 故 障 发 生 时 自 动 把根 因 分 析 结 果 推 到 群 里 ü核 心 告 警 场 景 : 当 用 户 点 击 到 告警 页 面 自 动 分 析 已 经 完 成 并 自 动展 示 结 果 , 提 升 排 障 效 率 根因分析产品设计与效果-故障时根因结果自动推群 ü推荐时机:当有同学申报故障,自动建群并拉根因机器人进群时,根因系统自动分析受影响应用、业务线相关的分析报告,并做好总结、然后推荐 根因分析产品设计与效果-告警自动展示根因结果 ü展示时机:当用户通过手机端/网页端跳转到告警页面时 ü分析时机:当核心业务发生告警时,后台自动分析并保存分析结果 BizDevOps企业峰会·城市行-北京站 根因分析产品设计与效果-根因准确率 根因分析架构设计与落地难点解决 根因分析架构设计 根因分析架构设计 根因分析架构设计-应用维度异常分析 middleware分析 runtime分析 KVM&容器: CPU、网络JVM:full GC异常指标单机分析宿主机分析单机分析 应用获取对应namespacemysql报警redis报警mysql慢查询同比环比redis大key 异常日志分析 发布事件配置变更压测event分析 根据trace id从es查询异常日志异常类型权重配置异常日志同比、环比 根因分析架构设计-单机分析 根因分析架构设计-单机分析 根因分析架构设计-权重模型 02代表当前故障中此应用的异常所占的权重比,表示了此应用影响当前故障的概率大小 经验权重,根据近期故障原因分布设置,比如发布、配置变更等权重最高3,异常日志权重设置的是1 具体分析到的异常case权重,根据各个根因的严重级别来对自己进行升级,避免真正的根因被淹没掉 03强弱依赖可以明确表明,A应用调用B应用的m接口是强依赖还是弱依赖,根据此信息可以确认影响概率 根因分析落地难点 根因分析落地难点-基础指标干扰多 问题:误报、闪报、阈值配置不合理等•人工治理 •自动识别无效告警、不做分析(按周、天维度缓存无效告警) 问题:复合指标中有些指标对结果无影响函数中去除无影响的指标,e.g: asPercent只保留分子指标、exclude去除排除的指标等 问题:分析的trace包含非核心链路根据业务优先级:业务线自定义链路T值、核心链路 根因分析落地难点-trace筛选应用复杂 有异常应用-权重计算 •异常应用权重:按出现频次比例计算,例子中app c在每个trace都有,因此比例100%,计算时100% x权重系数 •空间权重系数:按照告警类型(error、timer )对距离告警应用(根应用)的app进行距离加权, error类型的按照链路递归越底层越可能是根因,系数越大 根因分析落地难点-trace筛选应用复杂 Timer类型告警分析策略 筛选告警应用下游耗时大于应用1/2耗时的span应用,并进行推荐 Timer类型分析准确率:80%以上 根因分析落地难点-trace筛选应用复杂 通用分析策略 针对告警应用链路上的应用进行如下分析•hemdall异常日志同比、环比分析 •knell接口异常率对比•应用告警浓度聚合统计•链路上游应用qps同比环比分析•链路上的应用有关注的事件发生(发布、配置、运营策略变更等) 如果分析结果超过阈值,则认为应用有异常 根因分析落地难点-根因事件定位难 解决思路:对比go图算法库和qtrace页面里“获取调用链路”的功能实现区别,发现qtrace计算入口节点->告警AppCode所有路径时解决了有环的问题,为了保证数据一致,根因复用了tctrace的“获取调用链路”功能 注:tc解题思路,修改javajgrapht源码的图算法,在原有BFS算法上引入了不可重复访问边的逻辑,避免了回环,新生成的调用子图精简了很多 BizDevOps企业峰会·城市行-北京站 根因分析落地难点-故障根因定位难 问题:故障期间全链路报警,每个报警一个根因分析,难辨别故障根因,并且故障时用户添的故障信息不完整、时间不精确等 策略:结合大模型 步骤:1故障信息提取(相关应用、业务线、时间维度)->2.报告筛选(top10)->3大模型-> 4top 5根因 拥 抱大 模 型 未来规划 1准确率提升 ü故障宽口径、窄口径准确率提升,通过提升基础指标数据准确率、大模型提示词模版优化、更好模型等 ü预案与根因动态结合,并按优先级新编排推荐的预案 2提升根因与预案、演练等系统结合度




