一种应用组件的诊断方法、系统、电子设备及存储介质技术方案

技术编号:31087001 阅读:15 留言:0更新日期:2021-12-01 12:42
本申请公开了一种应用组件的诊断方法,所述诊断方法包括:向应用组件中注入Java采集探针;接收信息采集任务,并根据所述信息采集任务确定待检测span;利用所述Java采集探针根据线程栈快照确定每一所述待检测span的耗时时长;其中,所述耗时时长为线程执行所述待检测span对应的代码所消耗的时长;将所述耗时时长大于预设值的待检测span设置为慢请求方法,并将所述慢请求方法对应的代码作为诊断结果进行标记。本申请能够对应用组件中慢请求方法进行自动定位,提高应用组件的运行效率。本申请还公开了一种应用组件的诊断系统、一种电子设备及一种存储介质,具有以上有益效果。具有以上有益效果。具有以上有益效果。

【技术实现步骤摘要】
一种应用组件的诊断方法、系统、电子设备及存储介质


[0001]本申请涉及计算机
,特别涉及一种应用组件的诊断方法、系统、电子设备及存储介质。

技术介绍

[0002]容器技术是一种比虚拟机技术更加节省计算资源也更加灵活的虚拟化技术。随着容器技术的发展,出现了很多用于对容器进行管理的容器编排引擎。在云时代,分布式微服务架构下的应用日益丰富,纷杂的应用异常问题接踵而至,分析定位问题极其困难,给企业造成了很大的人力维护以及时间成本。
[0003]慢请求方法为应用组件代码中执行耗时较长的部分,通过对慢请求方法进行定位有利于优化代码、提高应用组件的执行效率,目前尚不存在自动确定应用组件代码中慢请求方法的方案。
[0004]因此,如何对应用组件中慢请求方法进行自动定位,提高应用组件的运行效率是本领域技术人员目前需要解决的技术问题。

技术实现思路

[0005]本申请的目的是提供一种应用组件的诊断方法、一种应用组件的诊断系统、一种电子设备及一种存储介质,能够对应用组件中慢请求方法进行自动定位,提高应用组件的运行效率。
[0006]为解决上述技术问题,本申请提供一种应用组件的诊断方法,该应用组件的诊断方法包括:
[0007]向应用组件中注入Java采集探针;
[0008]接收信息采集任务,并根据所述信息采集任务确定待检测span;
[0009]利用所述Java采集探针根据线程栈快照确定每一所述待检测span的耗时时长;其中,所述耗时时长为线程执行所述待检测span对应的代码所消耗的时长;
[0010]将所述耗时时长大于预设值的待检测span设置为慢请求方法,并将所述慢请求方法对应的代码作为诊断结果进行标记。
[0011]可选的,在向应用组件中注入Java采集探针之后,还包括:
[0012]在所述应用组件加载JVM时通过匹配类名和方法名修改所述应用组件的类代码,以使每一类代码被执行时在线程栈中记录执行起始时刻和执行结束时刻。
[0013]可选的,利用所述Java采集探针根据线程栈快照确定每一所述待检测span的耗时时长,包括:
[0014]按照预设周期采集所述线程栈快照;
[0015]利用所述Java采集探针根据当前周期的线程栈快照确定每一所述待检测span的耗时时长。
[0016]可选的,在利用所述Java采集探针根据线程栈快照确定每一所述待检测span的耗
时时长之后,还包括:
[0017]汇总所有所述待检测span与耗时时长的对应关系;
[0018]按照待检测span在应用组件中的执行顺序在用户界面中依次显示所有所述待检测span与耗时时长的对应关系。
[0019]可选的,将所述慢请求方法对应的代码在所述应用组件的代码中进行标记,包括:
[0020]在可视化平台显示所述应用组件的代码,并将所述慢请求方法对应的代码在所述应用组件的代码中设置为预设颜色。
[0021]可选的,在将所述慢请求方法对应的代码在所述应用组件的代码中进行标记之后,还包括:
[0022]向目标设备上传所述慢请求方法对应的代码和耗时时长,以便所述目标设备对所述慢请求方法对应的代码进行修改。
[0023]可选的,在利用所述Java采集探针根据线程栈快照确定每一所述待检测span的耗时时长之后,还包括:
[0024]根据所有所述待检测span的耗时时长确定所述应用组件的总体耗时;
[0025]判断所述应用组件的总体耗时是否在标准耗时区间内;
[0026]若是,则进入将所述耗时时长大于预设值的待检测span设置为慢请求方法的步骤;
[0027]若否,则将所述待检测span的耗时时长设置为无效数据,并进入利用所述Java采集探针根据线程栈快照确定每一所述待检测span的耗时时长的步骤。
[0028]本申请还提供了一种应用组件的诊断系统,该系统包括:
[0029]探针注入模块,用于向应用组件中注入Java采集探针;
[0030]span确定模块,用于接收信息采集任务,并根据所述信息采集任务确定待检测span;
[0031]耗时确定模块,用于利用所述Java采集探针根据线程栈快照确定每一所述待检测span的耗时时长;其中,所述耗时时长为线程执行所述待检测span对应的代码所消耗的时长;
[0032]慢请求标记模块,用于将所述耗时时长大于预设值的待检测span设置为慢请求方法,并将所述慢请求方法对应的代码作为诊断结果进行标记。
[0033]本申请还提供了一种存储介质,其上存储有计算机程序,所述计算机程序执行时实现上述应用组件的诊断方法执行的步骤。
[0034]本申请还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时实现上述应用组件的诊断方法执行的步骤。
[0035]本申请提供了一种应用组件的诊断方法,包括:向应用组件中注入Java采集探针;接收信息采集任务,并根据所述信息采集任务确定待检测span;利用所述Java采集探针根据线程栈快照确定每一所述待检测span的耗时时长;其中,所述耗时时长为线程执行所述待检测span对应的代码所消耗的时长;将所述耗时时长大于预设值的待检测span设置为慢请求方法,并将所述慢请求方法对应的代码作为诊断结果进行标记。
[0036]本申请向应用组件中注入Java采集探针,应用组件包括多个span的代码。在接收
到信息采集任务之后,通过Java采集探针对待检测span的耗时时长进行检测,并将耗时时长大于预设值的待检测span设置为慢请求方法,进而将慢请求方法对应的代码进行标记以实现对应用组件中慢请求方法的定位。本申请借助低性能消耗、低入侵性的Java采集探针确定慢请求方法,可以应用组件中慢请求方法进行自动定位,提高应用组件的运行效率。本申请同时还提供了一种应用组件的诊断系统、一种电子设备和一种存储介质,具有上述有益效果,在此不再赘述。
附图说明
[0037]为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0038]图1为本申请实施例所提供的一种应用组件的诊断方法的流程图;
[0039]图2为本申请实施例所提供的一种基于线程栈快照的代码级慢请求分析方案的原理示意图;
[0040]图3为本申请实施例所提供的一种应用组件的诊断系统的结构示意图。
具体实施方式
[0041]为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用组件的诊断方法,其特征在于,包括:向应用组件中注入Java采集探针;接收信息采集任务,并根据所述信息采集任务确定待检测span;利用所述Java采集探针根据线程栈快照确定每一所述待检测span的耗时时长;其中,所述耗时时长为线程执行所述待检测span对应的代码所消耗的时长;将所述耗时时长大于预设值的待检测span设置为慢请求方法,并将所述慢请求方法对应的代码作为诊断结果进行标记。2.根据权利要求1所述应用组件的诊断方法,其特征在于,在向应用组件中注入Java采集探针之后,还包括:在所述应用组件加载JVM时通过匹配类名和方法名修改所述应用组件的类代码,以使每一类代码被执行时在线程栈中记录执行起始时刻和执行结束时刻。3.根据权利要求1所述应用组件的诊断方法,其特征在于,利用所述Java采集探针根据线程栈快照确定每一所述待检测span的耗时时长,包括:按照预设周期采集所述线程栈快照;利用所述Java采集探针根据当前周期的线程栈快照确定每一所述待检测span的耗时时长。4.根据权利要求1所述应用组件的诊断方法,其特征在于,在利用所述Java采集探针根据线程栈快照确定每一所述待检测span的耗时时长之后,还包括:汇总所有所述待检测span与耗时时长的对应关系;按照待检测span在应用组件中的执行顺序在用户界面中依次显示所有所述待检测span与耗时时长的对应关系。5.根据权利要求1所述应用组件的诊断方法,其特征在于,将所述慢请求方法对应的代码在所述应用组件的代码中进行标记,包括:在可视化平台显示所述应用组件的代码,并将所述慢请求方法对应的代码在所述应用组件的代码中设置为预设颜色。6.根据权利要求1所述应用组件的诊断方法,其特征在于,在将所述慢请求方法对应...

【专利技术属性】
技术研发人员:王成龙崔润兴
申请(专利权)人:济南浪潮数据技术有限公司
类型:发明
国别省市:

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

1