站在巨人的肩膀上搭建APP功能异常数据收集系统-天梭

本文主要讲述一种系统思路,对于很多公司没有足够的技术人员来搭建一套完整的全链路日志系统情况下可以参考,对于细节实现方面,大家可以根据自己产品的特性来设计,如果还有疑问,可以发邮件到我的邮箱ufolca@163.com或者加我微信号【the51alien】备注一下“天梭”,第一次发文,如有不妥之处,还请指正


痛点

|任何一项技术的实施,如果不能解决某些或某个问题,那么它将没有任何价值

相信很多移动端开发人员会遇到一个问题,客服收到用户反馈,APP的某个页面打不开了,或者某个按钮点不了等等非崩溃性质的功能异常,在没有该用户全链路日志的情况下,我们一般会采取以下几种处理方式

1. 根据经验去代码中检查逻辑,看是否有边界情况没考虑到

2. 根据用户的场景描述,在测试环境模拟一份相同的数据看能否复现

3. 获取用户授权,使用登录令牌进入问题场景看能否复现(没有办法的办法,大部分用户都会拒绝)

如果上述几步都无法解决,相信很多人会是下面表情


那么有没有一种比较快速直接的方法来帮助勤劳善良的程序猿(媛)来解决这些问题,答案是有-利用巨人的肩膀


天梭系统流程图


大家会发现里面有三个巨人来支撑整个系统


巨人                    | 职责                                               | 要求 


云推送平台         | 对目标用户下发日志收集指令        | 到达率高,有联合唤醒功能


云资源存储平台  | 存储出现异常的某天APP链路日志 | 容量大,安全性高


热补丁分发平台  | 下发补丁                                         | 成功率高,实时性高,兼容性高


接下来我来一一介绍每个系统的任务和机制

●蓝线部分-客户端每天将用户的操作和网络日志有序,压缩,加密,追加的方式写入本地文件,可以手动埋点或者AOP自动化埋点,网络日志相信很多人都在使用okhttp,可以在拦截器里进行日志的写入,所有操作一定要在子线程里执行,文件名以["."+app名+"-"+用户id+"-"+日期(yyyy-MM-dd)]的隐藏方式,后缀采用jpg来伪装成破损图片

●黄线部分-从客户端开始,相信到技术人员这个节点都通俗易懂,最后到推送平台我采用的是推送tag,而不是推送id作为参数,也是考虑的市面上普遍存在的多客户端登陆情况,推送tag-推送id是一种一对多的映射关系,每个用户登录一台设备都会手动将该设备的推送id打上tag,我这里的tag就用的是用户id

●红线部分-APP会收到一条特殊json格式的推送,例如{"data":{"type":1024,"date":"2018-06-05"}},客户端的推送系统捕获到这条指令后调用日志系统的上传方法,选择对应日期的日志上传的云存储平台,这样技术人员能够拿到这个日志,通过本地的工具,将文件内容读取,解密,解压缩出来,将问题相关的功能数据mork到APP里复现

●黑线部分-如图所示,相信很多人都会操作,就不过多阐述了


问题

理想是美好的,现实是残酷的

1.推送问题,相信这是android开发人员最头痛的问题,如果技术人员下发推送指令后十分钟内没有看到用户日志,那么也只能通过客服提醒用户再次打开APP,一般好的推送平台的离线推送会再触发一次

2.补丁问题,补丁修复的实时性和成功率决定了最后一步,否则只有发新版本了

3.日志系统建议只保留最近一周的日志,防止产生大量垃圾文件


后记

茶余饭后的谈资

天梭这个名字来源,是我脑补出的一个系统场景,像一个梭子在 用户手机+3个平台服务器的虚拟天网中来回穿梭

目前我采用的几个巨人分别是个推+七牛云+bugly热补丁分发平台,目前这3个平台的免费阀值足够使用了
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352

推荐阅读更多精彩内容