《王涛-字节跳动 Android 客户端可观测建设实践.pdf》由会员分享,可在线阅读,更多相关《王涛-字节跳动 Android 客户端可观测建设实践.pdf(31页珍藏版)》请在三个皮匠报告上搜索。
1、王涛产品研发和工程架构-App Health 监控产品构建:Slardar、APMPlus业务性能优化:通用优化能力、业务指标优化插件热修:插件框架、热修框架编译构建:打包发布、编译优化王涛 2019 年至今,任职于字节跳动,负责Android APM 性能监控产品的构建,帮助头条等业务方优化内存等性能指标。目前担任火山引擎 APMPlus 平台Android/鸿蒙监控产品客户端技术负责人。拥有支撑几十亿级别DAU产品的性能稳定性监控经验。目录Slardar支持抖音、头条、飞书、番茄小说、剪映、豆包等字节跳动内部所有应用的性能稳定性监控。支持吉利、理想、蔚来、智谱、凯叔讲故事、Keep、作业帮
2、、长桥证券等众多外部业务的性能稳定性监控。涵盖车企、AI应用、在线教育、金融、工具、社交娱乐等众多类别的应用。APMPlus支撑几十亿级别DAU产品的全链路性能稳定性监控卡死/ANR无法登录下单失败太卡,无法操作磁盘占用太高网络访问异常崩溃启动太慢耗电太快流量消耗大Ops!应用发生异常!核心逻辑配置和采样能力:通过配置控制不同性能数据是否采集上报,以及相关采集的阈值。采样可以有效降低服务器数据压力和对端上的性能影响。mmap存储和聚合上报:通过mmap的方式,保证数据缓存的高性能和数据不丢失。聚合上报减少网络传输流量消耗并提高数据处理效率。自定义日志Alog/Vlog:通过mmap的方式把业务
3、自定义日志和Apm日志写入到文件,通过回捞、主动上报、随崩溃上报的方式上报到服务器,确保每个用户的体验问题都可以获取到有效日志来分析解决。评估优化指标的优先级 体验影响程度和比例:用户感知程度和影响用户比例应用对比:对比线上监控不同应用的指标差异AB实验:线上的指标优化/劣化实验结论抖音:应用使用时长优化效果:抖音最近3年性能体验优化,通过A/B实验来明确性能收益和业务收益,累计统计应用使用时长Helo:OOM率优化效果:两个月OutOfMemoryErrorHprof文件泄露解决大对象解决优化效果核心能力网络大盘:查看网络成功率,整体耗时,阶段耗时等数据。网络错误:分析网络错误并进行归因。包
4、括失败的类型,占比,失败详情。多维分析:不同维度的网络分析。包括域名、path、网络类型、地域等维度。报警配置:对于网络成功率和耗时等异常波动,可以立即收到报警信息,排查问题。TTNet网络库TTNet是字节跳动网络架构部门研发的一款客户端网络库,在Cronet的基础上进行开发和深入定制,在调度容灾、性能调优、监控排错等多方面有有效实践,当前为字节跳动的绝大多数App提供网络服务。日志查询在业务反馈异常后,通过日志查询输入did/userid,可以查询单设备已经上报的所有数据,包括崩溃、ANR、卡顿、内存、CPU、磁盘、启动、页面访问、流量消耗、使用时长等所有数据。自定义日志针对单点问题分析,
5、提供自定义日志的能力,业务通过Alog/Vlog库进行日志打点。可以通过回捞,用户反馈按钮主动上报,崩溃时上报来获取自定义日志分析用户问题。日志文件在本地加密、压缩保存,利用系统 mmap 机制保证日志写入的效率并保证数据完整不丢失。智能修复【AutoFix】目标:借助大模型的推理能力构建AI Agent【AutoFix】,对异常一键产生自动修复的代码,提升客户端研发修复Bug的效率。核心原理:【AutoFix】核心原理是把异常归因相关的堆栈和源码等数据交给LLM,LLM通过预分析、查找源码、规划修复方案、执行修改,最终直接给出修复后的代码Patch。智能修复【AutoFix】异常详情页面:一键自动生成修复Patch。示例:左侧为【AutoFix】对一个Java多线程异常ConcurrentModificationException问题,给出了正确的修复方案。ANR和Native崩溃等深度疑难问题的进一步归因,采集更加丰富的归因数据。大模型和监控平台的深度融合,对异常归因进一步提效。包括智能分析和自动修复等方向。支持对鸿蒙系统监控的全面能力建设,包括OOM问题归因,卡顿、CPU等性能监控。深度参与到业务核心疑难问题的优化,直接带来业务指标收益。大模型正在重新定义软件Large Language Model Is Redefinin