CN110209386B - 数据埋点的设置方法、埋点数据的获取方法及装置 - Google Patents
数据埋点的设置方法、埋点数据的获取方法及装置 Download PDFInfo
- Publication number
- CN110209386B CN110209386B CN201910413174.3A CN201910413174A CN110209386B CN 110209386 B CN110209386 B CN 110209386B CN 201910413174 A CN201910413174 A CN 201910413174A CN 110209386 B CN110209386 B CN 110209386B
- Authority
- CN
- China
- Prior art keywords
- point
- annotation
- buried
- buried point
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 73
- 230000006870 function Effects 0.000 claims abstract description 175
- 238000012544 monitoring process Methods 0.000 claims description 41
- 230000008569 process Effects 0.000 claims description 27
- 238000004891 communication Methods 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 7
- 230000001808 coupling effect Effects 0.000 abstract description 4
- 230000006399 behavior Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000009933 burial Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例提供了一种数据埋点的设置方法、埋点数据的获取方法及装置。首先,获得预先定义的针对业务代码的切入点,切入点包含待注入埋点代码的各个业务函数的标识;然后,根据切入点获得业务代码中各个设置了埋点注解的业务函数;埋点注解中包含埋点的配置信息;最后,获得预先编写的通用埋点代码,并注入至各个设置了埋点注解的业务函数中,生成设置了埋点的各个业务函数。由于业务函数中设置的埋点是根据预设在业务代码中的埋点注解以及预先编写的通用埋点代码生成的,无需预先将不同的埋点代码写入到业务代码中的不同位置,因而可以降低业务代码与埋点代码的耦合性。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种数据埋点的设置方法、埋点数据的获取方法及装置。
背景技术
“埋点”是数据采集领域的术语,指的是当应用中某些特定事件发生时采集相关的数据信息,如访客数、页面停留时间、点击率等,从而为进一步优化产品提供数据支撑。常用的埋点方法包括:代码埋点、全埋点以及可视化埋点。由于代码埋点可以根据业务需求采集数据,并且所采集的数据质量高、类型丰富,因而常常以代码埋点的方式来采集所需数据。
现有技术中,通过代码埋点的方法进行数据采集时,要在业务代码中的不同位置分别写入埋点代码,当需要关注的事件发生时,利用埋点代码获取该事件的相关数据,并将采集到的数据整理后发送至服务器。然而,由于在原有的业务代码中写入了大量与业务逻辑无关的重复代码用于埋点,使得业务代码与埋点代码的耦合性较高,不利于业务代码的维护。
发明内容
本发明实施例的目的在于提供一种数据埋点的设置方法、数据获取方法及装置,以降低业务代码与埋点代码的耦合性。具体技术方案如下:
第一方面,本发明实施例提供了一种数据埋点的设置方法,其特征在于,所述方法包括:
获得预先定义的针对业务代码的切入点;所述切入点包含待注入通用埋点代码的各个业务函数的标识;
根据所述切入点,获得业务代码中各个设置了埋点注解的业务函数;所述埋点注解中包含埋点的配置信息;
获得预先编写的通用埋点代码;
将所述通用埋点代码注入至所述各个设置了埋点注解的业务函数中,生成设置了埋点的各个业务函数。
可选的,所述埋点注解,包括:埋点注解类;所述埋点注解类包含:用于保存所述埋点配置信息的参数注解类;
所述根据所述切入点,获得业务代码中各个设置了埋点注解的业务函数的步骤,包括:
将所述切入点中的各个业务函数的标识与业务代码中各个业务函数的标识进行匹配,获得业务代码中各个设置了埋点注解的业务函数。
可选的,所述埋点注解,包括:埋点组注解类;所述埋点组注解类包含多个埋点注解类;所述多个埋点注解类中的每个埋点注解类包含:用于保存对应埋点的配置信息的参数注解类;
所述根据所述切入点,获得业务代码中各个设置了埋点注解的业务函数的步骤,包括:
将所述切入点中的各个业务函数的标识与业务代码中各个业务函数的标识进行匹配,获得业务代码中各个设置了埋点注解的业务函数。
可选的,所述获得预先编写的通用埋点代码的步骤,包括:
获得输入的通用埋点代码的标识;
根据所述通用埋点代码的标识,获得预先存储的通用埋点代码。
第二方面,本发明实施例提供了一种埋点数据的获取方法,其特征在于,所述方法包括:
在业务函数执行过程中根据其中预设的埋点注解,监听其自身是否产生了埋点事件;所述埋点注解中包含埋点的配置信息;所述埋点配置信息,包含埋点事件及对应埋点事件要采集的数据项;
若监听到埋点事件,根据所述埋点注解采集该业务函数的埋点事件对应的数据项的数据,作为该业务函数的埋点数据;
将采集到的埋点数据写入到所述埋点注解中;
从各个业务函数的埋点注解中,获取采集到的各个业务函数的埋点数据。
可选的,所述埋点注解,包括:埋点注解类;所述埋点注解类包含:用于保存所述埋点配置信息的参数注解类;
所述在业务函数执行过程中根据其中预设的埋点注解,监听其自身是否产生了埋点事件的步骤,包括:
在业务函数执行过程中获取所述埋点注解类中的参数注解类中的埋点事件,按照参数注解类中的埋点事件,监听其自身是否产生了埋点事件;
所述若监听到埋点事件,根据所述埋点注解采集该业务函数的埋点事件对应的数据项的数据,作为该业务函数的埋点数据的步骤,包括:
若监听到埋点事件,获取所述埋点注解类中的参数注解类中对应埋点事件要采集的数据项;按照参数注解类中的要采集的数据项,采集埋点事件对应的数据项的数据,作为埋点数据。
可选的,所述埋点注解,包括:埋点组注解类;所述埋点组注解类包含多个埋点注解类;所述多个埋点注解类中的每个埋点注解类包含:用于保存对应埋点的配置信息的参数注解类;
所述在业务函数执行过程中根据其中预设的埋点注解,监听其自身是否产生了埋点事件的步骤,包括:
在业务函数执行过程中获取所述埋点组注解类中的各个埋点注解类中的参数注解类中的埋点事件,按照各个参数注解类中的埋点事件,监听其自身是否产生了埋点事件;
所述若监听到埋点事件,根据所述埋点注解采集该业务函数的埋点事件对应的数据项的数据,作为该业务函数的埋点数据的步骤,包括:
若监听到埋点事件,获取所述埋点组注解类中,各个埋点注解类的参数注解类中的要采集的数据项,按照所述要采集的数据项,采集埋点事件对应的数据项的数据,作为埋点数据。
可选的,根据上述任一所述的埋点数据的获取方法,其特征在于,还包括:
将获得的埋点数据上传至服务器。
第三方面,本发明实施例提供了一种数据埋点的设置装置,其特征在于,所述装置包括:
切入点获得模块,用于获得预先定义的针对业务代码的切入点;所述切入点包含待注入通用埋点代码的各个业务函数的标识;
业务函数获得模块,用于根据所述切入点,获得业务代码中各个设置了埋点注解的业务函数;所述埋点注解中包含埋点的配置信息;
埋点代码获得模块,用于获得预先编写的通用埋点代码;
生成模块,用于将所述通用埋点代码注入至所述各个设置了埋点注解的业务函数中,生成设置了埋点的各个业务函数。
可选的,所述埋点注解,包括:埋点注解类;所述埋点注解类包含:用于保存所述埋点配置信息的参数注解类;
所述业务函数获得模块,包括:
第一匹配单元,用于将所述切入点中的各个业务函数的标识与业务代码中各个业务函数的标识进行匹配,获得业务代码中各个设置了埋点注解的业务函数。
可选的,所述埋点注解,包括:埋点组注解类;所述埋点组注解类包含多个埋点注解类;所述多个埋点注解类中的每个埋点注解类包含:用于保存对应埋点的配置信息的参数注解类;
所述业务函数获得模块,包括:
第二匹配单元,用于将所述切入点中的各个业务函数的标识与业务代码中各个业务函数的标识进行匹配,获得业务代码中各个设置了埋点注解的业务函数。
可选的,所述埋点代码获得模块,包括:
第一获得子模块,用于获得输入的通用埋点代码的标识;
第二获得子模块,用于根据所述通用埋点代码的标识,获得预先存储的通用埋点代码。
第四方面,本发明实施例提供了一种埋点数据的获取装置,其特征在于,所述装置包括:
事件监听模块,用于在业务函数执行过程中根据其中预设的埋点注解,监听其自身是否产生了埋点事件;所述埋点注解中包含埋点的配置信息;所述埋点配置信息,包含埋点事件及对应埋点事件要采集的数据项;
数据采集模块,用于若监听到埋点事件,根据所述埋点注解采集该业务函数的埋点事件对应的数据项的数据,作为该业务函数的埋点数据;
数据写入模块,用于将采集到的埋点数据写入到所述埋点注解中;
数据获取模块,用于从各个业务函数的埋点注解中,获取采集到的各个业务函数的埋点数据。
可选的,所述埋点注解,包括:埋点注解类;所述埋点注解类包含:用于保存所述埋点配置信息的参数注解类;
所述事件监听模块,包括:
第一监听子模块,用于在业务函数执行过程中获取所述埋点注解类中的参数注解类中的埋点事件,按照参数注解类中的埋点事件,监听其自身是否产生了埋点事件;
所述数据采集模块,包括:
第一采集子模块,用于若监听到埋点事件,获取所述埋点注解类中的参数注解类中对应埋点事件要采集的数据项;按照参数注解类中的要采集的数据项,采集埋点事件对应的数据项的数据,作为埋点数据。
可选的,所述埋点注解,包括:埋点组注解类;所述埋点组注解类包含多个埋点注解类;所述多个埋点注解类中的每个埋点注解类包含:用于保存对应埋点的配置信息的参数注解类;
所述事件监听模块,包括:
第二监听子模块,用于在业务函数执行过程中获取所述埋点组注解类中的各个埋点注解类中的参数注解类中的埋点事件,按照各个参数注解类中的埋点事件,监听其自身是否产生了埋点事件;
所述数据采集模块,包括:
第二采集子模块,用于若监听到埋点事件,获取所述埋点组注解类中,各个埋点注解类的参数注解类中的要采集的数据项,按照所述要采集的数据项,采集埋点事件对应的数据项的数据,作为埋点数据。
可选的,根据上述任一所述的埋点数据的获取装置,其特征在于,还包括:
数据上传模块,用于将获得的埋点数据上传至服务器。
第五方面,本发明实施例提供了一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一数据埋点的设置方法或任一埋点数据的获取方法的步骤。
本发明实施例提供的一种数据埋点的设置方法、数据获取方法及装置,首先,获得预先定义的针对业务代码的切入点,切入点包含待注入通用埋点代码的各个业务函数的标识;然后,根据切入点获得业务代码中各个设置了埋点注解的业务函数;埋点注解中包含埋点的配置信息;最后,获得预先编写的通用埋点代码,并注入至各个设置了埋点注解的业务函数中,生成设置了埋点的各个业务函数。由于业务函数中设置的埋点是根据预设在业务代码中的埋点注解以及预先编写的通用埋点代码生成的,无需预先将不同的埋点代码写入到业务代码中的不同位置,因而可以降低业务代码与埋点代码的耦合性。
当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的一种数据埋点的设置方法的流程示意图;
图2a为本发明实施例提供的一种数据埋点设置方法的示例图;
图2b为本发明实施例提供的另一种数据埋点设置方法的示例图;
图3为本发明实施例提供的一种埋点数据的获取方法的流程示意图;
图4为本发明实施例提供的一种数据埋点的设置装置的结构示意图;
图5为本发明实施例提供的一种埋点数据的获取装置的结构示意图;
图6为本发明实施例提供的一种电子设备示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
为了降低业务代码与埋点代码的耦合性,本发明实施例提供了一种数据埋点的设置方法。具体的,数据埋点的设置方法如图1所示,包括:
S101,获得预先定义的针对业务代码的切入点;切入点包含待注入通用埋点代码的各个业务函数的标识。
可以理解的是,设置数据埋点的作用是在业务代码中的业务函数执行时,采集特定事件的相关数据。但是,业务代码中往往含有多个业务函数,因此,要先通过预先定义的针对业务代码的切入点,确定业务代码中需要进行数据埋点操作的业务函数。
具体的,切入点可以是预先由人工设置的。
S102,根据切入点,获得业务代码中各个设置了埋点注解的业务函数;埋点注解中包含埋点的配置信息;
具体的,埋点配置信息,可以包含埋点事件及对应埋点事件要采集的数据项。
本步骤中,可以根据业务代码的存储地址,找到业务代码;再根据切入点中包含的待注入通用埋点代码的各个业务函数的标识,从业务代码中获得业务代码中各个设置了埋点注解的业务函数。具体的,可以通过将切入点中的各个业务函数的标识与业务代码中各个业务函数的标识进行匹配,可以获得业务代码中各个设置了埋点注解的业务函数。
具体的,埋点事件可以为一个,也可以为多个。当埋点事件为一个时,预设在业务代码中的埋点注解,可以包括埋点注解类,而埋点注解类中,可以包含:用于保存埋点配置信息的参数注解类。当埋点事件为多个时,预设在业务代码中的埋点注解,可以包括埋点组注解类,埋点组注解类包含多个埋点注解类,每个埋点注解类可以包含:用于保存对应埋点的配置信息的参数注解类。
S103,获得预先编写的通用埋点代码。
具体的,获得输入的通用埋点代码的标识,根据该标识,获得预先存储的通用埋点代码。通用埋点代码的标识可以是它的名称,也可以是它的存储路径信息。
S104,将通用埋点代码注入至各个设置了埋点注解的业务函数中,生成设置了埋点的各个业务函数。
本实施例中,首先,根据切入点中需添加通用埋点代码的业务函数的标识,获得业务代码中各个设置了埋点注解的业务函数;当所设置的埋点注解中的埋点事件为一个时,如示例图2a所示,埋点注解包含埋点注解类@Pingback,@Pingback中包含参数注解类@PbParam(key=“k1”,val=“v1”)以及@PbParam(key=“k2”,val=“v2”);其中,key=“k1”、key=“k2”为埋点事件要采集的数据项,val=“v1”、val=“v2”分别为数据项“k1”、“k2”对应的要采集的埋点数据。将切入点中需添加通用埋点代码的业务函数的标识与业务函数void doAction的标识进行匹配,获得业务代码中设置了埋点注解的业务函数,并将获得的通用埋点代码注入设置有埋点注解的业务函数中,以生成设置了埋点的业务函数。当所设置的埋点注解中的埋点事件为多个时,如示例图2b所示,埋点注解中包含埋点组注解类@PingbackGroup,@PingbackGroup中包含多个埋点注解类@Pingback,每一个@Pingback中又包含埋点事件及其对应的要采集的数据项。获得业务代码中各个设置了埋点注解的业务函数时,只需将切入点中的各个业务函数的标识与业务代码中各个业务函数的标识进行匹配,数据埋点的具体设置方法与图2a所示的埋点设置方法相同,故此处不再赘述。
由图1所示实施例可见,由于业务函数中设置的埋点是根据预设在业务代码中的埋点注解以及预先编写的通用埋点代码生成的,无需预先将埋点代码写入业务代码中的不同位置,降低了业务代码与埋点代码的耦合性,有利于业务代码的后期维护。
本发明实施例还提供了一种埋点数据的获取方法。具体的,如图3所示,本发明实施例提供的埋点数据的获取方法,包括:
S301,在业务函数执行过程中根据其中预设的埋点注解,监听其自身是否产生了埋点事件;埋点注解中包含埋点的配置信息;埋点配置信息,包含埋点事件及对应埋点事件要采集的数据项。
S302,若监听到埋点事件,根据埋点注解采集该业务函数的埋点事件对应的数据项的数据,作为该业务函数的埋点数据。
具体的,埋点注解包括埋点注解类,埋点注解类中包含用于保存埋点配置信息的参数注解类。
步骤S301~S302中,在业务函数执行过程中获取埋点注解类中的参数注解类中的埋点事件,按照参数注解类中的埋点事件,监听其自身是否产生了埋点事件;若监听到埋点事件,则获取埋点注解类中的参数注解类中对应埋点事件要采集的数据项;按照参数注解类中的要采集的数据项,采集埋点事件对应的数据项的数据,作为埋点数据。
本实施例中,埋点事件可以为一种用户操作行为,如单击行为、双击行为,也可以为一个业务过程,如注册账号、用户投诉、观看视频等。
示例性的,以“点击行为”作为埋点事件进行说明。首先,从埋点注解类中的参数注解类中获取“点击行为”这一埋点事件;然后,监听在业务执行过程中,是否产生了“点击行为”;若监听到“点击行为”发生,则获取埋点注解类中的参数注解类中对应埋点事件要采集的数据项;其中,与该埋点事件对应的要采集的数据项可以为:点击时间、点击位置、产生点击行为的用户的昵称等;最后,按照参数注解类中要采集的数据项,采集各个数据项的数据,作为埋点数据。
若有多个埋点事件的埋点数据需要获取,那么埋点注解可以包括埋点组注解类;其中,埋点组注解类中包含多个埋点注解类,每个埋点注解类包含:用于保存对应埋点的配置信息的参数注解类。在业务函数执行过程中,获取埋点组注解类中的各个埋点注解类中的参数注解类中的埋点事件,按照各个参数注解类中的埋点事件,监听其自身是否产生了埋点事件。若监听到埋点事件,获取埋点组注解类中,各个埋点注解类中的参数注解类中的要采集的数据项,并按照数据项采集埋点事件对应的数据项的数据,作为埋点数据。
S303,将采集到的埋点数据写入到埋点注解中。
S304,从各个业务函数的埋点注解中,获取采集到的各个业务函数的埋点数据。
具体的,从埋点注解中的参数注解类中解析获得埋点数据,转换为预设的数据格式后,上传至数据接收服务器。
作为本发明实施例的一种实施方式,如图4所示,本发明实施例提供的一种数据埋点的设置装置,包括:
切入点获得模块410,用于获得预先定义的针对业务代码的切入点;切入点包含待注入通用埋点代码的各个业务函数的标识;
业务函数获得模块420,用于根据切入点,获得业务代码中各个设置了埋点注解的业务函数;埋点注解中包含埋点的配置信息;
埋点代码获得模块430,用于获得预先编写的通用埋点代码;
生成模块440,用于将通用埋点代码注入至各个设置了埋点注解的业务函数中,生成设置了埋点的各个业务函数。
本发明实施例提供的一种数据埋点的设置装置,首先,获得预先定义的针对业务代码的切入点,切入点包含待注入通用埋点代码的各个业务函数的标识;然后,根据切入点获得业务代码中各个设置了埋点注解的业务函数;埋点注解中包含埋点的配置信息;最后,获得预先编写的通用埋点代码,并注入至各个设置了埋点注解的业务函数中,生成设置了埋点的各个业务函数。由于业务函数中设置的埋点是根据预设在业务代码中的埋点注解以及预先编写的通用埋点代码生成的,无需预先将不同的埋点代码写入到业务代码中的不同位置,因而可以降低业务代码与埋点代码的耦合性。
作为本发明实施例的一种实施方式,埋点注解,包括:埋点注解类;埋点注解类包含:用于保存埋点配置信息的参数注解类;
业务函数获得模块420,可以包括:
第一匹配单元,用于将切入点中的各个业务函数的标识与业务代码中各个业务函数的标识进行匹配,获得业务代码中各个设置了埋点注解的业务函数。
作为本发明实施例的一种实施方式,埋点注解,包括:埋点组注解类;埋点组注解类包含多个埋点注解类;多个埋点注解类中的每个埋点注解类包含:用于保存对应埋点的配置信息的参数注解类;
业务函数获得模块420,可以包括:
第二匹配单元,用于将切入点中的各个业务函数的标识与业务代码中各个业务函数的标识进行匹配,获得业务代码中各个设置了埋点注解的业务函数。
作为本发明实施例的一种实施方式,埋点代码获得模块430,包括:
第一获得子模块,用于获得输入的通用埋点代码的标识;
第二获得子模块,用于根据通用埋点代码的标识,获得预先存储的通用埋点代码。
本发明实施例提供的一种数据埋点的设置装置,首先,获得预先定义的针对业务代码的切入点,切入点包含待注入通用埋点代码的各个业务函数的标识;然后,根据切入点获得业务代码中各个设置了埋点注解的业务函数;埋点注解中包含埋点的配置信息;最后,获得预先编写的通用埋点代码,并注入至各个设置了埋点注解的业务函数中,生成设置了埋点的各个业务函数。由于业务函数中设置的埋点是根据预设在业务代码中的埋点注解以及预先编写的通用埋点代码生成的,无需预先将不同的埋点代码写入到业务代码中的不同位置,因而可以降低业务代码与埋点代码的耦合性。
作为本发明实施例的一种实施方式,如图5所示,本发明实施例提供的一种埋点数据的获取装置,包括:
事件监听模块510,用于在业务函数执行过程中根据其中预设的埋点注解,监听其自身是否产生了埋点事件;埋点注解中包含埋点的配置信息;埋点配置信息,包含埋点事件及对应埋点事件要采集的数据项;
数据采集模块520,用于若监听到埋点事件,根据埋点注解采集该业务函数的埋点事件对应的数据项的数据,作为该业务函数的埋点数据;
数据写入模块530,用于将采集到的埋点数据写入到埋点注解中;
数据获取模块540,用于从各个业务函数的埋点注解中,获取采集到的各个业务函数的埋点数据。
作为本发明实施例的一种实施方式,埋点注解,包括:埋点注解类;埋点注解类包含:用于保存埋点配置信息的参数注解类;
事件监听模块510,包括:
第一监听子模块,用于在业务函数执行过程中获取所述埋点注解类中的参数注解类中的埋点事件,按照参数注解类中的埋点事件,监听其自身是否产生了埋点事件;
数据采集模块520,包括:
第一采集子模块,用于若监听到埋点事件,获取埋点注解类中的参数注解类中对应埋点事件要采集的数据项;按照参数注解类中的要采集的数据项,采集埋点事件对应的数据项的数据,作为埋点数据。
作为本发明实施例的一种实施方式,埋点注解,包括:埋点组注解类;埋点组注解类包含多个埋点注解类;多个埋点注解类中的每个埋点注解类包含:用于保存对应埋点的配置信息的参数注解类;
事件监听模块510,包括:
第二监听子模块,用于在业务函数执行过程中获取埋点组注解类中的各个埋点注解类中的参数注解类中的埋点事件,按照各个参数注解类中的埋点事件,监听其自身是否产生了埋点事件;
第二采集子模块,用于若监听到埋点事件,获取埋点组注解类中,各个埋点注解类中的参数注解类中的要采集的数据项,按照要采集的数据项,采集埋点事件对应的数据项的数据,作为埋点数据。
作为本发明实施例的一种实施方式,上述埋点数据的获取装置,还包括:
数据上传模块,用于将获得的埋点数据上传至服务器。
本发明实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器604和通信总线604,其中,处理器601,通信接口602,存储器604通过通信总线604完成相互间的通信,
存储器604,用于存放计算机程序;
处理器601,用于执行存储器604上所存放的程序时,实现如下步骤:
获得预先定义的针对业务代码的切入点;切入点包含待注入通用埋点代码的各个业务函数的标识;
根据切入点,获得业务代码中各个设置了埋点注解的业务函数;埋点注解中包含埋点的配置信息;
获得预先编写的通用埋点代码;
将通用埋点代码注入至各个设置了埋点注解的业务函数中,生成设置了埋点的各个业务函数。
或者,
在业务函数执行过程中根据其中预设的埋点注解,监听其自身是否产生了埋点事件;埋点注解中包含埋点的配置信息;埋点配置信息,包含埋点事件及对应埋点事件要采集的数据项;
若监听到埋点事件,根据埋点注解采集该业务函数的埋点事件对应的数据项的数据,作为该业务函数的埋点数据;
将采集到的埋点数据写入到埋点注解中;
从各个业务函数的埋点注解中,获取采集到的各个业务函数的埋点数据。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一数据埋点的设置方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一数据埋点的设置方法以及埋点数据的获取方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (9)
1.一种数据埋点的设置方法,其特征在于,所述方法包括:
获得预先定义的针对业务代码的切入点;所述切入点包含待注入通用埋点代码的各个业务函数的标识;
根据所述切入点,获得业务代码中各个设置了埋点注解的业务函数;所述埋点注解中包含埋点的配置信息;所述埋点配置信息包含埋点事件及对应埋点事件要采集的数据项;
获得预先编写的通用埋点代码;
将所述通用埋点代码注入至所述各个设置了埋点注解的业务函数中,生成设置了埋点的各个业务函数;
当埋点事件为一个时,所述埋点注解,包括:埋点注解类;所述埋点注解类包含:用于保存所述埋点配置信息的参数注解类;
所述根据所述切入点,获得业务代码中各个设置了埋点注解的业务函数的步骤,包括:
将所述切入点中的各个业务函数的标识与业务代码中各个业务函数的标识进行匹配,获得业务代码中各个设置了埋点注解的业务函数;
当埋点事件为多个时,所述埋点注解,包括:埋点组注解类;所述埋点组注解类包含多个埋点注解类;所述多个埋点注解类中的每个埋点注解类包含:用于保存对应埋点的配置信息的参数注解类;
所述根据所述切入点,获得业务代码中各个设置了埋点注解的业务函数的步骤,包括:
将所述切入点中的各个业务函数的标识与业务代码中各个业务函数的标识进行匹配,获得业务代码中各个设置了埋点注解的业务函数。
2.根据权利要求1所述的方法,其特征在于,所述获得预先编写的通用埋点代码的步骤,包括:
获得输入的通用埋点代码的标识;
根据所述通用埋点代码的标识,获得预先存储的通用埋点代码。
3.一种埋点数据的获取方法,其特征在于,所述方法包括:
在业务函数执行过程中根据其中预设的埋点注解,监听其自身是否产生了埋点事件;所述埋点注解中包含埋点的配置信息;所述埋点配置信息,包含埋点事件及对应埋点事件要采集的数据项;
若监听到埋点事件,根据所述埋点注解采集该业务函数的埋点事件对应的数据项的数据,作为该业务函数的埋点数据;
将采集到的埋点数据写入到所述埋点注解中;
从各个业务函数的埋点注解中,获取采集到的各个业务函数的埋点数据;
当埋点事件为一个时,所述埋点注解,包括:埋点注解类;所述埋点注解类包含:用于保存所述埋点配置信息的参数注解类;
所述在业务函数执行过程中根据其中预设的埋点注解,监听其自身是否产生了埋点事件的步骤,包括:
在业务函数执行过程中获取所述埋点注解类中的参数注解类中的埋点事件,按照参数注解类中的埋点事件,监听其自身是否产生了埋点事件;
所述若监听到埋点事件,根据所述埋点注解采集该业务函数的埋点事件对应的数据项的数据,作为该业务函数的埋点数据的步骤,包括:
若监听到埋点事件,获取所述埋点注解类中的参数注解类中对应埋点事件要采集的数据项;按照参数注解类中的要采集的数据项,采集埋点事件对应的数据项的数据,作为埋点数据;
当埋点事件为多个时,所述埋点注解,包括:埋点组注解类;所述埋点组注解类包含多个埋点注解类;所述多个埋点注解类中的每个埋点注解类包含:用于保存对应埋点的配置信息的参数注解类;
所述在业务函数执行过程中根据其中预设的埋点注解,监听其自身是否产生了埋点事件的步骤,包括:
在业务函数执行过程中获取所述埋点组注解类中的各个埋点注解类中的参数注解类中的埋点事件,按照各个参数注解类中的埋点事件,监听其自身是否产生了埋点事件;
所述若监听到埋点事件,根据所述埋点注解采集该业务函数的埋点事件对应的数据项的数据,作为该业务函数的埋点数据的步骤,包括:
若监听到埋点事件,获取所述埋点组注解类中,各个埋点注解类的参数注解类中的要采集的数据项,按照所述要采集的数据项,采集埋点事件对应的数据项的数据,作为埋点数据。
4.根据权利要求3所述的方法,其特征在于,还包括:
将获得的埋点数据上传至服务器。
5.一种数据埋点的设置装置,其特征在于,所述装置包括:
切入点获得模块,用于获得预先定义的针对业务代码的切入点;所述切入点包含待注入通用埋点代码的各个业务函数的标识;
业务函数获得模块,用于根据所述切入点,获得业务代码中各个设置了埋点注解的业务函数;所述埋点注解中包含埋点的配置信息;所述埋点配置信息包含埋点事件及对应埋点事件要采集的数据项;
埋点代码获得模块,用于获得预先编写的通用埋点代码;
生成模块,用于将所述通用埋点代码注入至所述各个设置了埋点注解的业务函数中,生成设置了埋点的各个业务函数;
当埋点事件为一个时,所述埋点注解,包括:埋点注解类;所述埋点注解类包含:用于保存所述埋点配置信息的参数注解类;
所述业务函数获得模块,包括:
第一匹配单元,用于将所述切入点中的各个业务函数的标识与业务代码中各个业务函数的标识进行匹配,获得业务代码中各个设置了埋点注解的业务函数;
当埋点事件为多个时,所述埋点注解,包括:埋点组注解类;所述埋点组注解类包含多个埋点注解类;所述多个埋点注解类中的每个埋点注解类包含:用于保存对应埋点的配置信息的参数注解类;
所述业务函数获得模块,包括:
第二匹配单元,用于将所述切入点中的各个业务函数的标识与业务代码中各个业务函数的标识进行匹配,获得业务代码中各个设置了埋点注解的业务函数。
6.根据权利要求5所述的装置,其特征在于,所述埋点代码获得模块,包括:
第一获得子模块,用于获得输入的通用埋点代码的标识;
第二获得子模块,用于根据所述通用埋点代码的标识,获得预先存储的通用埋点代码。
7.一种埋点数据的获取装置,其特征在于,所述装置包括:
事件监听模块,用于在业务函数执行过程中根据其中预设的埋点注解,监听其自身是否产生了埋点事件;所述埋点注解中包含埋点的配置信息;所述埋点配置信息,包含埋点事件及对应埋点事件要采集的数据项;
数据采集模块,用于若监听到埋点事件,根据所述埋点注解采集该业务函数的埋点事件对应的数据项的数据,作为该业务函数的埋点数据;
数据写入模块,用于将采集到的埋点数据写入到所述埋点注解中;
数据获取模块,用于从各个业务函数的埋点注解中,获取采集到的各个业务函数的埋点数据;
当埋点事件为一个时,所述埋点注解,包括:埋点注解类;所述埋点注解类包含:用于保存所述埋点配置信息的参数注解类;
所述事件监听模块,包括:
第一监听子模块,用于在业务函数执行过程中获取所述埋点注解类中的参数注解类中的埋点事件,按照参数注解类中的埋点事件,监听其自身是否产生了埋点事件;
所述数据采集模块,包括:
第一采集子模块,用于若监听到埋点事件,获取所述埋点注解类中的参数注解类中对应埋点事件要采集的数据项;按照参数注解类中的要采集的数据项,采集埋点事件对应的数据项的数据,作为埋点数据;
当埋点事件为多个时,所述埋点注解,包括:埋点组注解类;所述埋点组注解类包含多个埋点注解类;所述多个埋点注解类中的每个埋点注解类包含:用于保存对应埋点的配置信息的参数注解类;
所述事件监听模块,包括:
第二监听子模块,用于在业务函数执行过程中获取所述埋点组注解类中的各个埋点注解类中的参数注解类中的埋点事件,按照各个参数注解类中的埋点事件,监听其自身是否产生了埋点事件;
所述数据采集模块,包括:
第二采集子模块,用于若监听到埋点事件,获取所述埋点组注解类中,各个埋点注解类的参数注解类中的要采集的数据项,按照所述要采集的数据项,采集埋点事件对应的数据项的数据,作为埋点数据。
8.根据权利要求7所述的装置,其特征在于,还包括:
数据上传模块,用于将获得的埋点数据上传至服务器。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-2或3-4任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910413174.3A CN110209386B (zh) | 2019-05-17 | 2019-05-17 | 数据埋点的设置方法、埋点数据的获取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910413174.3A CN110209386B (zh) | 2019-05-17 | 2019-05-17 | 数据埋点的设置方法、埋点数据的获取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110209386A CN110209386A (zh) | 2019-09-06 |
CN110209386B true CN110209386B (zh) | 2023-07-21 |
Family
ID=67787595
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910413174.3A Active CN110209386B (zh) | 2019-05-17 | 2019-05-17 | 数据埋点的设置方法、埋点数据的获取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110209386B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110737588A (zh) * | 2019-09-10 | 2020-01-31 | 北京字节跳动网络技术有限公司 | 一种自动埋点的方法、装置、介质和电子设备 |
CN111090433B (zh) * | 2019-10-23 | 2023-10-20 | 贝壳技术有限公司 | 一种数据处理的方法、装置和存储介质 |
CN111124906B (zh) * | 2019-12-17 | 2022-06-28 | 蚂蚁财富(上海)金融信息服务有限公司 | 基于动态埋点的跟踪方法、编译方法、装置和电子设备 |
CN111352849B (zh) * | 2020-03-13 | 2023-05-16 | 杭州趣维科技有限公司 | 一种移动端无码埋点解决方法 |
CN113742161A (zh) * | 2020-09-07 | 2021-12-03 | 北京沃东天骏信息技术有限公司 | 一种埋点上报方法和装置 |
CN112306501B (zh) * | 2020-11-30 | 2023-03-28 | 杭州网易云音乐科技有限公司 | 业务数据采集方法、装置、存储介质和计算设备 |
CN112596978B (zh) * | 2020-12-23 | 2023-07-14 | 华人运通(上海)云计算科技有限公司 | 一种埋点信息处理方法、装置和介质 |
CN113126971A (zh) * | 2021-04-07 | 2021-07-16 | 粒子文化科技集团(杭州)股份有限公司 | 数据埋点的处理方法、装置、系统、电子装置和存储介质 |
CN113641345A (zh) * | 2021-08-13 | 2021-11-12 | 网易(杭州)网络有限公司 | 基于映射配置的埋点方法、装置、电子设备和存储介质 |
CN114327585A (zh) * | 2022-01-04 | 2022-04-12 | 瀚云科技有限公司 | 一种基于注解的自动埋点的设置方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106502896A (zh) * | 2016-10-21 | 2017-03-15 | 武汉斗鱼网络科技有限公司 | 一种函数测试代码的生成方法及装置 |
CN106970789A (zh) * | 2017-03-07 | 2017-07-21 | 武汉斗鱼网络科技有限公司 | 一种Android端基于AOP和AspectJ的日志自动埋点方法及系统 |
CN107491488A (zh) * | 2017-07-18 | 2017-12-19 | 北京京东尚科信息技术有限公司 | 页面数据采集的方法和装置 |
CN107562620A (zh) * | 2017-08-24 | 2018-01-09 | 阿里巴巴集团控股有限公司 | 一种埋点自动设置方法和装置 |
CN107562598A (zh) * | 2017-08-03 | 2018-01-09 | 合肥美的智能科技有限公司 | 处理方法、装置、计算机装置、服务器和可读存储介质 |
WO2018113205A1 (zh) * | 2016-12-21 | 2018-06-28 | 深圳市云鹏正曜科技发展有限公司 | 一种信息收集方法、信息分析方法及装置 |
CN108733548A (zh) * | 2018-05-23 | 2018-11-02 | 北京五八信息技术有限公司 | 一种埋点设置方法、装置、设备及计算机可读存储介质 |
-
2019
- 2019-05-17 CN CN201910413174.3A patent/CN110209386B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106502896A (zh) * | 2016-10-21 | 2017-03-15 | 武汉斗鱼网络科技有限公司 | 一种函数测试代码的生成方法及装置 |
WO2018113205A1 (zh) * | 2016-12-21 | 2018-06-28 | 深圳市云鹏正曜科技发展有限公司 | 一种信息收集方法、信息分析方法及装置 |
CN106970789A (zh) * | 2017-03-07 | 2017-07-21 | 武汉斗鱼网络科技有限公司 | 一种Android端基于AOP和AspectJ的日志自动埋点方法及系统 |
CN107491488A (zh) * | 2017-07-18 | 2017-12-19 | 北京京东尚科信息技术有限公司 | 页面数据采集的方法和装置 |
CN107562598A (zh) * | 2017-08-03 | 2018-01-09 | 合肥美的智能科技有限公司 | 处理方法、装置、计算机装置、服务器和可读存储介质 |
CN107562620A (zh) * | 2017-08-24 | 2018-01-09 | 阿里巴巴集团控股有限公司 | 一种埋点自动设置方法和装置 |
CN108733548A (zh) * | 2018-05-23 | 2018-11-02 | 北京五八信息技术有限公司 | 一种埋点设置方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110209386A (zh) | 2019-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110209386B (zh) | 数据埋点的设置方法、埋点数据的获取方法及装置 | |
CN110297759B (zh) | 一种制作测试页面脚本的方法、装置、设备及存储介质 | |
CN110321154B (zh) | 一种微服务的接口信息展示方法、装置及电子设备 | |
CN112437148B (zh) | 业务请求的处理方法、装置、业务服务器及系统 | |
CN108830562B (zh) | 一种考勤打卡方法及相关设备 | |
CN111984239A (zh) | 一种页面配置方法、装置、服务器及存储介质 | |
CN112631879A (zh) | 数据采集方法、装置、计算机可读介质及电子设备 | |
CN106682210B (zh) | 日志文件查询方法及装置 | |
CN112615909B (zh) | 在级联存储服务器集群中存储数据的方法及相关设备 | |
CN116069838A (zh) | 一种数据处理方法、装置、计算机设备及存储介质 | |
CN114625407A (zh) | 一种ab实验的实现方法、系统、设备及存储介质 | |
CN111143724A (zh) | 一种数据处理方法、装置、设备及介质 | |
CN110020166B (zh) | 一种数据分析方法及相关设备 | |
CN108073638B (zh) | 数据诊断方法及装置 | |
CN113010587B (zh) | 数据源配置方法、装置、终端、服务器及介质 | |
CN111291127B (zh) | 一种数据同步方法、装置、服务器及存储介质 | |
CN112256820B (zh) | 一种文档定位方法及装置 | |
CN109254855B (zh) | 一种参数传输协议的注册方法、装置及电子设备 | |
CN112256654B (zh) | 一种文档共享方法及装置 | |
CN113448820A (zh) | 网页测试方法及装置 | |
CN112231612A (zh) | 配置信息的传输方法及装置、存储介质、电子装置 | |
CN111163088B (zh) | 消息处理方法、系统、装置及电子设备 | |
CN114257598B (zh) | 资源下载方法、装置、存储介质及电子设备 | |
CN109684214B (zh) | 一种ui测试方法和装置 | |
CN111107154B (zh) | 数据上报方法与装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |