[发明专利]基于动态埋点的跟踪方法、编译方法、装置和电子设备有效
申请号: | 201911302448.8 | 申请日: | 2019-12-17 |
公开(公告)号: | CN111124906B | 公开(公告)日: | 2022-06-28 |
发明(设计)人: | 董扬;王京 | 申请(专利权)人: | 蚂蚁财富(上海)金融信息服务有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/41 |
代理公司: | 北京国昊天诚知识产权代理有限公司 11315 | 代理人: | 许振新 |
地址: | 200010 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 动态 跟踪 方法 编译 装置 电子设备 | ||
1.一种基于动态埋点的跟踪方法,包括:
获取目标应用的业务相关埋点配置和业务无关埋点配置;
基于目标应用的业务相关埋点配置和业务无关埋点配置,在所述目标应用的原始源代码植入跟踪代码,以形成注入跟踪代码后的源代码并编译得到所述目标应用的应用程序,包括:调用utils模块在所述目标应用的原始源代码植入所述业务相关埋点配置对应的埋点跟踪代码;以及调用通用植入模块在所述目标应用的原始源代码植入所述业务无关埋点配置对应的埋点跟踪代码;其中,所述跟踪代码包括所述业务相关埋点配置对应的埋点和所述业务无关埋点配置对应的埋点;
采集所述目标应用运行时所述埋点生成的埋点日志;
基于用户在移动端的点击序列、页面跳转链路、程序流调用链路和调用栈信息中多种的组合,对所述埋点日志进行切分聚合以生成跟踪Trace记录集合;
基于所述Trace记录集合进行Trace分析展现。
2.如权利要求1所述的方法,
所述埋点跟踪代码以非侵入hook的方式植入。
3.如权利要求1所述的方法,
所述utils模块和所述通用植入模块以gradle plugin的方式实现。
4.如权利要求1所述的方法,
所述埋点跟踪代码的数据采集线程设置为线程最低的优先级。
5.如权利要求1所述的方法,包括:
在所述目标应用运行时通过有效的目标用户行为输入确定采集的目标Trace的开始。
6.如权利要求5所述的方法,
采集所述目标应用运行时所述埋点生成的埋点日志,还包括:
通过所述目标用户行为输入的下一个有效的用户行为输入确定所述目标Trace的结束;或者
通过在所述目标Trace的停留时间大于所述目标Trace对应的预设停留时间时确定所述目标Trace的结束。
7.如权利要求1所述的方法,
采集所述目标应用运行时所述埋点生成的埋点日志,包括:
在所述目标应用运行时通过目标服务的调用确定采集的目标Trace的开始。
8.如权利要求7所述的方法,
采集所述目标应用运行时所述埋点生成的埋点日志,还包括:
通过所述目标服务的下一个服务的调用确定所述目标Trace的结束;或者
通过在所述目标Trace的停留时间大于所述目标Trace对应的预设停留时间时确定所述目标Trace的结束。
9.如权利要求1所述的方法,
所述Trace记录集合中的Trace记录携带访问用户标识和时间戳,基于所述Trace记录集合进行Trace分析展现包括:
按照访问用户标识和/或查询时间段从所述Trace记录集合中获取Trace记录;
基于获取的Trace记录进行所述目标应用的调用链路的数据分析。
10.如权利要求9所述的方法,所述目标应用的调用链路的数据分析包括如下至少一种:
Trace瀑布图展示分析;
Trace热力分析;
Bundle调用链路分析;
Trace耗时分析。
11.一种基于动态埋点的编译方法,包括:
获取目标应用的业务相关埋点配置和业务无关埋点配置;
基于目标应用的业务相关埋点配置和业务无关埋点配置,在所述目标应用的原始源代码植入跟踪代码,包括:调用utils模块在所述目标应用的原始源代码植入所述业务相关埋点配置对应的埋点跟踪代码;以及调用通用植入模块在所述目标应用的原始源代码植入所述业务无关埋点配置对应的埋点跟踪代码;其中,所述跟踪代码包括所述业务相关埋点配置对应的埋点和所述业务无关埋点配置对应的埋点;
基于注入跟踪代码后的源代码编译得到所述目标应用的应用程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于蚂蚁财富(上海)金融信息服务有限公司,未经蚂蚁财富(上海)金融信息服务有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911302448.8/1.html,转载请声明来源钻瓜专利网。