自动化埋点方法和装置、计算机可读存储介质、电子设备制造方法及图纸

技术编号:39036170 阅读:9 留言:0更新日期:2023-10-10 11:49
本公开是关于一种自动化埋点方法和装置、计算机可读介质、电子设备,涉及计算机技术领域,该方法包括:获取埋点配置文件,对所述埋点配置文件进行解析,得到所述埋点配置文件中包括的配置对象;获取所述配置对象中包括的配置信息,根据所述配置信息确定项目的语法树中与所述配置对象对应的节点;利用所述配置信息生成语法树插入节点,并将所述语法树插入节点插入到与所述配置对象对应的节点下,得到埋点语法树;将所述埋点语法树转换为字符串,以完成对所述项目的自动化埋点。本公开降低了埋点代码与逻辑代码的耦合。码与逻辑代码的耦合。码与逻辑代码的耦合。

【技术实现步骤摘要】
自动化埋点方法和装置、计算机可读存储介质、电子设备


[0001]本公开实施例涉及计算机
,具体而言,涉及一种自动化埋点方法、自动化埋点装置、计算机可读存储介质以及电子设备。

技术介绍

[0002]随着计算机技术的发展,为了分析网站或者应用系统的性能,需要在项目的源码中添加一些额外的代码来收集用户使用该网站或者应用系统时的相关数据,即,通过埋点实现对用户数据的收集。
[0003]目前的埋点方案主要有:编程式埋点和全局埋点。编程式埋点是在开发的同时进行埋点;全局埋点是在页面根节点或者页面指定栏进行事件埋点绑定。但是,上述编程式埋点使得埋点代码和业务逻辑严重耦合,影响需求的开发;全局埋点会影响页面性能。
[0004]因此,需要提供一种新的自动化埋点方法。
[0005]需要说明的是,在上述
技术介绍
部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

技术实现思路

[0006]本公开的目的在于提供一种自动化埋点方法、自动化埋点装置、计算机可读存储介质以及电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的埋点代码与业务代码严重耦合的问题。
[0007]根据本公开的一个方面,提供一种自动化埋点方法,包括:
[0008]获取埋点配置文件,对所述埋点配置文件进行解析,得到所述埋点配置文件中包括的配置对象;
[0009]获取所述配置对象中包括的配置信息,根据所述配置信息确定项目的语法树中与所述配置对象对应的节点;
[0010]利用所述配置信息生成语法树插入节点,并将所述语法树插入节点插入到与所述配置对象对应的节点下,得到埋点语法树;
[0011]将所述埋点语法树转换为字符串,以完成对所述项目的自动化埋点。
[0012]在本公开的一种示例性实施例中,所述埋点配置文件为js文件或json文件;
[0013]当所述埋点配置文件为json文件时,对所述埋点配置文件进行解析,得到所述埋点配置文件中包括的配置对象,包括:
[0014]通过即时编译型编程语言的运行环境中包括的文件处理模块,对所述埋点配置文件进行读取,获取所述埋点配置文件中包括的文件内容;
[0015]对所述文件内容进行反序列化,得到所述埋点配置文件中包括的配置对象。
[0016]在本公开的一种示例性实施例中,在根据所述配置信息确定项目的语法树中与所述配置对象对应的节点之前,所述自动化埋点方法还包括:
[0017]在对所述项目的源码打包时,通过编写即时编译型编程语言的编译器对所述项目
的源码进行转换,得到所述项目的语法树。
[0018]在本公开的一种示例性实施例中,获取所述配置对象中包括的配置信息,根据所述配置信息确定项目的语法树中与所述配置对象对应的节点,包括:
[0019]获取所述项目的语法树以及所述项目的语法树中包括的节点的类型;
[0020]获取所述配置对象中包括的配置信息,其中,所述配置信息包括:需要埋点的文件、需要埋点的方法名以及埋点参数;
[0021]在所述需要埋点的文件中确定所述需要埋点的方法名所在的代码段,以及所述代码段在所述项目的源码中的结构;
[0022]在所述语法树中确定与所述代码段在所述项目的源码中的结构对应的节点类型,并根据所述节点类型确定项目的语法树中与所述配置对象对应的节点。
[0023]在本公开的一种示例性实施例中,获取所述配置对象中包括的配置信息,根据所述配置信息确定项目的语法树中与所述配置对象对应的节点,还包括:
[0024]当所述项目为跨端实现时,确定所述项目在任一端的前端框架,并且获取与所述任一端的源码对应的语法树;
[0025]根据所述前端框架以及所述前端框架中的函数定义方式,确定与所述任一端的源码对应的语法树中包括方法的节点;
[0026]根据所述配置信息,在所述包括方法的节点中确定与所述配置对象对应的节点。
[0027]在本公开的一种示例性实施例中,利用所述配置信息生成语法树插入节点,包括:
[0028]通过编写即时编译型编程语言的编译器的模板转换工具生成模板方法;
[0029]根据所述配置对象中包括的配置信息,执行所述模板方法,生成所述语法树插入节点。
[0030]在本公开的一种示例性实施例中,将所述语法树插入节点插入到与所述配置对象对应的节点下,得到埋点语法树,包括:
[0031]将所述语法插入节点作为与所述配置对象对应的节点的子节点,插入到所述项目的语法树中,得到埋点语法树。
[0032]在本公开的一种示例性实施例中,将所述埋点语法树转换为字符串,以完成对所述项目的自动化埋点,包括:
[0033]通过编写即时编译型编程语言的编译器的生成模块将所述埋点语法树转换为字符串输出。
[0034]根据本公开的一个方面,提供一种自动化埋点装置,包括:
[0035]配置对象获取模块,用于获取埋点配置文件,对所述埋点配置文件进行解析,得到所述埋点配置文件中包括的配置对象;
[0036]需要插入节点确定模块,用于获取所述配置对象中包括的配置信息,根据所述配置信息确定项目的语法树中与所述配置对象对应的节点;
[0037]埋点语法树生成模块,用于利用所述配置信息生成语法树插入节点,并将所述语法树插入节点插入到与所述配置对象对应的节点下,得到埋点语法树;
[0038]自动埋点模块,用于将所述埋点语法树转换为源码字符串,以完成对所述项目的自动化埋点。
[0039]根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,
所述计算机程序被处理器执行时实现上述任一示例性实施例所述的自动化埋点方法。
[0040]根据本公开的一个方面,提供一种电子设备,包括:
[0041]处理器;以及
[0042]存储器,用于存储所述处理器的可执行指令;
[0043]其中,所述处理器配置为经由执行所述可执行指令来执行上述任一示例性实施例所述的自动化埋点方法。
[0044]本公开实施例提供的一种自动化埋点方法,获取埋点配置文件,对所述埋点配置文件进行解析,得到所述埋点配置文件中包括的配置对象;获取所述配置对象中包括的配置信息,根据所述配置信息确定项目的语法树中与所述配置对象对应的节点;利用所述配置信息生成语法树插入节点,并将所述语法树插入节点插入到与所述配置对象对应的节点下,得到埋点语法树;将所述埋点语法树转换为字符串,以完成对所述项目的自动化埋点;一方面,读取埋点配置文件,获取埋点配置文件中包括的配置对象以及配置对象中包括的配置信息,然后,根据配置信息确定在项目的语法树中需要插入代码的节点,即,语法树中与配置对象对应的节点,再次,根据配置信息生成语法树插入节点,并将该插入节点插入到项目的语法树中,得到埋点语法树,最后,将埋点语法树转换成字符串,实现了对埋点代码的自动插入本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种自动化埋点方法,其特征在于,包括:获取埋点配置文件,对所述埋点配置文件进行解析,得到所述埋点配置文件中包括的配置对象;获取所述配置对象中包括的配置信息,根据所述配置信息确定项目的语法树中与所述配置对象对应的节点;利用所述配置信息生成语法树插入节点,并将所述语法树插入节点插入到与所述配置对象对应的节点下,得到埋点语法树;将所述埋点语法树转换为字符串,以完成对所述项目的自动化埋点。2.根据权利要求1所述的自动化埋点方法,其特征在于,所述埋点配置文件为js文件或json文件;当所述埋点配置文件为json文件时,对所述埋点配置文件进行解析,得到所述埋点配置文件中包括的配置对象,包括:通过即时编译型编程语言的运行环境中包括的文件处理模块,对所述埋点配置文件进行读取,获取所述埋点配置文件中包括的文件内容;对所述文件内容进行反序列化,得到所述埋点配置文件中包括的配置对象。3.根据权利要求1所述的自动化埋点方法,其特征在于,在根据所述配置信息确定项目的语法树中与所述配置对象对应的节点之前,所述自动化埋点方法还包括:在对所述项目的源码打包时,通过编写即时编译型编程语言的编译器对所述项目的源码进行转换,得到所述项目的语法树。4.根据权利要求1所述的自动化埋点方法,其特征在于,获取所述配置对象中包括的配置信息,根据所述配置信息确定项目的语法树中与所述配置对象对应的节点,包括:获取所述项目的语法树以及所述项目的语法树中包括的节点的类型;获取所述配置对象中包括的配置信息,其中,所述配置信息包括:需要埋点的文件、需要埋点的方法名以及埋点参数;在所述需要埋点的文件中确定所述需要埋点的方法名所在的代码段,以及所述代码段在所述项目的源码中的结构;在所述语法树中确定与所述代码段在所述项目的源码中的结构对应的节点类型,并根据所述节点类型确定项目的语法树中与所述配置对象对应的节点。5.根据权利要求1所述的自动化埋点方法,其特征在于,获取所述配置对象中包括的配置信息,根据所述配置信息确定项目的语法树中与所述配置对象对应的节点,还包括:当所述项目为跨端实现时,确定所述项目...

【专利技术属性】
技术研发人员:彭博李松王明鑫
申请(专利权)人:北京京东振世信息技术有限公司
类型:发明
国别省市:

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

1