CN114138630A - 一种基于es6装饰器的埋点数据收集方法及装置 - Google Patents

一种基于es6装饰器的埋点数据收集方法及装置 Download PDF

Info

Publication number
CN114138630A
CN114138630A CN202111328422.8A CN202111328422A CN114138630A CN 114138630 A CN114138630 A CN 114138630A CN 202111328422 A CN202111328422 A CN 202111328422A CN 114138630 A CN114138630 A CN 114138630A
Authority
CN
China
Prior art keywords
decorator
information
buried point
embedded
server
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.)
Granted
Application number
CN202111328422.8A
Other languages
English (en)
Other versions
CN114138630B (zh
Inventor
徐克龙
杨帆
赵洋
罗超
姚光腾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chaozhou Zhuoshu Big Data Industry Development Co Ltd
Original Assignee
Chaozhou Zhuoshu Big Data Industry Development Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chaozhou Zhuoshu Big Data Industry Development Co Ltd filed Critical Chaozhou Zhuoshu Big Data Industry Development Co Ltd
Priority to CN202111328422.8A priority Critical patent/CN114138630B/zh
Publication of CN114138630A publication Critical patent/CN114138630A/zh
Application granted granted Critical
Publication of CN114138630B publication Critical patent/CN114138630B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开一种基于ES6装饰器的埋点数据收集方法及装置,涉及数据采集技术领域;将包含装饰器的软件包引入Web项目js文件内,通过装饰器初始化埋点配置信息及埋点服务相关信息,对事件处理方法进行代理和对埋点信息进行上报,配置埋点信息发送到服务端的格式与接口,使用所述装饰器对业务方法进行声明,根据埋点事件触发的业务方法将相应的埋点信息按照配置的格式通过所述接口发送到服务端进行日志信息记录。

Description

一种基于ES6装饰器的埋点数据收集方法及装置
技术领域
本发明公开一种方法及装置,涉及数据采集技术领域,具体地说是一种基于ES6装饰器的埋点数据收集方法及装置。
背景技术
在前端项目中,通常需要收集和观察用户在产品中的行为和使用情况,以便于从用户的角度去了解产品的运行状况,从而升级和迭代产品。
目前,用户行为数据一般是通过前端埋点的方式获取,其中手动代码埋点比较常见,手动埋点主要是业务方在需要采集数据的地方调用埋点的方法,但是手动埋点一般对代码的具有较大侵入性,大量的埋点代码会破坏程序业务的原有结构,导致代码的可读性、维护性极差。
发明内容
本发明针对现有技术的问题,提供一种基于ES6装饰器的埋点数据收集方法及装置,能够减少埋点相关代码对业务代码的入侵,进而减少对项目代码的污染,使业务逻辑保证清晰明确的定义,提高代码的可读性,降低复杂度,使代码更易维护,减少代码变更引起的风险。
本发明提出的具体方案是:
一种基于ES6装饰器的埋点数据收集方法,将包含装饰器的软件包引入Web项目js文件内,通过装饰器初始化埋点配置信息及埋点服务相关信息,对事件处理方法进行代理和对埋点信息进行上报,
配置埋点信息发送到服务端的格式与接口,
使用所述装饰器对业务方法进行声明,根据埋点事件触发的业务方法将相应的埋点信息按照配置的格式通过所述接口发送到服务端进行日志信息记录。
进一步,所述的一种基于ES6装饰器的埋点数据收集方法中所述通过装饰器初始化埋点配置信息及埋点服务相关信息,对事件处理方法进行代理和对埋点信息进行上报,包括:
通过类装饰器初始化埋点配置信息及埋点服务相关信息,通过方法装饰器对事件处理方法进行代理和对埋点信息进行上报。
进一步,所述的一种基于ES6装饰器的埋点数据收集方法中所述配置埋点信息发送到服务端的格式与接口,包括:
定义事件处理方法在埋点事件触发时需要收集的日志信息,以及配置上报所述日志信息到服务端的数据格式和相关接口地址。
进一步,所述的一种基于ES6装饰器的埋点数据收集方法中所述配置所述相关接口地址,包括:
配置http请求时的接口地址,配置http请求时的媒体类型信息、浏览器相关信息、用户cookie相关信息及浏览页面的地址。
所述使用装饰器对业务方法进行声明,
进一步,所述的一种基于ES6装饰器的埋点数据收集方法中所述使用所述装饰器对业务方法进行声明,包括:
将埋点信息及关键字组成参数,根据事件处理方法的触发事件类型和规则,在业务方法上进行装饰器声明。
进一步,所述的一种基于ES6装饰器的埋点数据收集方法中所述将相应的埋点信息按照配置的格式通过所述接口发送到服务端,包括:
利用fetch方法或XMLHttpRequest对象,将所述相应的埋点信息发送至服务端。
本发明还提供一种基于ES6装饰器的埋点数据收集系统,包括装饰器模块及配置模块,
装饰器模块将包含装饰器的软件包引入Web项目js文件内,通过装饰器初始化埋点配置信息及埋点服务相关信息,对事件处理方法进行代理和对埋点信息进行上报,
配置模块配置埋点信息发送到服务端的格式与接口,
装饰器模块使用所述装饰器对业务方法进行声明,根据埋点事件触发的业务方法将相应的埋点信息按照配置的格式通过所述接口发送到服务端进行日志信息记录。
本发明还提供一种基于ES6装饰器的埋点数据收集装置,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行所述的一种基于ES6装饰器的埋点数据收集方法。
本发明的有益之处是:
本发明提供一种基于ES6装饰器的埋点数据收集方法,通过使用装饰器进行埋点的方式,能够减少埋点相关代码对业务代码的入侵,进而减少对项目代码的污染,使业务逻辑保证清晰明确的定义,提高了代码的可读性,降低了复杂度,使代码更易维护,减少了代码变更引起的风险。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明方法流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
本发明提供一种基于ES6装饰器的埋点数据收集方法,将包含装饰器的软件包引入Web项目js文件内,通过装饰器初始化埋点配置信息及埋点服务相关信息,对事件处理方法进行代理和对埋点信息进行上报,
配置埋点信息发送到服务端的格式与接口,
使用所述装饰器对业务方法进行声明,根据埋点事件触发的业务方法将相应的埋点信息按照配置的格式通过所述接口发送到服务端进行日志信息记录。
本发明方法通过使用装饰器进行埋点的方式,能够减少埋点相关代码对业务代码的入侵,进而减少对项目代码的污染,确保遵循单一原则的设计,使业务逻辑保证清晰明确的定义,提高了代码的可读性,降低了复杂度,使代码更易维护,减少了代码变更引起的风险。
具体应用中,在本发明的一些实施例中基于ES6装饰器进行埋点数据收集时,具体包括:
步骤1:将web项目js文件内引入包含装饰器函数的软件包,其中装饰器函数包括用于类的类装饰器和用于方法的方法装饰器,
类装饰器,在类声明之前被声明,类装饰器表达式会在运行时当作函数被调用,类的构造函数作为其唯一的参数,类装饰器用于初始化埋点配置信息、埋点服务相关信息,
方法装饰器,声明在一个方法的声明之前,装饰器表达式会在运行时当作函数被调用,并三个参数,包括静态成员的构造函数或者实例成员的类原型对象、成员的名字和成员的属性描述符,此方法装饰器返回一个被装饰的方法的属性描述符,可用于事件处理方法的代理和埋点信息上报;
步骤2:配置埋点信息发送到服务器的格式与接口,其中定义事件处理程序在埋点事件触发时需要收集的日志信息,以及上传服务器的数据格式和接口地址等相关信息,而配置相关接口还包括配置http请求时的接口地址,配置http请求时的媒体类型信息,浏览器相关信息、用户cookie相关信息及浏览页面的地址等;
步骤3:在需要记录日志的业务方法上使用装饰器进行声明,在用户事件触发业务方法的事件处理方法后,根据所传装饰器的参数,将埋点信息发送到服务端进行日志记录,其中发送到服务端进行日志记录的埋点信息可以包括埋点内容和关键字组成参数,并根据事件的触发类型和规则,在方法上进行装饰器声明,可以利用fetch方法或XMLHttpRequest对象,将所述埋点信息发送至服务端。
本发明还提供本发明还提供一种基于ES6装饰器的埋点数据收集系统,包括装饰器模块及配置模块,
装饰器模块将包含装饰器的软件包引入Web项目js文件内,通过装饰器初始化埋点配置信息及埋点服务相关信息,对事件处理方法进行代理和对埋点信息进行上报,
配置模块配置埋点信息发送到服务端的格式与接口,
装饰器模块使用所述装饰器对业务方法进行声明,根据埋点事件触发的业务方法将相应的埋点信息按照配置的格式通过所述接口发送到服务端进行日志信息记录。
上述装系统内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
同样地,本发明系统可以通过使用装饰器进行埋点的方式,能够减少埋点相关代码对业务代码的入侵,进而减少对项目代码的污染,使业务逻辑保证清晰明确的定义,提高了代码的可读性,降低了复杂度,使代码更易维护,减少了代码变更引起的风险。
以及本发明还提供一种基于ES6装饰器的埋点数据收集装置,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行所述的一种基于ES6装饰器的埋点数据收集方法。
上述装置内的处理器的信息交互、执行可读程序过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。同样地,本发明装置可以通过使用装饰器进行埋点的方式,能够减少埋点相关代码对业务代码的入侵,进而减少对项目代码的污染,使业务逻辑保证清晰明确的定义,提高了代码的可读性,降低了复杂度,使代码更易维护,减少了代码变更引起的风险。
需要说明的是,上述较佳实施例中各流程和各系统结构中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。

Claims (8)

1.一种基于ES6装饰器的埋点数据收集方法,其特征是将包含装饰器的软件包引入Web项目js文件内,通过装饰器初始化埋点配置信息及埋点服务相关信息,对事件处理方法进行代理和对埋点信息进行上报,
配置埋点信息发送到服务端的格式与接口,
使用所述装饰器对业务方法进行声明,根据埋点事件触发的业务方法将相应的埋点信息按照配置的格式通过所述接口发送到服务端进行日志信息记录。
2.根据权利要求1所述的一种基于ES6装饰器的埋点数据收集方法,其特征是所述通过装饰器初始化埋点配置信息及埋点服务相关信息,对事件处理方法进行代理和对埋点信息进行上报,包括:
通过类装饰器初始化埋点配置信息及埋点服务相关信息,通过方法装饰器对事件处理方法进行代理和对埋点信息进行上报。
3.根据权利要求1或2所述的一种基于ES6装饰器的埋点数据收集方法,其特征是所述配置埋点信息发送到服务端的格式与接口,包括:
定义事件处理方法在埋点事件触发时需要收集的日志信息,以及配置上报所述日志信息到服务端的数据格式和相关接口地址。
4.根据权利要求3所述的一种基于ES6装饰器的埋点数据收集方法,其特征是所述配置所述相关接口地址,包括:
配置http请求时的接口地址,配置http请求时的媒体类型信息、浏览器相关信息、用户cookie相关信息及浏览页面的地址。
所述使用装饰器对业务方法进行声明。
5.根据权利要求1所述的一种基于ES6装饰器的埋点数据收集方法,其特征是所述使用所述装饰器对业务方法进行声明,包括:
将埋点信息及关键字组成参数,根据事件处理方法的触发事件类型和规则,在业务方法上进行装饰器声明。
6.根据权利要求1所述的一种基于ES6装饰器的埋点数据收集方法,其特征是所述将相应的埋点信息按照配置的格式通过所述接口发送到服务端,包括:
利用fetch方法或XMLHttpRequest对象,将所述相应的埋点信息发送至服务端。
7.一种基于ES6装饰器的埋点数据收集系统,其特征是包括装饰器模块及配置模块,
装饰器模块将包含装饰器的软件包引入Web项目js文件内,通过装饰器初始化埋点配置信息及埋点服务相关信息,对事件处理方法进行代理和对埋点信息进行上报,
配置模块配置埋点信息发送到服务端的格式与接口,
装饰器模块使用所述装饰器对业务方法进行声明,根据埋点事件触发的业务方法将相应的埋点信息按照配置的格式通过所述接口发送到服务端进行日志信息记录。
8.一种基于ES6装饰器的埋点数据收集装置,其特征是包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行权利要求1至6中任一项所述的一种基于ES6装饰器的埋点数据收集方法。
CN202111328422.8A 2021-11-10 2021-11-10 一种基于es6装饰器的埋点数据收集方法及装置 Active CN114138630B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111328422.8A CN114138630B (zh) 2021-11-10 2021-11-10 一种基于es6装饰器的埋点数据收集方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111328422.8A CN114138630B (zh) 2021-11-10 2021-11-10 一种基于es6装饰器的埋点数据收集方法及装置

Publications (2)

Publication Number Publication Date
CN114138630A true CN114138630A (zh) 2022-03-04
CN114138630B CN114138630B (zh) 2023-06-30

Family

ID=80393496

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111328422.8A Active CN114138630B (zh) 2021-11-10 2021-11-10 一种基于es6装饰器的埋点数据收集方法及装置

Country Status (1)

Country Link
CN (1) CN114138630B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017084508A1 (zh) * 2015-11-17 2017-05-26 阿里巴巴集团控股有限公司 自动埋点方法和装置
CN107295050A (zh) * 2016-04-01 2017-10-24 阿里巴巴集团控股有限公司 前端用户行为统计方法及装置
US20180167402A1 (en) * 2015-05-05 2018-06-14 Balabit S.A. Computer-implemented method for determining computer system security threats, security operations center system and computer program product
CN110019079A (zh) * 2019-04-19 2019-07-16 山东浪潮云信息技术有限公司 一种前端自动化日志收集方法及装置
CN110569185A (zh) * 2019-08-02 2019-12-13 贝壳技术有限公司 一种前端埋点方法和装置
CN111339471A (zh) * 2020-03-13 2020-06-26 苏宁金融科技(南京)有限公司 动态加载页面埋点数据的方法及装置
CN112632031A (zh) * 2020-12-08 2021-04-09 北京思特奇信息技术股份有限公司 分布式内存数据库长连接使用的实现方法及系统、电子设备、存储介质
CN113190512A (zh) * 2021-05-07 2021-07-30 江苏方天电力技术有限公司 一种基于埋点技术的电力客户行为数据分析方法
WO2021164294A1 (zh) * 2020-02-17 2021-08-26 平安科技(深圳)有限公司 基于行为分析的配置更新方法、装置、设备及存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180167402A1 (en) * 2015-05-05 2018-06-14 Balabit S.A. Computer-implemented method for determining computer system security threats, security operations center system and computer program product
WO2017084508A1 (zh) * 2015-11-17 2017-05-26 阿里巴巴集团控股有限公司 自动埋点方法和装置
CN107295050A (zh) * 2016-04-01 2017-10-24 阿里巴巴集团控股有限公司 前端用户行为统计方法及装置
CN110019079A (zh) * 2019-04-19 2019-07-16 山东浪潮云信息技术有限公司 一种前端自动化日志收集方法及装置
CN110569185A (zh) * 2019-08-02 2019-12-13 贝壳技术有限公司 一种前端埋点方法和装置
WO2021164294A1 (zh) * 2020-02-17 2021-08-26 平安科技(深圳)有限公司 基于行为分析的配置更新方法、装置、设备及存储介质
CN111339471A (zh) * 2020-03-13 2020-06-26 苏宁金融科技(南京)有限公司 动态加载页面埋点数据的方法及装置
CN112632031A (zh) * 2020-12-08 2021-04-09 北京思特奇信息技术股份有限公司 分布式内存数据库长连接使用的实现方法及系统、电子设备、存储介质
CN113190512A (zh) * 2021-05-07 2021-07-30 江苏方天电力技术有限公司 一种基于埋点技术的电力客户行为数据分析方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SLAVINA IVANOVA AND GEORGI GEORGIEV: "Using modern web frameworks when developing an education application: a practical approach", 《IEEE》 *
马思峻: "Android 应用性能数据采集探针研究", 《计算机应用与软件》 *

Also Published As

Publication number Publication date
CN114138630B (zh) 2023-06-30

Similar Documents

Publication Publication Date Title
CN109032909A (zh) 应用程序崩溃日志的处理方法、系统、设备和存储介质
CN105243159A (zh) 一种基于可视化脚本编辑器的分布式网络爬虫系统
MX2008011058A (es) Objeto de procesamiento de datos de sindicacion realmente simple (rss).
JP2009516239A (ja) コンピュータアプリケーションの追跡及びモニタリングを行う汎用のマルチインスタンスメソッド及びgui検出システム
CN102999314A (zh) 立即延迟跟踪器工具
US20170102919A1 (en) Systems and methods for low interference logging and diagnostics
CN112486789A (zh) 一种日志分析系统、方法及装置
US8327324B1 (en) Message logging system
CN109240664B (zh) 一种采集用户行为信息的方法及终端
Ganapathi et al. Crash data collection: A windows case study
CN106326129A (zh) 一种程序异常信息生成方法及装置
CN109145027A (zh) 数据统计方法、装置、设备及计算机可读存储介质
CN110598135A (zh) 网络请求处理方法、装置、计算机可读介质及电子设备
CN105550179B (zh) 一种网页收藏方法和浏览器插件
CN113254320A (zh) 记录用户网页操作行为的方法及装置
US10394531B2 (en) Hyper dynamic Java management extension
CN111488257A (zh) 一种云服务链路跟踪监控方法、装置、设备及存储介质
WO2013143407A1 (en) Data processing, data collection
CN107729208A (zh) 一种输变电设备监测装置深度监控系统
CN114138630A (zh) 一种基于es6装饰器的埋点数据收集方法及装置
CN110881030A (zh) 基于logstash的记录web服务管理员操作日志的方法及装置
CN115454673A (zh) 一种基板管理控制器的数据收集方法、装置及介质
CN112287643B (zh) 消息监听方法、装置、设备及计算机可读存储介质
CN115062084A (zh) 基于数据库元数据构建api接口方法及装置
CN110244946A (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