微信号:QunarTL

介绍:Qunar技术沙龙是去哪儿网工程师小伙伴以及业界小伙伴们的学习交流平台.我们会分享Qunar和业界最前沿的热门技术趋势和话题;为中高端技术同学提供一个自由的技术交流和学习分享平台.

QACR异常收集系统

2016-09-13 08:35 江保贵
原创专栏|江保贵

 

江保贵
2011年至今在去哪儿平台事业部担任Android开发工程师,目前主要负责开放平台产品设计,客户端SDK开发维护、独立App接入技术支持、及异常收集系统前端开发等工作。
QACR发展过程
大客户端Size由开始的2~3M发展到现在的30M+,开发团队由开始的5~7人到现在的100+,接入的业务从开始的机酒火车到现在的十几个业务,异常收集也从开始的收集上传、定时脚本处理、ACRA、多应用接入到现在的QACR实时大并发处理系统。
现状与挑战
面对上百人的开发团队,多业务高并发、复杂多样的移动设备、不同的Rom版本、多渠道适配及不定时的后端发布,如何能够快速实时处理异常数据,快速定位修复问题;如何实时监控和报警,后期量化客户端开发质量等,都是不小的挑战;
QACR架构设计
QACR客户端SDK除了收集异常信息外,采用独立安全的加密压缩方式上传:经过Pitcher服务器解密解压,到loganalysis日志服务器后进行区分app和业务线、获取版本信息进行反混淆,处理完成之后发往watcher、cooper、acra(couchdb服务器,预淘汰),通过QMQ消息形式发给QACR业务服务器,QMQ服务器主要工作是处理之前acra的couchdb服务预处理逻辑,提供CRUD接口操作ElSearch数据库、登陆权限校验、报表输出、及计算崩溃率等逻辑。
       QACR展示层主要包括QACR前端展示、洗衣机日报、自动化测试等……
主要功能
QACR前段页面——主界面
QACR主界面顶部左侧选择查看应用和业务线模块,顶部右侧选择查看时间段;下方四块图标分别为:1、所选应用在该时间段内的崩溃趋势图;
2、该时间段内崩溃在设备版本、应用版本、设备名、应用版本和组件版本分布饼状图;
3、信息总览区、悬浮可以按照崩溃类型查看详细分布情况,点击可以查看Bugs列表或Report列表;
4、针对分业务的客户端,可以按照应用版本查看客户端总体崩溃趋势,每个柱状图中可以根据颜色区分每个业务崩溃占比。
QACR前段页面——Bugs聚合列表
QACR聚合列表主要展示聚合后的崩溃信息,列表顶部可以按照应用版本、组件版本、VID、是否monkey测试、是否显示已解决、关键字等过滤筛选;点击列表Header可以针对崩溃数、最后更新时间、VID、组件名、组件版本等进行排序;列表左侧可以查看备注信息、是否已修复等。
QACR前段页面——Bug详情
Bug详情页面包含Bug摘要、统计图表、影响用户及Report列表;
QACR前段页面——崩溃交互轨迹查看
在Report详情页,点击“查看用户交互轨迹”链接,即可跳转到以下页面,查看用户交互轨迹信息。
Watcher报警
日报
最新版本崩溃业务分部饼图:
最新版本崩溃详细信息:
模块总体崩溃情况:
近期更新计划
1、崩溃趋势增加崩溃率、影响用户趋势
2、Bug关联git提交记录自动指派
3、崩溃截屏——还原崩溃最后页面
4、增加发布事件轴——异常变动第一时间知道原因
5、告警、日报可视化配置
6、Bug详情展示优化(展示最近一条Report简介、发送邮件)
7、独立客户端支持上传mapping/符号化文件
5分钟快速接入
接入文档:http://qav.qunar.com/docs/功能组件/QACR.html
后台地址:http://qav.qunar.com/qacr
技术支持:Android SDK——董洪辰
IOS SDK——周锦锋
后台服务——马高龙
整体设计——江保贵

欢迎关注Qunar技术沙龙
学习需要点滴积累

 
Qunar技术沙龙 更多文章 老奶奶也会用Dagger2系列之Dagger2详解 InceptionSQL里实现的技术需求 Inception SQL 审核的设计思路 MySQL分库分表的选择 MySQL流行的原因
猜您喜欢 分库分表的几种常见形式以及可能遇到的难题 移动APP测试用例设计的关注点 Android 界面—UI 开发控件 mnv*框架时代 Python 开发——一图解千愁