CN111400129B - 一种分布式应用性能监控及瓶颈定位***、方法及设备 - Google Patents
一种分布式应用性能监控及瓶颈定位***、方法及设备 Download PDFInfo
- Publication number
- CN111400129B CN111400129B CN202010150956.5A CN202010150956A CN111400129B CN 111400129 B CN111400129 B CN 111400129B CN 202010150956 A CN202010150956 A CN 202010150956A CN 111400129 B CN111400129 B CN 111400129B
- 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.)
- Active
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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Mathematical Physics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种分布式应用性能监控及瓶颈定位***、方法及设备,***包括信息监听模块、信息收集模块、信息存储模块、信息输出模块、独立成分分析模块以及对比度分析模块;所述信息监听模块中还包括有插件生成模块;本发明实施例通过构造插件,对用户自定义的方法进行监控,从而完善了工具方法级别的监控。同时利用独立成分分析算法,将从监控工具获得的监控信息进行处理和分析,得到观测信号矩阵以及源信号矩阵,根据矩阵分析得到各个方法对不同功能性能的影响程度,获得方法成为性能瓶颈的置信率,解决了现有监控工具存在的无法提供应用方法级别的监控以及定位性能瓶颈的技术问题,在实际应用中具有指导意义。
Description
技术领域
本发明涉及应用方法监控技术领域,尤其涉及一种分布式应用性能监控及瓶颈定位***、方法及设备。
背景技术
现有的互联网的服务通常都是用复杂的、大规模分布式集群来实现的。但是由于这些分布式应用构建在不同的软件模块集上,而软件模块有可能是由不同的团队开发、或者使用了不同的编程语言来实现、或者分布在了几千台服务器中,横跨多个不同的数据中心。由于上述这些原因难以对应用进行监控,导致无法发现其中的性能瓶颈。性能瓶颈如果无法得到处理,可能会导致相关依赖的微服务响应延迟高,影响用户体验,甚至可能导致应用崩溃。
目前分布式应用的性能监控工具分为两类:黑盒式和上下文追踪式。黑盒式:使用统计回归的技术来推断请求发起者和接收者的关系,如通过日志组合标识符、通过静态源代码分析模型或通过机器学习方法分析;上下文追踪式:依赖于应用程序或中间件明确的标记一个全局ID,从而连接记录和发起者的请求,如在通用组件库中添加插桩代码,或在类加载时添加插桩代码。在解决分布式应用性能监控方面,使用黑盒式方法需要更多的数据以获得足够的精度,而获得大规模的数据并处理的损耗十分昂贵。因此,工业界和学术界多使用上下文追踪式的性能监控方法。
在上下文追踪式性能监控工具中,工作(BenjZmin H Sigelman, Luiz AndreBarroso,Mike Burrows, Pat Stephenson,Manoj Plakal, Donald Beaver, SaulJaspan, and Chandan Shanbhag. Dapper, a Large-Scale Distributed SystemsTracing Infrastructure. Technical Report, Google, 2010.)提出了Dapper,一种将插桩代码植入在通用组件库的工具,但是这是基于其依赖于Google 的所有应用程序都使用相同的线程模型、控制流和RPC ***。为了使工具更具有应用普遍性,工作(Mike Y Chen,Emre Kiciman, Eugene Fratkin, Armando Fox, and Eric Brewer. Pinpoint: ProblemDetermination in Large, Dynamic Internet Services. In 32nd IEEE/IFIPInternational Conference on Dependable 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 启动后,在应用类加载时拦截之,为被监控的方法添加插桩代码, 记录其方法名,方法开始时间,结束时间,方法参数等信息,并组合成监控信息发送到请求收集模块,具体如下:
信息监听模块 101 启动后首先加载各种工具类,如生成 span 的类,添加注释的类,日志类,插件类等,其中包括插件生成模块 107 中生成的插件。
1)信息监听模块 101 获取VM option 定义的应用名称,agentid,然后解析插件路径,config 文件路径,lib 库,最后设置实例化启动类,初始化类参数,最后启动类。
2)在启动类中首先实例化应用内容,然后启动信息监听模块 101 的状态监控和信息发送。
3)信息监听模块 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,获取请求序列集的good traces 的和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 (9)
1.一种分布式应用性能监控及瓶颈定位***,其特征在于,包括信息监听模块、信息收集模块、信息存储模块、信息输出模块、独立成分分析模块以及对比度分析模块;所述信息监听模块中还包括有插件生成模块;
所述插件生成模块用于读取用户定义的配置文件,生成监控自定义应用组件内部方法的插件;
所述信息监听模块用于利用插件监听自定义应用组件内部方法接收和发送的RPC 请求,并得到监控信息;
所述信息收集模块用于收集监控信息;
所述信息存储模块用于将收集到的监控信息进行储存;
所述信息输出模块用于调用信息存储模块中储存的监控信息,并对监控信息进行处理得到观测信号矩阵;
所述独立成分分析模块用于将观测信号矩阵转化为源信号矩阵;
所述对比度分析模块用于根据源信号矩阵获得各个自定义应用组件内部方法成为性能瓶颈的置信率,将置信率较高的方法判断为性能瓶颈,所述获得各个自定义应用组件内部方法成为性能瓶颈的置信率的具体步骤包括:
获取RPC 请求序列集中的good traces 和bad traces;
获取good traces 的源信号矩阵和bad traces 的源信号矩阵;
使用对比度距离计算公式对good traces 的源信号矩阵和bad traces 的源信号矩阵进行计算,得到各个方法成为性能瓶颈的置信率。
2.根据权利要求 1 所述的一种分布式应用性能监控及瓶颈定位***,其特征在于,所述信息存储模块使用hbase 对监控数据进行存储。
3.一种分布式应用性能监控及瓶颈定位方法,其特征在于,包括以下步骤:
读取用户定义的配置文件,生成监控自定义应用组件内部方法的插件; 利用插件监听自定义应用组件内部方法接收和发送的RPC 请求,并得到监控信息;
收集监控信息,并将监控信息进行储存;
调用储存的监控信息,并对监控信息进行处理得到观测信号矩阵; 将观测信号矩阵转化为源信号矩阵;
根据源信号矩阵获得各个自定义应用组件内部方法成为性能瓶颈的置信率,将置信率较高的方法判断为性能瓶颈,所述获得各个自定义应用组件内部方法成为性能瓶颈的置信率的具体步骤包括:
获取RPC 请求序列集中的good traces 和bad traces;
获取good traces 的源信号矩阵和bad traces 的源信号矩阵;
使用对比度距离计算公式对good traces 的源信号矩阵和bad traces 的源信号矩阵进行计算,得到各个方法成为性能瓶颈的置信率。
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.一种分布式应用性能监控及瓶颈定位设备,其特征在于,所述设备包括处理器以及存储器;
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器; 所述处理器用于根据所述程序代码中的指令执行权利要求 3-8 任一项所述的一种分布式应用性能监控及瓶颈定位方法。
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 CN111400129A (zh) | 2020-07-10 |
CN111400129B true 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) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112860345B (zh) * | 2021-02-26 | 2024-06-21 | 中国银行股份有限公司 | 插件管理方法及装置 |
CN114025207A (zh) * | 2021-12-07 | 2022-02-08 | 贵阳朗玛视讯科技有限公司 | 一种基于iptv***启动apk插件的方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833955A (zh) * | 2010-01-22 | 2010-09-15 | 大连理工大学 | 一种基于负熵最大化的复数约束独立分量分析方法 |
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 | 泰康保险集团股份有限公司 | 应用监控方法、装置、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7890449B2 (en) * | 2007-09-12 | 2011-02-15 | International Business Machines Corporation | Method for performance bottleneck diagnosis and dependency discovery in distributed systems and computer networks |
CN105069703B (zh) * | 2015-08-10 | 2018-08-28 | 国家电网公司 | 一种电网海量数据管理方法 |
-
2020
- 2020-03-06 CN CN202010150956.5A patent/CN111400129B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101833955A (zh) * | 2010-01-22 | 2010-09-15 | 大连理工大学 | 一种基于负熵最大化的复数约束独立分量分析方法 |
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 | 泰康保险集团股份有限公司 | 应用监控方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111400129A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110245078B (zh) | 一种软件的压力测试方法、装置、存储介质和服务器 | |
CN106656536B (zh) | 一种用于处理服务调用信息的方法与设备 | |
CN114185708A (zh) | 基于分布式链路追踪的数据分析方法、装置和电子设备 | |
CN111400129B (zh) | 一种分布式应用性能监控及瓶颈定位***、方法及设备 | |
CN112307057A (zh) | 数据的处理方法及装置、电子设备、计算机存储介质 | |
CN111240876B (zh) | 微服务的故障定位方法、装置、存储介质及终端 | |
CN111381989A (zh) | 微服务链路生成方法、装置、服务器及存储介质 | |
CN113485282B (zh) | 分散控制***消息跟踪展示方法、***、设备及存储介质 | |
CN111327466A (zh) | 一种告警分析方法、***、设备以及介质 | |
CN114706740A (zh) | 混沌实验方法、装置、存储介质和设备 | |
CN112612832B (zh) | 节点分析方法、装置、设备及存储介质 | |
CN112948262A (zh) | 一种***测试方法、装置、计算机设备和存储介质 | |
CN113138906A (zh) | 一种调用链数据采集方法、装置、设备及存储介质 | |
CN116881100A (zh) | 日志检测方法、日志告警方法、***、设备及存储介质 | |
CN111352821A (zh) | 业务测试方法、装置、电子设备和计算机可读存储介质 | |
CN115712552A (zh) | 一种api和数据库的关联审计方法及*** | |
US11816210B2 (en) | Risk-based alerting for computer security | |
CN111368104A (zh) | 信息处理方法、装置及设备 | |
CN112232960B (zh) | 交易应用***监控方法及装置 | |
CN114648323A (zh) | 面向业务场景的调用链处理方法、装置及介质 | |
CN109726550A (zh) | 异常操作行为检测方法、装置及计算机可读存储介质 | |
CN114281549A (zh) | 数据的处理方法及装置 | |
CN112035425B (zh) | 一种日志的存储方法、装置及计算机*** | |
CN113992436B (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 |