议题四 美团万分之一Crash率治理架构 美团谌天洲

1. 大会视频回放链接:http://www.itdks.com/eventlist/detail/2823
2. 美团万分之⼀一Crash率治理理架构 谌天洲
3. ⽬目录 简介 基础能⼒力力 治理理效率 总结
4. 简介 背景 美团 业务 外卖 电影 美⻝⾷食 酒店 旅游 娱乐 … 服务 订单 ⽀支付 地图 定位 评价 推荐 … 平台 ⽇日志 监控 插件 容器器 通信 RN … 基础 修复 加固 指纹 配置 采集 ⻛风控 … 30+业务 400+SDK 200+RD 20+团队
5. 简介 挑战 ⽇日活⾼高 迭代快 体量量⼤大 防范难度加⼤大 治理理 效率 问题规模上升 基础 能⼒力力 沟通成本加剧 Rate = CountJava DAU
6. 简介 架构 谁的问题 治理理效率 ⾃自动检查 接⼊入管控 谁来解决 报警系统 ⼯工单系统 频道管理理 聚合配置 解决进度 催促提醒 ⼯工单⿊黑榜 问题防范 WiKi & Case study ⾃自动检查平台 能发现 基础能⼒力力 Crash ANR JNI Crash 异常退出 能定位 常规问题 线程问题 内存问题 其他问题 能修复 ⾃自有代码 第三⽅方代码 Framework 虚拟机
7. 治理理架构 基础能⼒力力 5% 10% 5% 15% 65% 常规问题 线程问题 其他问题 内存问题 机型问题
8. 治理理架构 基础能⼒力力 发现 Crash MetricsSDK 异常退出 异常退出监控 定位 常规问题 堆栈现场 ⽇日志数据 内存问题 泄漏漏路路径 内存快照 线程问题 线程现场 任务现场 其他问题 堆栈现场 数据现场 修复 ⾃自有代码 直接修复 AOP 第三⽅方代码 直接修复 AOP Framework ⽅方法代理理 ⽅方法替换 虚拟机
9. 基础能⼒力力 内存监控 OOM ? 如何治理理 Leak检查 80% 内存快照 20% X 堆栈 ? OOM问题 ? ⽆无法埋点 ? 忘了了埋点 内存快照 内存监控体系 线下 线上 Leak监控 内存监控 美团app内存监控体系
10. 基础能⼒力力 内存监控 检测 数据 伪装 上报 美团leak监控系统
11. 基础能⼒力力 内存监控 配置 主动 被动 裁剪 dump 上传 C端 快照 还原 分析 报告 S端 主动模式 线下开启 阈值检测 被动模式 线上线下 动态开启 条件触发
12. 基础能⼒力力 内存监控 header ⽂文件头 string 所有的类型&变量量名 class class信息 heap 堆信息 end ⽂文件结束符 hprof⽂文件基本格式 bitmap还原 string还原 通⽤用裁剪 (50%) 数据压缩 字符剔除 图⽚片剔除 … 定向裁剪 特定依赖 指定包名 指定类名 …
13. 基础能⼒力力 动态⽇日志 个性化使⽤用场景 ⽹网络环境差异 机型ROM差异 系统版本差异 本地环境差异 ⽆无法定位&复现 ?
14. 基础能⼒力力 动态⽇日志 public int fab(int i) { if (Holmes.isEnable(......)) { return Holmes.invoke(……); } else { if (i <= 2) { return 1; } else { return fab(i - 1) + fab(i - 2); } } } 插桩 编译期 插桩 运⾏行行期 运⾏行行&记录 回捞 异常 上报 基本原理理 线下 调查
15. 基础能⼒力力 动态⽇日志 ⽅方法A ⽅方法B ⽅方法C ⽅方法D ⽅方法调⽤用⽇日志 Checker 线程过滤 ⽅方法过滤 trace对象池 trace ⽣生产队列列 消费队列列 Database
16. 基础能⼒力力 修复能⼒力力 机型多 机型问题 调查 ? 系统杂 系统问题 修复 ? 接⼝口异常 调⽤用多 增量量⼤大 调查 ?
17. 基础能⼒力力 修复能⼒力力 ArtMethod ArtMethod ArtMethod ArtMethod ArtMethod ArtMethod ArtMethod ArtMethod ArtMethod smeth ArtMethod dmeth ⽅方法替换原理理 Java Source Method Graft NativeProxy JavaProxy Proxy Replace Graft原理理
18. 基础能⼒力力 修复能⼒力力 ⽅方法替换 Graft ⽅方法代理理 Java method:<1000 So size: 10k Support: Android 4.0 - 9.0
19. 治理理架构 效率提升 防范难度加⼤大 问题规模上升 沟通成本加剧 ⼯工具 效率 平台 流程 Crash⼯工作台 ⾃自动检查平台 PR检查流程
20. 效率提升 Crash平台 模块覆盖 Java JNI ANR Leak … 基础服务 WiKi 搜索 标签 过滤 … 报警系统 总量量报警 增量量报警 频道报警 ⻚页⾯面报警 … 频道⼯工单 频道划分 频道流转 ⾃自动⼯工单 ⼯工单关联 … 聚合策略略 堆栈聚合 正则聚合 ⻚页⾯面聚合 线程聚合 … 接⼊入管控 基本信息 频道配置 聚合配置 ⼯工单配置 … ⾃自动化 流程化 规范化
21. 效率提升 Crash平台
22. 治理理架构 ⾃自动检查平台 ⾃自动检查平台 组件差异检查 ⽹网络请求检查 进程唤起检查 ...
23. 总结 1.2 0.9 0.6 min max 基础能⼒力力 • 定位解决>90%的Java层crash 治理理效率 • ⼈人⼒力力投⼊入:<0.5个P3-1级⼈人⼒力力 0.3 0 17.03 17.06 17.09 17.12 18.03 美团app crash变化趋势 18.06 18.09
24. THANK YOU! 微信:429013449 邮箱:[email protected]