基于动态埋点的跟踪方法、编译方法、装置和电子设备制造方法及图纸

技术编号:24090544 阅读:56 留言:0更新日期:2020-05-09 07:52
本说明书实施例公开了一种基于动态埋点的跟踪方法、编译方法、装置和电子设备,跟踪方法包括:获取目标应用的业务相关埋点配置和业务无关埋点配置;基于目标应用的业务相关埋点配置和业务无关埋点配置,在所述目标应用的原始源代码植入跟踪代码,以形成注入跟踪代码后的源代码并编译得到所述目标应用的应用程序;采集所述目标应用运行时所述埋点生成的埋点日志;基于用户在移动端的点击序列、页面跳转链路、程序流调用链路和调用栈信息,对所述埋点日志进行切分聚合以生成Trace记录集合;基于所述Trace记录集合进行Trace分析展现。

Tracking method, compiling method, device and electronic equipment based on dynamic buried point

【技术实现步骤摘要】
基于动态埋点的跟踪方法、编译方法、装置和电子设备
本文件涉及计算机软件
,尤其涉及一种基于动态埋点的跟踪方法、编译方法、装置和电子设备。
技术介绍
当前移动端app问题跟踪定位时,开发同学不熟悉所有的依赖方业务逻辑和代码,问题排查需要牵扯消耗很多人力,沟通成本高。另外,打点缺失、主链路覆盖不全导致排查困难,而日志输出泛滥、互相干扰又会加大排查难度,日志排查效率低。如何优化移动端app问题的跟踪方法,成为亟待解决的技术问题。
技术实现思路
本说明书实施例的目的是提供一种基于动态埋点的跟踪方法、编译方法、装置和电子设备,以定位失败点,实现快速问题定位和故障排查。为解决上述技术问题,本说明书实施例是这样实现的:第一方面,提出了一种基于动态埋点的跟踪方法,该方法包括:获取目标应用的业务相关埋点配置和业务无关埋点配置;基于目标应用的业务相关埋点配置和业务无关埋点配置,在所述目标应用的原始源代码植入跟踪代码,以形成注入跟踪代码后的源代码并编译得到所述目标应用的应用程序,其中,所述跟踪代码包括本文档来自技高网...

【技术保护点】
1.一种基于动态埋点的跟踪方法,包括:/n获取目标应用的业务相关埋点配置和业务无关埋点配置;/n基于目标应用的业务相关埋点配置和业务无关埋点配置,在所述目标应用的原始源代码植入跟踪代码,以形成注入跟踪代码后的源代码并编译得到所述目标应用的应用程序,其中,所述跟踪代码包括所述业务相关埋点配置对应的埋点和所述业务无关埋点配置对应的埋点;/n采集所述目标应用运行时所述埋点生成的埋点日志;/n基于用户在移动端的点击序列、页面跳转链路、程序流调用链路和调用栈信息中多种的组合,对所述埋点日志进行切分聚合以生成跟踪Trace记录集合;/n基于所述Trace记录集合进行Trace分析展现。/n

【技术特征摘要】
1.一种基于动态埋点的跟踪方法,包括:
获取目标应用的业务相关埋点配置和业务无关埋点配置;
基于目标应用的业务相关埋点配置和业务无关埋点配置,在所述目标应用的原始源代码植入跟踪代码,以形成注入跟踪代码后的源代码并编译得到所述目标应用的应用程序,其中,所述跟踪代码包括所述业务相关埋点配置对应的埋点和所述业务无关埋点配置对应的埋点;
采集所述目标应用运行时所述埋点生成的埋点日志;
基于用户在移动端的点击序列、页面跳转链路、程序流调用链路和调用栈信息中多种的组合,对所述埋点日志进行切分聚合以生成跟踪Trace记录集合;
基于所述Trace记录集合进行Trace分析展现。


2.如权利要求1所述的方法,基于目标应用的业务相关埋点配置和业务无关埋点配置,在所述目标应用的原始源代码植入跟踪代码,以形成注入跟踪代码后的源代码并编译得到所述目标应用的应用程序,包括:
调用utils模块在所述目标应用的原始源代码植入所述业务相关埋点配置对应的埋点跟踪代码;以及
调用通用植入模块在所述目标应用的原始源代码植入所述业务无关埋点配置对应的埋点跟踪代码。


3.如权利要求2所述的方法,
所述埋点跟踪代码以非侵入hook的方式植入。


4.如权利要求2所述的方法,
所述utils模块和所述通用植入模块以gradleplugin的方式实现。


5.如权利要求2所述的方法,
所述埋点跟踪代码的数据采集线程设置为线程最低的优先级。


6.如权利要求1所述的方法,包括:
在所述目标应用运行时通过有效的目标用户行为输入确定采集的目标Trace的开始。


7.如权利要求6所述的方法,
采集所述目标应用运行时所述埋点生成的埋点日志,还包括:
通过所述目标用户行为输入的下一个有效的用户行为输入确定所述目标Trace的结束;或者
通过在所述目标Trace的停留时间大于所述目标Trace对应的预设停留时间时确定所述目标Trace的结束。


8.如权利要求1所述的方法,
采集所述目标应用运行时所述埋点生成的埋点日志,包括:
在所述目标应用运行时通过目标服务的调用确定采集的目标Trace的开始。


9.如权利要求8所述的方法,
采集所述目标应用运行时所述埋点生成的埋点日志,还包括:
通过所述目标服务的下一个服务的调用确定所述目标Trace的结束;或者
通过在所述目标Trace的停留时间大于所述目标Trace对应的预设停留时间时确定所述目标Trace的结束。


10.如权利要求1所述的方法,
所述Trace记录集合中的Trace记录携带访问用户标识和时间戳,基于所述Trace记录集合进行Trace分析展现包括:
按照访问用户标识和/或查询时间段从所述Trace记录集合中获取Trace记录;
基于获取的Trace记录进行所述目标应用的调用链路的数据分析。


11.如权利要求10所述的方法,所述目标应用的调用链路的数据分析包括如下至少一种:
Trace瀑布图展示分析;
Trace热力分析;
Bundle调用链路分析;
Trace耗时分析。


12.一种基于动态埋点的编译方法,包括:
获取目标应用的业务相关埋点配置和业务无关埋点配置;
基于目标应用的业务相关埋点配置和业务无关埋点配置,在所述目标应用的原始源代码植入跟踪代码,其中,所述跟踪代码包括所述业务相关埋点配置对应的埋点和所述业务无关埋点配置对应的埋点;
基于注入跟踪代码后的源代码编译得到所述目标应用的应用程序。


13.一种基于动态埋点的跟踪装置,包括:
获取模块,获取目标应用的业务相关埋点配置和业务无关埋点配置;
代码植入模块,基于目标应用的业务相关埋点配置...

【专利技术属性】
技术研发人员:董扬王京
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:浙江;33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1