关于自动化埋点的一些实践及总结

勿忘初心2018-10-24 10:32

此文已由作者徐铭阳授权网易云社区发布。

欢迎访问网易云社区,了解更多网易技术产品运营经验。



现状

  • 中M现在使用哈勃即DATracker来采集数据跟踪用户行通过哈勃平台可以拿到用户数据,每次埋点需业务方整理出埋点数据、开发埋点。
  • 类似播放器播放过程中用户行为跟踪及上报,客户端暂时没有相关功能
  • 开发查问题只能通过QA人员复现


解决方案


  • 全自动埋点,事先埋点、事后圈选,通用数据的全量采集,客户端全量采集用户行为并上报
    1,通用数据全量采集,如app 版本号、uid、deviceId、网络状态等
    2,前后台事件,页面流水等
    3,控件点击等
  • 开发过程中applog当用户收到push消息时上报要获取的时间段内的日志文件


优点


  • 标准化的采集,事先埋点,事后圈选,数据存在,想用的时候可以去捞取数据
  • 业务无关,完全自动化打点,后台采集数据
  • 用户行为监控、性能埋点跟踪上报、开发可以捞取applog方便查线上问题,上报策略可配


技术难点


  • AOP,由于只是按照一些简单的切点(用户点击)收集用户行为,并不是整个从OOP过渡到AOP,如下是其中AOP的比较

  • 整体设计

             

  • 上报策略,三种上报策略,服务端可配
    • 压后台上报:app压后台后触发上包,压后台 上报时间间隔需要超过30分钟, 避免服务端压力
    • 攒够一定条数上报:根据不同的日志类型配置不同的上报条数,如自动化埋点可以配置100条,crash日志配置一条等等,如果不配置则实时上报
    • 空闲时上报:一些后台数据,如push消息等, 上报时机可暂定为后台进程启动和每隔3个 小时上报等等
  • 页面PV自动化埋点
    • activity以及Fragment生命周期: onResum页面打开, onPause页面结束
    • View点击自动化埋点
    • 空闲时上报:一些后台数据,如push消息等, 上报时机可暂定为后台进程启动和每隔3个 小时上报等等


xpath如何与数据关联


  • 拿到用户行为流水,洗数据,数据库中的数据都是存在的
  • 通过某种方式将业务数据自动与埋点数据关联,这种关联可发生在前端也可以发生在后端


不同技术方案优缺点


其他

现阶段客户端采集及上传基本完成,由于自动化埋点还处于探索阶段,暂时只完成客户端代码

如有问题欢迎指正交流


网易云免费体验馆,0成本体验20+款云产品! 

更多网易技术、产品、运营经验分享请点击