闲鱼神探——线上问题定位与快速解决

689次阅读  |  发布于4年以前

神探产品定位

线上问题的发生往往会带来两个影响:一是大量的时间投入,二是低效率解决问题导致的用户体验和公司利益的持续受损。因此无论从业务稳定性还是业务的快速开发迭代出发,都需要提高底层效率,提高问题定位能力,使开发人员注入更多的精力在开发和业务本身。

神探系统应运而生,神探是一款面向服务端稳定性问题自动定位并辅助快速解决故障的线上排查工具。

神探目标 神探围绕四大指标解决线上故障问题,分别为:

竞品分析 为响应故障报警最快解决,集团内部很多团队都在做故障定位系统,这里对常见的解法做简单介绍。

闲鱼整体架构

神探实现原理

线上环境中,全面了解应用运行状况,需要:

针对以上问题排查思路并非无迹可寻,其排查思路和手段可以沉淀出一套经验模型。将故障简单归结为【慢调用】和【异常】,根据日常排查思路可以总结出以下分析范式:

上图范式模型,使用完备的数据埋点体系,可以很清晰的做到:准确界定慢调用/异常;生成上下游调用链路;本身和下游准确界定是谁的问题;下游异常时准确区分线程池满、超时、未捕获异常。除此之外,系统设计模型还满足以下两点:

整体结构图

本系统做到从告警/预警/故障->定位->快速处理这样一套完美闭环,自上而下分为数据采集、实时计算、实时分析、聚合展示四大模块。神探采用决策树模型来进行故障分析定位,通过对排查思路的归纳总结将决策树体系化成一套通用范式。 模型抽象——基于决策树 模型基于决策树机制实现,整个系统中模型原子节点抽象为:

决策树推理过程可以总结为:

具体推理过程自下而上,可以由采集数据拿到具体异常监控指标值,最终通过上下游调用关系,聚合成拓扑链路,直观显示故障位置,如下图所示。 范式异常情况扩展——多方佐证分析

正常情况下,这两个耗时由客户端建立请求、服务端发出响应和客户端接受响应的具体耗时简化而来,可现实项目中,存在许多异常情况,很多场景下我们不能完全取到这三个指标,我们将采用多方佐证来辅助给出定位结果。场景举例:

当前效果展示 钉钉链路打通,告警链路实时定位

实际案例 XXXX年X月XX日全站交易下跌超过20%,闲鱼也受影响。报警群“闲鱼-发布”,“闲鱼-留言”等多接口下跌,神探系统秒级定位*异常导致闲鱼多个服务受到影响,继而第一时间对*进行了降级。

发现路径(最短路径): 打通告警信息,告警群出告警后,可直接点击卡片,打开诊断页面

日常单机问题排查,解决人工排查难区分单机还是集群问题。例如,搜索单机问题(11.15..这台机器)导致首页接口异常,直接定位到如下结果。

故障定位结果提供快恢预案,保驾故障快速恢复。

系统优化展望

神探系统目前已经稳定运行,主要聚焦服务稳定性相关问题定位,仍然有许多场景未覆盖,要实现问题定位->隔离->降级->快速恢复完整闭环,还需要更完备的底层数据建设、完备的事件抽象、以及将事件关联起来的知识图谱。

数据成本控制

拓扑补全

系统拓展至端

多租户扩展

丰富DB指标

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8