一种分布式应用性能监控及瓶颈定位系统、方法及设备技术方案

技术编号:24852815 阅读:22 留言:0更新日期:2020-07-10 19:06
本发明专利技术公开了一种分布式应用性能监控及瓶颈定位系统、方法及设备,系统包括信息监听模块、信息收集模块、信息存储模块、信息输出模块、独立成分分析模块以及对比度分析模块;所述信息监听模块中还包括有插件生成模块;本发明专利技术实施例通过构造插件,对用户自定义的方法进行监控,从而完善了工具方法级别的监控。同时利用独立成分分析算法,将从监控工具获得的监控信息进行处理和分析,得到观测信号矩阵以及源信号矩阵,根据矩阵分析得到各个方法对不同功能性能的影响程度,获得方法成为性能瓶颈的置信率,解决了现有监控工具存在的无法提供应用方法级别的监控以及定位性能瓶颈的技术问题,在实际应用中具有指导意义。

【技术实现步骤摘要】
一种分布式应用性能监控及瓶颈定位系统、方法及设备
本专利技术涉及应用方法监控
,尤其涉及一种分布式应用性能监控及瓶颈定位系统、方法及设备。
技术介绍
现有的互联网的服务通常都是用复杂的、大规模分布式集群来实现的。但是由于这些分布式应用构建在不同的软件模块集上,而软件模块有可能是由不同的团队开发、或者使用了不同的编程语言来实现、或者分布在了几千台服务器中,横跨多个不同的数据中心。由于上述这些原因难以对应用进行监控,导致无法发现其中的性能瓶颈。性能瓶颈如果无法得到处理,可能会导致相关依赖的微服务响应延迟高,影响用户体验,甚至可能导致应用崩溃。目前分布式应用的性能监控工具分为两类:黑盒式和上下文追踪式。黑盒式:使用统计回归的技术来推断请求发起者和接收者的关系,如通过日志组合标识符、通过静态源代码分析模型或通过机器学习方法分析;上下文追踪式:依赖于应用程序或中间件明确的标记一个全局ID,从而连接记录和发起者的请求,如在通用组件库中添加插桩代码,或在类加载时添加插桩代码。在解决分布式应用性能监控方面,使用黑盒式方法需要更多的数据以获得足够的精度,而获得大规模的数据并处理的损耗十分昂贵。因此,工业界和学术界多使用上下文追踪式的性能监控方法。在上下文追踪式性能监控工具中,工作(BenjZminHSigelman,LuizAndreBarroso,MikeBurrows,PatStephenson,ManojPlakal,DonaldBeaver,SaulJaspan,andChandanShanbhag.Dapper,aLarge-ScaleDistributedSystemsTracingInfrastructure.TechnicalReport,Google,2010.)提出了Dapper,一种将插桩代码植入在通用组件库的工具,但是这是基于其依赖于Google的所有应用程序都使用相同的线程模型、控制流和RPC系统。为了使工具更具有应用普遍性,工作(MikeYChen,EmreKiciman,EugeneFratkin,ArmandoFox,andEricBrewer.Pinpoint:ProblemDeterminationinLarge,DynamicInternetServices.In32ndIEEE/IFIPInternationalConferenceonDependableSystemsandNetworks(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请求序列集中的goodtraces和badtraces;获取goodtraces的源信号矩阵和badtraces的源信号矩阵;使用对比度距离计算公式对goodtraces的源信号矩阵和badtraces的源信号矩阵进行计算,得到各个方法成为性能瓶颈的置信率。一种分布式应用性能监控及瓶颈定位设备,所述设备包括处理器以及存储器;所述存储器用于存储程序代码,并将所述程本文档来自技高网
...

【技术保护点】
1.一种分布式应用性能监控及瓶颈定位系统,其特征在于,包括信息监听模块、信息收集模块、信息存储模块、信息输出模块、独立成分分析模块以及对比度分析模块;所述信息监听模块中还包括有插件生成模块;/n所述插件生成模块用于读取用户定义的配置文件,生成监控自定义应用方法的插件;/n所述信息监听模块用于利用插件监听自定义应用接收和发送的RPC请求,并得到监控信息;/n所述信息收集模块用于收集监控信息;/n所述信息存储模块用于将收集到的监控信息进行储存;/n所述信息输出模块用于调用信息存储模块中储存的监控信息,并对监控信息进行处理得到观测信号矩阵;/n所述独立成分分析模块用于将观测信号矩阵转化为源信号矩阵;/n所述对比度分析模块用于根据源信号矩阵获得各个自定义应用方法成为性能瓶颈的置信率,将置信率较高的方法判断为性能瓶颈。/n

【技术特征摘要】
1.一种分布式应用性能监控及瓶颈定位系统,其特征在于,包括信息监听模块、信息收集模块、信息存储模块、信息输出模块、独立成分分析模块以及对比度分析模块;所述信息监听模块中还包括有插件生成模块;
所述插件生成模块用于读取用户定义的配置文件,生成监控自定义应用方法的插件;
所述信息监听模块用于利用插件监听自定义应用接收和发送的RPC请求,并得到监控信息;
所述信息收集模块用于收集监控信息;
所述信息存储模块用于将收集到的监控信息进行储存;
所述信息输出模块用于调用信息存储模块中储存的监控信息,并对监控信息进行处理得到观测信号矩阵;
所述独立成分分析模块用于将观测信号矩阵转化为源信号矩阵;
所述对比度分析模块用于根据源信号矩阵获得各个自定义应用方法成为性能瓶颈的置信率,将置信率较高的方法判断为性能瓶颈。


2.根据权利要求1所述的一种分布式应用性能监控及瓶颈定位系统,其特征在于,所述信息存储模块使用hbase对监控数据进行存储。


3.一种分布式应用性能监控及瓶颈定位方法,其特征在于,包括以下步骤:
读取用户定义的配置文件,生成监控自定义应用方法的插件;
利用插件监听自定义应用接收和发送的RPC请求,并得到监控信息;
收集监控信息,并将监控信息进行储存;
调用储存的监控信息,并对监控信息进行处理得到观测信号矩阵;
将观测信号矩阵转化为源信号矩阵;
根据源信号矩阵获得各个自定义应用方法成为性能瓶颈的置信率,将置信率较高的方法判断为性能瓶颈。


4.根据权利要求3所述的一种分布式应用性能监控及瓶颈定位方法,其特征在于,所述配置文件中需要声明以下信息:
插件名称、插件服务名称、需要被监控的类及类方法信息、服务id、参数id以及是否需要监控返回值和参数。


5.根据权利要求4所述的一种分布式应用性能监控及瓶颈定位方法,其特征在于,得到监控信息的流程如下:
在插件中为被监控的类及方法添加拦截器,在被监控的类加载时进行拦截;
在被监控的方法执行前添加before操作,记录方法中的RPC请求的名称以及方法开始时间;在被监控的方法执行后添加after操作,记录方法名称、方法参数、方法返回值以及方法结束时间;
为方法注册服务id和参数id,将上述记录的信息作为监控信...

【专利技术属性】
技术研发人员:陈晓江龙震岳
申请(专利权)人:广东电网有限责任公司
类型:发明
国别省市:广东;44

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

1