CN111400129A - 一种分布式应用性能监控及瓶颈定位系统、方法及设备 - Google Patents
一种分布式应用性能监控及瓶颈定位系统、方法及设备 Download PDFInfo
- Publication number
- CN111400129A CN111400129A CN202010150956.5A CN202010150956A CN111400129A CN 111400129 A CN111400129 A CN 111400129A CN 202010150956 A CN202010150956 A CN 202010150956A CN 111400129 A CN111400129 A CN 111400129A
- Authority
- CN
- China
- Prior art keywords
- monitoring
- information
- signal matrix
- module
- bottleneck
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3419—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
- G06F18/2134—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on separation criteria, e.g. independent component analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
- G06F18/2135—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods based on approximation criteria, e.g. principal component analysis
Abstract
本发明公开了一种分布式应用性能监控及瓶颈定位系统、方法及设备,系统包括信息监听模块、信息收集模块、信息存储模块、信息输出模块、独立成分分析模块以及对比度分析模块;所述信息监听模块中还包括有插件生成模块;本发明实施例通过构造插件,对用户自定义的方法进行监控,从而完善了工具方法级别的监控。同时利用独立成分分析算法,将从监控工具获得的监控信息进行处理和分析,得到观测信号矩阵以及源信号矩阵,根据矩阵分析得到各个方法对不同功能性能的影响程度,获得方法成为性能瓶颈的置信率,解决了现有监控工具存在的无法提供应用方法级别的监控以及定位性能瓶颈的技术问题,在实际应用中具有指导意义。
Description
技术领域
本发明涉及应用方法监控技术领域,尤其涉及一种分布式应用性能监控及瓶颈定位系统、方法及设备。
背景技术
现有的互联网的服务通常都是用复杂的、大规模分布式集群来实现的。但是由于这些分布式应用构建在不同的软件模块集上,而软件模块有可能是由不同的团队开发、或者使用了不同的编程语言来实现、或者分布在了几千台服务器中,横跨多个不同的数据中心。由于上述这些原因难以对应用进行监控,导致无法发现其中的性能瓶颈。性能瓶颈如果无法得到处理,可能会导致相关依赖的微服务响应延迟高,影响用户体验,甚至可能导致应用崩溃。
目前分布式应用的性能监控工具分为两类:黑盒式和上下文追踪式。黑盒式:使用统计回归的技术来推断请求发起者和接收者的关系,如通过日志组合标识符、通过静态源代码分析模型或通过机器学习方法分析;上下文追踪式:依赖于应用程序或中间件明确的标记一个全局ID,从而连接记录和发起者的请求,如在通用组件库中添加插桩代码,或在类加载时添加插桩代码。在解决分布式应用性能监控方面,使用黑盒式方法需要更多的数据以获得足够的精度,而获得大规模的数据并处理的损耗十分昂贵。因此,工业界和学术界多使用上下文追踪式的性能监控方法。
在上下文追踪式性能监控工具中,工作(BenjZmin H Sigelman,Luiz AndreBarroso,Mike Burrows,Pat Stephenson,Manoj Plakal,Donald Beaver,Saul Jaspan,and Chandan Shanbhag.Dapper,a Large-Scale Distributed Systems TracingInfrastructure.Technical Report,Google,2010.)提出了Dapper,一种将插桩代码植入在通用组件库的工具,但是这是基于其依赖于Google的所有应用程序都使用相同的线程模型、控制流和RPC系统。为了使工具更具有应用普遍性,工作(Mike Y Chen,Emre Kiciman,Eugene Fratkin,Armando Fox,and Eric Brewer.Pinpoint:Problem Determination inLarge,Dynamic Internet Services.In 32nd IEEE/IFIP International Conference onDependable Systems and Networks(DSN’02).)提出了Pinpoint,通过字节码增强的方式,在类加载时对应用代码进行插桩,在制作RPC时添加自定义的标签信息。该方法的主要不足在于:只提供了RPC级别的监控,无法监控细粒度方法级别的应用信息,并在监控之后没有对监控信息进行分析,这导致无法精确定位导致性能瓶颈的方法。
综上所述,现有的监控工具,存在着无法提供应用方法级别的监控以及定位性能瓶颈的技术问题。
发明内容
本发明提供了一种分布式应用性能监控及瓶颈定位系统、方法及设备,用于现有的监控工具存在着无法提供应用方法级别的监控以及定位性能瓶颈的技术问题。
本发明提供的一种分布式应用性能监控及瓶颈定位系统,包括信息监听模块、信息收集模块、信息存储模块、信息输出模块、独立成分分析模块以及对比度分析模块;所述信息监听模块中还包括有插件生成模块;
所述插件生成模块用于读取用户定义的配置文件,生成监控自定义应用方法的插件;
所述信息监听模块用于利用插件监听自定义应用接收和发送的RPC请求,并得到监控信息;
所述信息收集模块用于收集监控信息;
所述信息存储模块用于将收集到的监控信息进行储存;
所述信息输出模块用于调用信息存储模块中储存的监控信息,并对监控信息进行处理得到观测信号矩阵;
所述独立成分分析模块用于将观测信号矩阵转化为源信号矩阵;
所述对比度分析模块用于根据源信号矩阵获得各个自定义应用方法成为性能瓶颈的置信率,将置信率较高的方法判断为性能瓶颈。
优选的,所述信息存储模块使用hbase对监控数据进行存储。
一种分布式应用性能监控及瓶颈定位方法,包括以下步骤:
读取用户定义的配置文件,生成监控自定义应用方法的插件;
利用插件监听自定义应用接收和发送的RPC请求,并得到监控信息;
收集监控信息,并将监控信息进行储存;
调用储存的监控信息,并对监控信息进行处理得到观测信号矩阵;
将观测信号矩阵转化为源信号矩阵;
根据源信号矩阵获得各个自定义应用方法成为性能瓶颈的置信率,将置信率较高的方法判断为性能瓶颈。
优选的,所述配置文件中需要声明以下信息:
插件名称、插件服务名称、需要被监控的类及类方法信息、服务id、参数id以及是否需要监控返回值和参数。
优选的,得到监控信息的流程如下:
在插件中为被监控的类及方法添加拦截器,在被监控的类加载时进行拦截;
在被监控的方法执行前添加before操作,记录方法中的RPC请求的名称以及方法开始时间;在被监控的方法执行后添加after操作,记录方法名称、方法参数、方法返回值以及方法结束时间;
为方法注册服务id和参数id,将上述记录的信息作为监控信息。
优选的,在收集到监控信息之后,根据方法的开始时间和结束时间计算执行时间,串联属于同一个RPC-SPAN下的方法,将监控信息重构为键值对的形式并进行压缩,将压缩后监控信息进行存储。
优选的,对监控信息进行处理得到观测信号矩阵的步骤如下:
获取RPC请求序列集;
将RPC请求序列集中每一条trace的每一个请求req,按照req的id在监控信息中找到对应的监控信息,并将对应的监控信息构建为方法调用链;
根据方法调用链统计该条req的方法列表mlist和各个方法信息minfo;
将属于同一条trace的多个请求req进行组合,合并方法列表mlist为序列方法列表Mlist,将各个方法信息minfo与参数向量进行相乘得到方法观测值;
将请求序列集中的多条trace进行组合,合并序列方法列表Mlist,组成traces的观测信号矩阵,观测信号矩阵的元素为各个方法在不同trace中的方法观测值。
优选的,将观测信号矩阵转化为源信号矩阵的具体步骤如下:
通过白化去除观测信号矩阵的相关性,使用独立成分分析FastIca算法,基于负熵最大的方法分离出源信号矩阵,源信号矩阵的元素为各个方法在不同功能中的影响程度。
优选的,获得各个自定义应用方法成为性能瓶颈的置信率的具体步骤如下:
获取RPC请求序列集中的good traces和bad traces;
获取good traces的源信号矩阵和bad traces的源信号矩阵;
使用对比度距离计算公式对good traces的源信号矩阵和bad traces的源信号矩阵进行计算,得到各个方法成为性能瓶颈的置信率。
一种分布式应用性能监控及瓶颈定位设备,所述设备包括处理器以及存储器;
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行上所述的一种分布式应用性能监控及瓶颈定位方法。
从以上技术方案可以看出,本发明具有以下优点:
本发明实施例通过构造插件,对用户自定义的方法进行监控,从而完善了工具方法级别的监控。同时利用独立成分分析算法,将从监控工具获得的监控信息进行处理和分析,得到观测信号矩阵以及源信号矩阵,根据矩阵分析得到各个方法对不同功能性能的影响程度,获得方法成为性能瓶颈的置信率,解决了现有的监控工具存在着无法提供应用方法级别的监控以及定位性能瓶颈的技术问题,在实际应用中具有指导意义。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种分布式应用性能监控及瓶颈定位系统的系统结构图。
图2为本发明实施例提供的一种分布式应用性能监控及瓶颈定位系统的方法流程图。
图3为本发明实施例提供的一种分布式应用性能监控及瓶颈定位系统的设备框架图。
具体实施方式
本发明实施例提供了一种分布式应用性能监控及瓶颈定位系统、方法及设备,用于解决现有的监控工具存在着无法提供应用方法级别的监控以及定位性能瓶颈的技术问题。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,图1为本发明实施例提供的一种分布式应用性能监控及瓶颈定位系统的系统结构图。
本发明提供的一种分布式应用性能监控及瓶颈定位系统,包括信息监听模块101、信息收集模块102、信息存储模块103、信息输出模块104、独立成分分析模块105以及对比度分析模块106;所述信息监听模块101中还包括有插件生成模块107;
所述插件生成模块107用于读取用户定义的配置文件,生成监控自定义应用方法的插件;
所述信息监听模块101用于利用插件监听自定义应用接收和发送的RPC请求,并得到监控信息;
所述信息收集模块102用于收集监控信息;
所述信息存储模块103用于将收集到的监控信息进行储存;
所述信息输出模块104用于调用信息储存模块103中储存的监控信息,并对监控信息进行处理得到观测信号矩阵;
所述独立成分分析模块105用于将观测信号矩阵转化为源信号矩阵;
所述对比度分析模块106用于根据源信号矩阵获得各个自定义应用方法成为性能瓶颈的置信率,将置信率较高的方法判断为性能瓶颈。
进一步的,对各个模块的工作原理进行说明;
插件生成模块107的具体工作过程如下:
首先,在配置文件中定义需要监控的类以及对应的方法,插件生成模块107通过读配置文件生成相应的插件,配置中需要声明以下信息:
1)插件名称及插件服务名称;
2)需要被检控的类及类方法信息;
3)服务id及参数id,以及是否需要监控返回值和参数。
插件生成模块107通过读取上述配置信息生成插件,插件的主要功能如下:
1)为自定义应用的类及方法添加拦截器,在类加载时拦截并进行插桩。
2)定义插桩方法,在被监控方法执行前添加before操作,记录RPC请求的名称以及方法开始时间;在被监控方法执行后添加after操作,记录方法名、方法参数、方法返回值以及方法结束时间。
3)为方法注册服务id和参数id,以便查询时找到被监控的应用方法。
所述信息监听模块101的具体工作过程如下:
首先根据请求序列的执行时间将其分为good traces和bad traces,执行时间长的请求列表为good trace,执行时间短的请求列表为bad trace。请求监听模块分别监听来自请求序列集good traces和bad traces的请求,信息监听模块101随JVM启动后,在应用类加载时拦截之,为被监控的方法添加插桩代码,记录其方法名,方法开始时间,结束时间,方法参数等信息,并组合成监控信息发送到请求收集模块,具体如下:
1)信息监听模块101启动后首先加载各种工具类,如生成span的类,添加注释的类,日志类,插件类等,其中包括插件生成模块107中生成的插件。
2)信息监听模块101获取VM option定义的应用名称,agentid,然后解析插件路径,config文件路径,lib库,最后设置实例化启动类,初始化类参数,最后启动类。
3)在启动类中首先实例化应用内容,然后启动信息监听模块101的状态监控和信息发送。
4)信息监听模块101在应用方法执行时,会将被插桩的方法执行的插件生成模块107记录下的信息组合成监控信息,发送给信息收集模块102。
所述信息收集模块102的具体工作过程如下:
1)信息收集模块102启动后首先加载属性文件,数据库配置文件,连接信息存储模块103。
2)信息收集模块102收到信息监听模块101发来的监控信息,对监控信息进行处理,如通过方法的开始时间和结束时间计算方法执行时间,将属于同一个span的不同方法通过spanid串联起来,将应用注释构成span的注释列表等。
3)信息收集模块102将处理后的监控信息重构成便于存储的键值对形式,发送给信息存储模块103进行数据存储。
所述信息输出模块104的具体工作过程如下:
1)信息输出模块104根据模块调用者输入的请求序列集traces,调用信息存储模块103获取其监控信息。并将每一条trace的每一条请求,将分散的方法信息按照请求id进行重组,按照请求id找到对应的span列表,并构建方法调用链。
2)根据方法调用链,统计该请求所执行的方法列表,并同时统计每个方法的方法信息,包括:方法执行次数、执行时间以及调用子方法的次数。
3)将属于同一条请求序列trace的多条请求组合,合并方法列表和方法信息,并将方法信息与输入的参数向量相乘,作为一条trace的输出信息。
4)最后将方法列表合并,将多条trace组合,获得traces矩阵。该矩阵元素为各个方法在不同trace中的观测信息。
所述独立成分分析模块105的具体实现如下:
1)独立成分分析模块105调用信息输出模块104,获取对应请求列表生成的traces矩阵。
2)独立成分分析模块105先对数据做预处理,通过白化去除观测信号的相关性,然后使用独立成分分析FastIca算法,基于负熵最大的方法分离出源信号矩阵,源信号矩阵的元素为各个应用方法在不同功能中的影响程度。
所述对比度分析模块106的具体实现如下:
1)对比度分析模块106模块调用独立成分分析模块105,获取请求序列集的goodtraces的和bad traces生成的源信号矩阵,获得方法对功能的影响程度;
2)对比度分析模块106模块使用对比度距离计算公式,计算各个方法成为性能瓶颈的置信率;
3)对比度分析模块106模块对置信率进行排序,将置信率较高的方法判断为性能瓶颈。
作为一个优选的实施例,所述信息存储模块103使用hbase对监控数据进行存储。
如图2所示,一种分布式应用性能监控及瓶颈定位方法,包括以下步骤:
读取用户定义的配置文件,生成监控自定义应用方法的插件;
利用插件监听自定义应用接收和发送的RPC请求,并得到监控信息;
收集监控信息,并将监控信息进行储存;
调用储存的监控信息,并对监控信息进行处理得到观测信号矩阵;
将观测信号矩阵转化为源信号矩阵;
根据源信号矩阵获得各个自定义应用方法成为性能瓶颈的置信率,对置信率进行排序,将置信率较高的方法判断为性能瓶颈。
作为一个优选的实施例,所述配置文件中需要声明以下信息:
插件名称、插件服务名称、需要被监控的类及类方法信息、服务id、参数id以及是否需要监控返回值和参数。
作为一个优选的实施例,得到监控信息的流程如下:
在插件中为被监控的类及方法添加拦截器,在被监控的类加载时进行拦截;
在被监控的方法执行前添加before操作,记录方法中的RPC请求的名称以及方法开始时间;在被监控的方法执行后添加after操作,记录方法名称、方法参数、方法返回值以及方法结束时间;
为方法注册服务id和参数id,将上述记录的信息作为监控信息。
作为一个优选的实施例,在收集到监控信息之后,根据方法的开始时间和结束时间计算执行时间,串联属于同一个RPC-SPAN下的方法,将监控信息重构为键值对的形式并进行压缩,将压缩后监控信息进行存储。
作为一个优选的实施例,对监控信息进行处理得到观测信号矩阵的步骤如下:
获取RPC请求序列集;
将RPC请求序列集中每一条trace的每一个请求req,按照req的id在监控信息中找到对应的监控信息,并将对应的监控信息构建为方法调用链;
根据方法调用链统计该条req的方法列表mlist和各个方法信息minfo;
将属于同一条trace的多个请求req进行组合,合并方法列表mlist为序列方法列表Mlist,将各个方法信息minfo与参数向量进行相乘得到方法观测值;
将请求序列集中的多条trace进行组合,合并序列方法列表Mlist,组成traces的观测信号矩阵,观测信号矩阵的元素为各个方法在不同trace中的方法观测值。
作为一个优选的实施例,将观测信号矩阵转化为源信号矩阵的具体步骤如下:
通过白化去除观测信号矩阵的相关性,使用独立成分分析FastIca算法,基于负熵最大的方法分离出源信号矩阵,源信号矩阵的元素为各个方法在不同功能中的影响程度。
作为一个优选的实施例,获得各个自定义应用方法成为性能瓶颈的置信率的具体步骤如下:
获取RPC请求序列集中的good traces和bad traces;
获取good traces的源信号矩阵和bad traces的源信号矩阵;
使用对比度距离计算公式对good traces的源信号矩阵和bad traces的源信号矩阵进行计算,得到各个方法成为性能瓶颈的置信率。
如图3所示,一种分布式应用性能监控及瓶颈定位设备30,所述设备包括处理器300以及存储器301;
所述存储器301用于存储程序代码302,并将所述程序代码302传输给所述处理器;
所述处理器300用于根据所述程序代码302中的指令执行上述的一种分布式应用性能监控及瓶颈定位设备方法中的步骤。
示例性的,所述计算机程序302可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器301中,并由所述处理器300执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序302在所述终端设备30中的执行过程。
所述终端设备30可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器300、存储器301。本领域技术人员可以理解,图3仅仅是终端设备30的示例,并不构成对终端设备30的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器300可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器301可以是所述终端设备30的内部存储单元,例如终端设备30的硬盘或内存。所述存储器301也可以是所述终端设备30的外部存储设备,例如所述终端设备30上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器301还可以既包括所述终端设备30的内部存储单元也包括外部存储设备。所述存储器301用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器301还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种分布式应用性能监控及瓶颈定位系统,其特征在于,包括信息监听模块、信息收集模块、信息存储模块、信息输出模块、独立成分分析模块以及对比度分析模块;所述信息监听模块中还包括有插件生成模块;
所述插件生成模块用于读取用户定义的配置文件,生成监控自定义应用方法的插件;
所述信息监听模块用于利用插件监听自定义应用接收和发送的RPC请求,并得到监控信息;
所述信息收集模块用于收集监控信息;
所述信息存储模块用于将收集到的监控信息进行储存;
所述信息输出模块用于调用信息存储模块中储存的监控信息,并对监控信息进行处理得到观测信号矩阵;
所述独立成分分析模块用于将观测信号矩阵转化为源信号矩阵;
所述对比度分析模块用于根据源信号矩阵获得各个自定义应用方法成为性能瓶颈的置信率,将置信率较高的方法判断为性能瓶颈。
2.根据权利要求1所述的一种分布式应用性能监控及瓶颈定位系统,其特征在于,所述信息存储模块使用hbase对监控数据进行存储。
3.一种分布式应用性能监控及瓶颈定位方法,其特征在于,包括以下步骤:
读取用户定义的配置文件,生成监控自定义应用方法的插件;
利用插件监听自定义应用接收和发送的RPC请求,并得到监控信息;
收集监控信息,并将监控信息进行储存;
调用储存的监控信息,并对监控信息进行处理得到观测信号矩阵;
将观测信号矩阵转化为源信号矩阵;
根据源信号矩阵获得各个自定义应用方法成为性能瓶颈的置信率,将置信率较高的方法判断为性能瓶颈。
4.根据权利要求3所述的一种分布式应用性能监控及瓶颈定位方法,其特征在于,所述配置文件中需要声明以下信息:
插件名称、插件服务名称、需要被监控的类及类方法信息、服务id、参数id以及是否需要监控返回值和参数。
5.根据权利要求4所述的一种分布式应用性能监控及瓶颈定位方法,其特征在于,得到监控信息的流程如下:
在插件中为被监控的类及方法添加拦截器,在被监控的类加载时进行拦截;
在被监控的方法执行前添加before操作,记录方法中的RPC请求的名称以及方法开始时间;在被监控的方法执行后添加after操作,记录方法名称、方法参数、方法返回值以及方法结束时间;
为方法注册服务id和参数id,将上述记录的信息作为监控信息。
6.根据权利要求5所述的一种分布式应用性能监控及瓶颈定位方法,其特征在于,在收集到监控信息之后,根据方法的开始时间和结束时间计算执行时间,串联属于同一个RPC-SPAN下的方法,将监控信息重构为键值对的形式并进行压缩,将压缩后监控信息进行存储。
7.根据权利要求6所述的一种分布式应用性能监控及瓶颈定位方法,其特征在于,对监控信息进行处理得到观测信号矩阵的步骤如下:
获取RPC请求序列集;
将RPC请求序列集中每一条trace的每一个请求req,按照req的id在监控信息中找到对应的监控信息,并将对应的监控信息构建为方法调用链;
根据方法调用链统计该条req的方法列表mlist和各个方法信息minfo;
将属于同一条trace的多个请求req进行组合,合并方法列表mlist为序列方法列表Mlist,将各个方法信息minfo与参数向量进行相乘得到方法观测值;
将请求序列集中的多条trace进行组合,合并序列方法列表Mlist,组成traces的观测信号矩阵,观测信号矩阵的元素为各个方法在不同trace中的方法观测值。
8.根据权利要求7所述的一种分布式应用性能监控及瓶颈定位方法,其特征在于,将观测信号矩阵转化为源信号矩阵的具体步骤如下:
通过白化去除观测信号矩阵的相关性,使用独立成分分析FastIca算法,基于负熵最大的方法分离出源信号矩阵,源信号矩阵的元素为各个方法在不同功能中的影响程度。
9.根据权利要求8所述的一种分布式应用性能监控及瓶颈定位方法,其特征在于,获得各个自定义应用方法成为性能瓶颈的置信率的具体步骤如下:
获取RPC请求序列集中的good traces和bad traces;
获取good traces的源信号矩阵和bad traces的源信号矩阵;
使用对比度距离计算公式对good traces的源信号矩阵和bad traces的源信号矩阵进行计算,得到各个方法成为性能瓶颈的置信率。
10.一种分布式应用性能监控及瓶颈定位设备,其特征在于,所述设备包括处理器以及存储器;
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求3-9任一项所述的一种分布式应用性能监控及瓶颈定位方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010150956.5A CN111400129B (zh) | 2020-03-06 | 2020-03-06 | 一种分布式应用性能监控及瓶颈定位系统、方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010150956.5A CN111400129B (zh) | 2020-03-06 | 2020-03-06 | 一种分布式应用性能监控及瓶颈定位系统、方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111400129A true CN111400129A (zh) | 2020-07-10 |
CN111400129B CN111400129B (zh) | 2022-02-11 |
Family
ID=71432274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010150956.5A Active CN111400129B (zh) | 2020-03-06 | 2020-03-06 | 一种分布式应用性能监控及瓶颈定位系统、方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111400129B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114025207A (zh) * | 2021-12-07 | 2022-02-08 | 贵阳朗玛视讯科技有限公司 | 一种基于iptv系统启动apk插件的方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090070280A1 (en) * | 2007-09-12 | 2009-03-12 | International Business Machines Corporation | Method for performance bottleneck diagnosis and dependency discovery in distributed systems and computer networks |
CN101833955A (zh) * | 2010-01-22 | 2010-09-15 | 大连理工大学 | 一种基于负熵最大化的复数约束独立分量分析方法 |
CN105069703A (zh) * | 2015-08-10 | 2015-11-18 | 国家电网公司 | 一种电网海量数据管理方法 |
CN106487596A (zh) * | 2016-10-26 | 2017-03-08 | 宜人恒业科技发展(北京)有限公司 | 分布式服务跟踪实现方法 |
CN109471778A (zh) * | 2018-11-19 | 2019-03-15 | 国网安徽省电力有限公司信息通信分公司 | 一种电力系统的监控方法、装置及设备 |
CN110806931A (zh) * | 2019-10-31 | 2020-02-18 | 上海依图网络科技有限公司 | 分布式服务的调用链路跟踪实现方法、装置及电子设备 |
CN110888780A (zh) * | 2019-11-19 | 2020-03-17 | 泰康保险集团股份有限公司 | 应用监控方法、装置、设备及存储介质 |
-
2020
- 2020-03-06 CN CN202010150956.5A patent/CN111400129B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090070280A1 (en) * | 2007-09-12 | 2009-03-12 | International Business Machines Corporation | Method for performance bottleneck diagnosis and dependency discovery in distributed systems and computer networks |
CN101833955A (zh) * | 2010-01-22 | 2010-09-15 | 大连理工大学 | 一种基于负熵最大化的复数约束独立分量分析方法 |
CN105069703A (zh) * | 2015-08-10 | 2015-11-18 | 国家电网公司 | 一种电网海量数据管理方法 |
CN106487596A (zh) * | 2016-10-26 | 2017-03-08 | 宜人恒业科技发展(北京)有限公司 | 分布式服务跟踪实现方法 |
CN109471778A (zh) * | 2018-11-19 | 2019-03-15 | 国网安徽省电力有限公司信息通信分公司 | 一种电力系统的监控方法、装置及设备 |
CN110806931A (zh) * | 2019-10-31 | 2020-02-18 | 上海依图网络科技有限公司 | 分布式服务的调用链路跟踪实现方法、装置及电子设备 |
CN110888780A (zh) * | 2019-11-19 | 2020-03-17 | 泰康保险集团股份有限公司 | 应用监控方法、装置、设备及存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114025207A (zh) * | 2021-12-07 | 2022-02-08 | 贵阳朗玛视讯科技有限公司 | 一种基于iptv系统启动apk插件的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111400129B (zh) | 2022-02-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112307057A (zh) | 数据的处理方法及装置、电子设备、计算机存储介质 | |
Zhai et al. | Cypress: Combining static and dynamic analysis for top-down communication trace compression | |
CN111240876A (zh) | 微服务的故障定位方法、装置、存储介质及终端 | |
CN111400129B (zh) | 一种分布式应用性能监控及瓶颈定位系统、方法及设备 | |
CN111381989A (zh) | 微服务链路生成方法、装置、服务器及存储介质 | |
CN115168400A (zh) | 外部数据管理系统及方法 | |
JP6995146B2 (ja) | 適応アプリケーションの性能分析 | |
CN109241163B (zh) | 电子凭证的生成方法及终端设备 | |
CN108845927B (zh) | 一种测试用例的筛选方法及装置 | |
CN115952398B (zh) | 基于物联网的数据上传统计计算方法、系统和存储介质 | |
CN112433908A (zh) | 确定检测服务器的间隔时间的方法、系统、设备及介质 | |
CN111241821B (zh) | 确定用户的行为特征的方法和装置 | |
CN111694721A (zh) | 一种微服务的故障监测方法和装置 | |
CN115712552A (zh) | 一种api和数据库的关联审计方法及系统 | |
CN111368104A (zh) | 信息处理方法、装置及设备 | |
Boncea et al. | A scalable architecture for automated monitoring of microservices | |
Hesse et al. | A new application benchmark for data stream processing architectures in an enterprise context: doctoral symposium | |
CN114281549A (zh) | 数据的处理方法及装置 | |
CN109726550A (zh) | 异常操作行为检测方法、装置及计算机可读存储介质 | |
CN110011845B (zh) | 日志采集方法及系统 | |
KR102386330B1 (ko) | 표준 프로세스를 기반으로 한 사용자 프로세스 분석 장치 및 방법 | |
CN111581044A (zh) | 集群优化方法、装置、服务器及介质 | |
CN112035425B (zh) | 一种日志的存储方法、装置及计算机系统 | |
CN112232960B (zh) | 交易应用系统监控方法及装置 | |
CN114666237B (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 |