现状和问题
闲鱼的舆情治理,依托阿里集团的设施建设,具备以下能力:
崩溃异常、性能在线聚合查询;
本地日志:
TLog
;在线日志:埋点日志(t+1)和用户行为日志(路径和请求)
但在应对舆情治理方面仍存在较多的问题:
有相当一部分闪退、黑屏、卡死舆情无 Crash 或 ANR 日志;
技术舆情中的业务问题定位困难;
-
业务问题如图片视频上传失败、内容显示异常、无法退出、服务器错误等;
日志内容缺失:大部分业务日志被写入控制台,而不是本地日志或在线日志;
个别重要业务使用埋点日志,但仍可能存在内容不足和 t+1 不及时问题。
本地日志定位问题能力有限
-
本地
TLog
日志有较为详细的集团二方 SDK 日志,但缺失设备基础信息、业务日志、用户行为日志等未知异常问题,如视频绿屏等,无控制台 logcat 日志
日志规范不完善,日志查看效率低
本地日志回捞困难
-
用户主动反馈时,没有触发本地日志上报
闲鱼属于交易 App,用户不会长时间在线,在线命令推送成功率低
命令推送在后台没有缓存机制
反馈问题和线上实际情况存在偏差
-
闲鱼反馈入口较深,相比闲鱼上亿用户基数,反馈占比低,存在线上有问题但无反馈的情况
舆情治理方案整体设计
基于现状问题,重新梳理和补充的舆情治理体系如下图:
线上舆情问题治理体系
下面会重点展开讲述的内容:
如何提升本地日志定位能力
补充线上卡顿监测能力
补充主动发现问题能力
提升本地日志定位能力
本地控制台日志补充
治理前期,大量业务日志进入了控制台日志,即便治理后将大量日志转入 tlog 日志,仍有部分日志流入控制台,如 Android Maven 引入独立模块和 Flutter 插件包模块。此外,部分未知异常问题,如视频绿屏、黑屏等,logcat 日志也提供了定位的可能性。
Android Log 模块提供了多种日志缓存类型,见 Android logging[1],可通过 logcat
命令获取对应类型的日志。这里,我们在用户反馈的时候,分别将 LOG_ID_MAIN
、LOG_ID_EVENTS
和 LOG_ID_CRASH
类型 logcat 读取并写入到本地文件,而后将 logcat 日志同 tlog 文件一起打包通过 AUS 上传至 OSS。
// LOG_ID_MAIN 主应用程序log,-t 设置日志上限 20000
adb logcat -d -v threadtime -t 20000
// LOG_ID_EVENTS 系统事件信息
adb logcat -d -b events -v threadtime -t 6666
// LOG_ID_CRASH 应用程序 crash 日志
adb logcat -d -b crash -v threadtime -t 6666
logcat.txt 内容
本地日志回捞能力
前面提到,由于在线命令推送成功率低且后台无命令缓存机制,所以闲鱼 App 本地日志回捞困难。为解决日志难以获取问题,舆情治理体系中设计了多种日志回捞策略&