您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。 [XOps 风向标!GOPS 全球运维大会暨研运数智化技术峰会 2024 · 上海站]:去哪儿网1-5-10故障体系建设:根因分析实践 - 梁成琰 - 发现报告

去哪儿网1-5-10故障体系建设:根因分析实践 - 梁成琰

报告封面

姓名:梁成琰 个人简介 梁 成 琰 公 司 职 位 梁成琰,去哪儿网资深SRE工程师,目前在基础架构团队从事CICD、可观测性、AIOPS等相关工作。期间推动完成了去哪儿网容器化落地、监控平台升级、根因分析和预案平台的建设。去哪儿网云原生SIG成员,专注于研发效能提升。 目录 模型持续验证 故障治理框架 故障治理难点 故障治理框架-定义与度量 责任方、受影响方各自呈现故障率指标与MTBF、MTTR指标并重结果&过程指标共同呈现 故障治理框架-1-5-10定义 故障治理框架-落地工具 定位慢-原因分析 信息差 信息量大 中间件问题单机问题未感知其他应用事件&变更宿主机问题查问题工具不熟悉 交互复杂,链路长,难定位信息多,难关注异常多,难抉择 故障定位-根因分析 根因分析-整体思路 根据可观测性三要素MTL(Metric+Trace+Log)进行分析和建模 Logging:提供系统/进程最精细化的信息,例如某个关键变量、事件、访问记录等,是对应用系统的事件做一条记录,这些记录是我们问题排查,取证的依据 Metrics:提供量化的系统内/外部各个维度的指标,是对某些我们关注事件的聚合,我们可以根据指标设置告警 Tracing:提供了一个请求从接收到处理完毕整个生命周期的跟踪路径,通常请求都是在分布式的系统中处理,所以也叫做分布式链路追踪。 根因架构设计 模型构建-思路 1.定位范围2.异常断言3.关联挖掘4.剪枝排序5.结果输出 模型构建-步骤 01 知识图谱构建 3 2 02 异常应用断言 异常应用断言 报警&故障 异常应用断言 metric &链路结合 异常应用断言-trace筛选 故障期间trace数几千+,如何精确定位到有问题链路 误报、闪报、阈值配置不合理人工治理自动识别无效告警、不做分析(按周、天维度缓存无效告警) 复合指标中有些指标对结果无影响 函数中去除无影响的指标,e.g: asPercent函数只保留分子指标、exclude去除排除的指标等 分析的trace包含非核心链路根据业务优先级:业务线自定义链路T值、核心链路 异常应用断言-trace筛选 异常筛选 qtracer记录链路,如果某次调用超时,或者http/dubbo返回状态码异常,便将此次调用标记为异常,并将trace标记为异常trace T值筛选 T值是去哪儿网大客户端的一个概念,是为了区分各业务线服务的,在请求的时候,会带一个参数qrt称之为T值。不同的T值,对应的业务也不同 拓扑相似度筛选 将拓扑图进行降维,根据特定的规则将拓扑图构建为字符串,转换为字符串的相似度算法 异常应用断言 定位异常应用 •trace链路上标记为异常•报警浓度高于阈值•P1/P2级别告警•存在发布/核心配置变更事件•异常日志同比&环比高于阈值•api异常率指标高于阈值 03 异常应用分析 异常应用分析 middleware分析 KVM&容器: CPU、网络JVM:full GC异常指标单机分析宿主机分析runtime分析 应用获取对应namespacemysql报警redis报警mysql慢查询同比环比redis大key log分析 发布事件配置变更压测event分析 异常应用分析-runtime分析 异常应用分析-事件分析 链路事件 全局事件 网络变更基建变更负载均衡全链路压测 下游配置变更下游发布上游qps陡增分析上游特定事件分析 04 异常关联分析 异常关联分析-timer告警分析 timer类型告警分析策略 额外筛选出告警应用下游耗时大于应用1/2耗时的方法调用 05 聚合分析 聚合分析-权重体系 代表当前故障中此应用的异常所占的权重比,表示了此应用影响当前故障的概率大小 经验权重,根据近期故障原因分布设置 具体分析到的异常case权重,根据各个根因的严重级别来对自己进行升级,避免真正的根因被淹没掉 强弱依赖可以明确表明,A应用调用B应用的m接口是强依赖还是弱依赖,根据此信息可以确认影响概率 权重体系-应用权重 应用权重计算 •trace归并:在trace收敛过程中,对多次出现的异常app的权重进行升权 •应用距离:按照告警类型(error、timer)对告警应用进行距离加权,其中error类型的按照链路递归越底层越可能是根因,权重越高 权重体系-动态权重 异常日志 事件 事件类型权重-发布、配置变更时间点权重-离告警越近的事件权重越高 同类型异常同比环比计算不同类型异常严重级别判定 动态权重 运行时 中间件 pod异常类型:cpu使用率/OOMpod cpu使用率严重程度宿主机异常类型-load陡增/宕机/网络异常 mysql、redis报警级别判定慢查询耗时慢查询数目同比环比计算 权重体系-强弱依赖权重 强弱依赖剪枝 •当前告警应用为A,当应用B和应用C都有异常case,而A->B是弱依赖,A->C是强依赖,则倾向认为A的告警由C的异常造成 聚合分析-AI summary 结果输出-可视化 模型构建-架构 模型持续验证 模型验证 1线 上 真实 故 障c a s e验 证 •系 统 瞬 时 故 障 、 故 障 分 析 的t r a c e等 数 据 保 存 到e s中 , 模 型 迭 代 时 持 续 回 归 验 证 2结 合演 练 验 证 准确 性 3构建lab环•业 务 应 用 接 口 的 强 弱 依 赖 演 练•业 务 攻 防 演 练•故 障 混 沌 演 练 3构建固定 的l ab环境 •单 应 用 场 景:c p u、 网 络i o、l o a d、r e d i s、m y s q l、h t t p异 常 与 超 时 、d u b b o异 常 与 超 时等•复 杂 链 路 场 景 : 上 游 、 下 游 应 用 注 入 单 个 异 常 、 多 个 异 常 G O P S全 球 运 维 大 会 暨 研 运 数 智 化 技 术 峰 会2 0 2 4·上 海 站 应用实践 04 核心报警分析 故障根因推送 未来规划 未来规划 异常日志分析策略优化、模型权重调优、深度结合业务场景定制 体系闭环 02 应对1-5-10治理,根因和故障演练平台、预案平台更好的结合,包括特定场景(单机异常等)的自愈 结合业务类变化归因 03 当前根因分析主要依靠系统类异常分析,业务侧的指标数据变化等无法归因,结合业务侧的归因实践提升根因覆盖范围 T h a n k s 荣誉出品