贝壳移动端监控建设 孙旭东

前端狗

2019/07/09 发布于 编程 分类

GMTC2019 

文字内容
1. 贝壳移动端监控建设实践 孙旭东 1 2019 KE.COM ALL COPYRIGHTS RESERVED
2. 2 2019 2019 KE.COM KE.COM ALL ALL COPYRIGHTS COPYRIGHTS RESERVED RESERVED
3. 3 2019 2019 KE.COM KE.COM ALL ALL COPYRIGHTS COPYRIGHTS RESERVED RESERVED
4. 目录页 • 个人简介 • 贝壳做监控的背景 • Crash监控的实现 • 自定义错误监控的实现 • 网络监控的实现 • 其他介绍 • 远景 4 2019 KE.COM ALL COPYRIGHTS RESERVED
5. 个人简介 • 孙旭东 • 2001-2008 吉大计算机 本+硕 • 2008年 MTK北京研发中心 • 2010年 新媒传信,飞聊,iOS • 2011年 阿里 • 2018年 贝壳,负责移动端架构,B端App 5 2019 KE.COM ALL COPYRIGHTS RESERVED
6. 海神平台 贝壳自己做监控的背景 6 2019 2019 KE.COM KE.COM ALL ALL COPYRIGHTS COPYRIGHTS RESERVED RESERVED
7. 贝壳移动端简介 • 贝壳找房前身链家,2018年成立 • To C:贝壳找房,链家 • To B:Link,A+ • 移动端开发:100多人 • 移动端监控决定自主研发 7 2019 KE.COM ALL COPYRIGHTS RESERVED
8. 移动端监控简介 报警 自 定 义 异 常 现场 网 络 8 其 他 性 能 2019 KE.COM ALL COPYRIGHTS RESERVED 聚合 统计 后端收 集处理 现场 跟踪 处理 抽样 配置
9. 海神平台接入情况 • 移动端监控平台取名为:海神 • 贝壳App全部接入 • 日均数据处理:亿级 • 日均统计分析:亿级 • B端App Crash率降低到0.007%! 9 2019 KE.COM ALL COPYRIGHTS RESERVED 奥丁 房江湖 贝壳 A+ 掌链 Link 工作台
10. 海神平台 异常监控(Crash为例) 10 2019 2019 KE.COM KE.COM ALL ALL COPYRIGHTS COPYRIGHTS RESERVED RESERVED
11. Crash监控功能需求 业务线 操作路径 网络数据 跟进转移 海神 系统日志 报警 附加信息 授权 账号等 扩展 崩溃堆栈 设备信息 报警 系统信息 趋势统计 评论 Fabric 11 2019 KE.COM ALL COPYRIGHTS RESERVED
12. 移动端SDK架构(Android) 辅助信息 异常 Crash 自定义错误 id 其他监控 系统日志 操作路径 网络监控 网络数据 调用栈 基础数据 通用层 存储 12 2019 KE.COM ALL COPYRIGHTS RESERVED 网络 工具类 线程调度
13. Crash捕获 侦听 更改系统的异常处理Handler 发生Crash uncaughtException 通用层 存储 采集 获取Crash线程堆栈 其他线程堆栈 上报 堆栈处理 去重 13 2019 KE.COM ALL COPYRIGHTS RESERVED 截断 栈链层级限制 前一个Handler处理
14. ANR捕获 侦听 FileObserver WatchDog onEvent UI Block Traces.txt发 生写变化 二次 确认 ANR 弹框 ProcessErrorStateInfo == 2 && ?== mypid 通用层 存储 采集 14 ANR进程信息 2019 KE.COM ALL COPYRIGHTS RESERVED 获取线程堆栈 上报
15. 现场保存和上报 发生Crash 同步存储 “同步”上 传 15 2019 KE.COM ALL COPYRIGHTS RESERVED APP热启动 其他上报需 求 异步线程 上传历史数 据
16. 数据分发 • Dig通道将消息推送至队列 SDK SDK SDK • 动态负载持续检测资源状态 • 动态分配消费任务 Dig 队列 动态负载 资源 16 2019 KE.COM ALL COPYRIGHTS RESERVED 资源 资源
17. Crash解析&聚合 持续集成平台 系统库 组件 Objdump 崩溃信息 (iOS) 崩溃信息 (Android) 基地址 目标地址 动态库 解析平台 偏移量-符号表 符号/堆 栈 Mapping 堆栈信息 打包平台 宿主 17 2019 KE.COM ALL COPYRIGHTS RESERVED 插件 聚合
18. Crash分流(iOS为例) 仓库信息 基础信息管理平台 组件-符号-仓库 仓库/组件信息 异常(解析后) 组件信息 组件-偏移表 符号-仓库表 分流平台 持续集成 源码 18 2019 KE.COM ALL COPYRIGHTS RESERVED 构建 符号-仓库(组件)业务线表 分析 分流策略 异常归属分析
19. 报警方案设计 异常等级 • 影响用户数量 • 影响会话数量 • 影响用户比例 • 影响会话比例 触发报警 • 企业微信 + 邮件 • 数量,比例,业务线,时 间段 19 2019 KE.COM ALL COPYRIGHTS RESERVED 报警策略 • 策略阈值:异常峰值*1.5 • 单系统版本报警 • 单设备类型报警 异常状态 • 异常关闭后,阈值*2 • 新版本自动打开
20. Crash报警 • 可以设置多个策略 - 根据严重程度设置多个 - 时效:实时,同比 - 监控对象:单个Crash,应用 - 周期(分钟):15,30,60 - 指标类型:设备,会话 20 2019 KE.COM ALL COPYRIGHTS RESERVED
21. Crash解决跟进 发现问题 —— 报警 1 4 21 2019 KE.COM ALL COPYRIGHTS RESERVED 2 跟进问题 —— 评论,转移 3 解决问题 —— 事故现场还原,关闭 总结 —— 周报、日报
22. Crash成果展示 • B端App 的Crash率大幅降低,从0.1%降低到0.007% 22 2019 KE.COM ALL COPYRIGHTS RESERVED
23. 海神平台 自定义错误 23 2019 2019 KE.COM KE.COM ALL ALL COPYRIGHTS COPYRIGHTS RESERVED RESERVED
24. 自定义错误 • 需求背景 • 主动发现问题 •数据传递错误 业务错误 •潜在错误 •业务逻辑错误 •业务个异化场景异常 • 快速定位问题 •…… • 提供网络信息、辅助信息、系 •Flutter 统日志、用户操作路径…… 多平台崩溃 •ReactNative •JavaScript •…… • 每个功能出错的地方都可以打 点 24 2019 KE.COM ALL COPYRIGHTS RESERVED 异常 •崩溃 •Exception •ANR
25. SDK数据流程图 Flutter Plugin JavaScript Exception 多平台捕获 辅助信息 异步上传队列 设备信息获取 数据合并 堆栈获取 DB存储 关联数据 RactNative ErrorUtils 触发其它SDK 队列控制并发 防护库 操作日志 网络日志 主动调用 业务自主 25 数据拼装 2019 KE.COM ALL COPYRIGHTS RESERVED Event、Tag、 Msg、Sort、 UserInfo 系统日志 …… 补传
26. 自定义错误 26 发现 报警 网络 问题 被触发 检查 2019 KE.COM ALL COPYRIGHTS RESERVED 查看异常 接口 查看 问题 搜索自定 义问题列 表 辅助 信息 问题 相关数据 解决
27. 海神平台 网络监控 27 2019 2019 KE.COM KE.COM ALL ALL COPYRIGHTS COPYRIGHTS RESERVED RESERVED
28. 网络监控 URL 28 请求 参数 请求 时间 戳 请求 头大 小 DNS 耗时 TCP 耗时 SSL 耗时 HTT P状 态码 网络 异常 堆栈 Api 错误 码 运营 商 经纬 度 网络 类型 APP 信息 设备 信息 系统 信息 2019 KE.COM ALL COPYRIGHTS RESERVED 请求 体大 小 响应 时间 戳 响应 头大 小 响应 体大 小 首包 时间 抽样策略 批量上报 耗时、错误、数据量、地域、 运营商、网络类型、业务线、 域名等维度进行聚合和展示
29. 网络监控 • 多维度查看数据 29 2019 KE.COM ALL COPYRIGHTS RESERVED
30. 贝壳网络监控的独特点 • 按业务线,域名筛选查看 30 2019 KE.COM ALL COPYRIGHTS RESERVED
31. 海神平台 其他介绍 31 2019 2019 KE.COM KE.COM ALL ALL COPYRIGHTS COPYRIGHTS RESERVED RESERVED
32. 信息聚合-问题追查 系统日志 网络监控数据 设备/系统信息 设备ID,时间段 错误,异常 用户操作路径 其他 32 2019 KE.COM ALL COPYRIGHTS RESERVED
33. 整体架构 SDK接入 用户操作 FE Web API Proxy SSO Auth 数据收集 Dig Kafka通道 校验解析 抽样策略 采集 Crash API Crash 分析系统 Crash 生命 期 管理 ANR API Crash概览 API 网络详情 API 多维统计 API Crash 解析 调度 Android Crash 解析 引擎 告警管理 iOS Crash 解析引擎 抽样策略 管理 元数据管理 系统/三方库 文件管理 URL/标签归 类 管理 网络 分析系统 告警管理 二次分层统 计 网络概览 API 公共服务 Lschedule Passport DAU API 日活/会话 二次分时统计 分析系统 日活排重统计 权限服务 自定义错误 Prometheus 性能监控 企业微信 会话排重统计 日报/周报 邮件服务 资源层 33 mysql 2019 KE.COM ALL COPYRIGHTS RESERVED mongodb redis
34. 事件信息关联 • 根据事件id关联 网络 数据 系统 堆栈 日志 34 2019 KE.COM ALL COPYRIGHTS RESERVED 现场 基础 操作 数据 路径
35. 后端高性能 接口 业务层数据 业务层 数据 业务层数据 数据 中间层 中间层 中间层 中间层 中间层 中间层 数据 数据 数据 数据 数据 数据 原始数据 35 业务层 2019 KE.COM ALL COPYRIGHTS RESERVED • 高时效性,稳定性,高性能 • 统计数据保持,原始数据可以清理 • 日志之类的辅助信息,使用的时候再解析
36. 我们仍在前行的路上 平台远景 36 2019 2019 KE.COM KE.COM ALL ALL COPYRIGHTS COPYRIGHTS RESERVED RESERVED
37. 自动化复现和验证 行为和 网络 自动化复现 复现 验证 37 2019 KE.COM ALL COPYRIGHTS RESERVED 网络交互数据 自动化 解决和 修复线上问题 提取用户行为和 下发补 丁 解决,自动化验证
38. 欢迎联系我们 • 微信号:sunxudong • 贝壳微信公众号:贝壳产品技术 • 地址:上地五街福道大厦 38 2019 KE.COM ALL COPYRIGHTS RESERVED
39. 39 2019 KE.COM ALL COPYRIGHTS RESERVED
40. 40 2019 KE.COM ALL COPYRIGHTS RESERVED
41. 41 2019 KE.COM ALL COPYRIGHTS RESERVED