应用监控数据采集方法、装置、电子设备和存储介质制造方法及图纸

技术编号:34135892 阅读:20 留言:0更新日期:2022-07-14 16:36
本发明专利技术提供了一种应用监控数据采集方法、装置、电子设备和存储介质,其中应用监控数据采集方法包括:在业务应用中提供用于手工自定义埋点的接口代码;将接口代码动态织入到第三方组件中;发出以下至少之一的指令:埋点开启、埋点关闭、埋点新增、埋点拦截、调节埋点采样率;周期性获取所述指令,并对相应的埋点执行相应指令。相应指令。相应指令。

Application monitoring data acquisition method, device, electronic equipment and storage medium

【技术实现步骤摘要】
应用监控数据采集方法、装置、电子设备和存储介质


[0001]本文涉及但不限于应用监控领域。

技术介绍

[0002]在应用监控领域中,经常需要针对业务接口代码,框架执行过程进行埋点以统计执行耗时、过程中是否发生异常,期间状态、特定事件等。用于统计应用性能,计算99线,成功失败率等指标,用于对应用进行监控告警。
[0003]常见的埋点方案有以下几种,但也各有各的缺点:
[0004]1、CAT
[0005]支持业务方使用cat客户端灵活埋点。
[0006]不能针对第三方组件埋点,不能动态开关其中部分埋点。
[0007]2、Skywalking
[0008]支持通过java agent方式进行常用第三方组件进行切入埋点采集。
[0009]不支持业务方灵活埋点,不支持探针的动态开关。
[0010]3、ELK
[0011]使用日志方式在需要打点的地方输出日志,通过elk收集聚合展示。
[0012]同样不支持第三方组件以及动态开关。
[0013]一般来说,侵入式埋点通常只能在框架提供拦截器扩展,或者自有代码里面进行,针对很多第三方以最终依赖交付的组件想要扩展埋点几乎不太可能。而Java agent虽然理论上可以对于任何Java方法进行切面埋点,但是受限于开发成本高,普通业务方要使用扩展埋点较为困难。并且一次切入,永久生效,会导致性能问题:例如不能动态开关,过度埋点会影响性能等等。通常各类埋点组件都依赖于很复杂的实现,需要各类环境支撑,比如使用统一客户端SDK埋点,必然需要一个SDK收集环境作为支撑,不便于本地开发。

技术实现思路

[0014]下文呈现各种示例性技术方案的概述。在以下概述中可以进行一些简化和省略,其意在突出并介绍各种示例性技术方案的一些方面,但不限制本专利技术的范围。将在后续部分呈现足以允许本领域的普通技术人员产生并使用本专利技术概念的示例性技术方案的详细描述。
[0015]为解决上述技术问题,本专利技术的技术方案提供一种应用监控数据采集方法,其特征在于,包括:在业务应用中提供用于手工自定义埋点的接口代码;将接口代码动态织入到第三方组件中;发出以下至少之一的指令:埋点开启、埋点关闭、埋点新增、埋点拦截、调节埋点采样率;周期性获取所述指令,并对相应的埋点执行相应指令。
[0016]优选地,所述方法还包括:记录所述发出的指令。
[0017]优选地,所述方法还包括:包括:上报埋点事件模型。
[0018]优选地,所述方法还包括:处理埋点上报数据,形成对应的报表、链路、或告警。
[0019]本专利技术的另一个技术方案提供了一种应用监控数据采集装置,包括:埋点织入模块,包括客户端SDK和Java agent,客户端SDK被配置为在业务应用中提供用于手工自定义埋点的接口代码,Java agent被配置为将客户端SDK提供的接口代码动态织入到第三方组件中;埋点管理模块,被配置为发出以下至少之一的指令到配置服务模块:埋点开启、埋点关闭、埋点新增、埋点拦截、调节拦截埋点采样率;所述Java agent还被配置为周期性获取所述指令,并对相应的埋点执行相应指令。
[0020]优选地,所述装置还包括配置服务模块,被配置为记录探针管理模块下发的指令。
[0021]优选地,所述埋点织入模块还包括埋点上报组件,被配置为上报埋点事件模型。
[0022]优选地,所述装置还包括APM消费模块:用于处理埋点织入模块上报的数据,形成对应的报表、链路、或告警。
[0023]本专利技术的另一个技术方案还提供了一种电子设备,包括:处理器、存储器以及存储在存储器上运行的计算机程序,所述处理器执行计算机程序时实现上述任一个技术方案所述的方法的步骤。
[0024]本专利技术的另一个技术方案还提供了一种计算机可读存储介质,所述计算机程序被处理器执行时实现上述任一个技术方案所述的方法的步骤。
[0025]本专利技术的技术方案主要具有以下两个方面的有益效果:
[0026]第一,可扩展:针对部分第三方组件不支持扩展的能够扩展支持埋点。
[0027]第二,动态控制:做到针对相应的埋点可以动态开关,动态增加、动态拦截,可以节约性能损耗。
[0028]第三,灵活轻量:支持业务方灵活的埋点需求,并且不需要过多的环境依赖。
附图说明
[0029]为了更好地理解各种示例性实施例,可以参考附图,在附图中:
[0030]图1示出了实施例提供的应用监控数据采集方法的流程示意图;
[0031]图2示出了实施例提供的应用监控数据采集方法中步骤S104执行过程示意图;
[0032]图3示出了实施例提供的Java agent的加载过程示意图;
[0033]图4示出了实施例提供的Java agent相关的模块结构示意图:
[0034]图5示出了实施例提供的应用监控数据采集装置的结构示意图。
[0035]为了便于理解,相同的附图标记已用于指代具有基本上相同或类似结构和/或基本上相同或类似功能的元件。
具体实施方式
[0036]描述和图式示出了本专利技术的原理。因此,将了解,本领域的技术人员将能够设计各种布置,尽管本文中未明确地描述或示出所述布置,但所述布置体现本专利技术的原理且包括在本专利技术的范围内。此外,本文中所引述的所有例子主要旨在明确地用于教学目的,以帮助读者理解本专利技术的原理和由专利技术人提供的用以深化本领域的概念,并且所有例子应视为并不限于此类特定引述的例子和条件。另外,如本文中所使用,除非另有指示(例如,“或另外”或“或在替代方案中”),否则术语“或”是指非排他性的或(即,和/或)。并且,本文中所描述的各种实施例不一定相互排斥,因为一些实施例可以与一个或多个其它实施例组合以形成
新的实施例。
[0037]名词解释:
[0038]SDK:Software Development Kit,字面意思是软件开发工具包,在实际使用中指的是提供给客户端使用的软件工具包,在Java中就是将软件集达成的Jar格式的文件。
[0039]JAVA Agent:Java Agent技术在Jdk1.5以后引入了,Java Agent是运行main方法之前的拦截器。通常我们利用Java Agent和ASM字节码技术,在JVM加载class二进制文件的时候,利用ASM动态的修改加载的class文件,便于监控的方法前后添加计时器功能,用于计算统计监控方法耗时。
[0040]第一个实施例提供了一种应用监控数据采集方法,参见图1,所述方法包括:
[0041]步骤S101:在业务应用中提供用于手工自定义埋点的接口代码;
[0042]步骤S102:将接口代码动态织入到第三方组件中;
[0043]可通过埋点SDK提供给业务方用于手工自定义埋点的工具集,包含各类事件模型,API标准接口代码。提供具体的应用程序接口代码(API)给用户手工埋点,通过埋点组装出具本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用监控数据采集方法,其特征在于,包括:在业务应用中提供用于手工自定义埋点的接口代码;将接口代码动态织入到第三方组件中;发出以下至少之一的指令:埋点开启、埋点关闭、埋点新增、埋点拦截、调节埋点采样率;周期性获取所述指令,并对相应的埋点执行相应指令。2.根据权利要求1所述的应用监控数据采集方法,其特征在于,还包括:记录所述发出的指令。3.根据权利要求1所述的应用监控数据采集方法,其特征在于,还包括:上报埋点事件模型。4.根据权利要求3所述的应用监控数据采集方法,其特征在于,还包括:处理埋点上报数据,形成对应的报表、链路、或告警。5.一种应用监控数据采集装置,其特征在于,包括:埋点织入模块,包括客户端SDK和Java agent,客户端SDK被配置为在业务应用中提供用于手工自定义埋点的接口代码,Java agent被配置为将客户端SDK提供的接口代码动态织入到第三方组件中;埋点管理模块,被配置为发出以下至少之一的指令到配置服务模块...

【专利技术属性】
技术研发人员:田成袁毅成衡友海
申请(专利权)人:武汉紫阑信息技术有限公司
类型:发明
国别省市:

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

1