一种可靠性能监控系统及方法

文档序号:6386330阅读:359来源:国知局
专利名称:一种可靠性能监控系统及方法
技术领域
本发明涉及一种可靠性能监控系统及方法。
背景技术
目前,主要采用单个性能监控服务器来进行性能监控。然而,当该性能监控服务器宕机时,监控服务中断。如果在性能监控服务器中使用双机集群(HA)方式或者额外的非关系数据库存储性能监控日志数据,会对性能造成巨大影响。因此,期望提供一种可靠性能监控系统及方法。

发明内容
为了解决现有技术中的上述缺点和问题而提出本发明。根据一个方面,本发明提出一种可靠性能监控系统,包括应用服务器,用于运行被监控应用、将所述被监控应用的性能相关信息记录到性能日志存储模块中、并定时发送所述性能日志存储模块中的日志数据;日志传输平台,用于接收从所述应用服务器发送的日志数据、并根据性能分析服务器的订阅将所述日志数据发送到至少两个性能分析服务器;任务管理中心,用于向每个所述性能分析服务器分配需要处理的任务;以及至少两个性能分析服务器,用于执行所分配的任务,以对所述日志数据进行分析处理,获得性能统计结果。可选地,每个所述性能分析服务器上部署主性能分析模块和辅性能分析模块,在正常情况下,所述主性能分析模块将执行;当主性能分析模块所在的性能分析服务器宕机时,或者由于其他原因造成不能提供服务时,所述辅性能分析模块将被分配所述主性能分析模块承担的所有或一部分任务。可选地,每个所述性能分析服务器上单独部署任务分配模块,并且所述任务管理中心通过所述任务分配模块来向所述性能分析服务器分配需要处理的任务。可选地,所述任务管理模块向所述任务管理中心注册,所述任务管理中心将分配给部署有所述任务管理模块的性能分析服务器的任务返回给所述任务管理模块,所述任务管理模块将所分配的任务写入任务分配文件,性能分析模块每次进行性能分析统计前,读取所述任务分配文件来确定自己要执行的任务。可选地,当一个所述性能分析服务器宕机时,所述任务管理中心根据算法或者配置文件等选择其他所述性能分析服务器来执行宕机的性能分析服务器所执行的任务。可选地,调用所述其他任务分析服务器上部署的任务管理模块分配新任务。可选地,所述应用服务器包括日志提取代理,用于定时从所述性能日志存储模块中读取增量更新并发送。根据本发明的另一个方面,本发明提出一种可靠性能监控方法,包括被监控应用将性能相关信息记录到性能日志存储模块;所述被监控应用定时将存储在所述性能日志存储模块中的日志数据发送到日志传输平台;所述日志传输平台根据性能分析服务器的订阅将所述日志数据发送到至少两个性能分析服务器;每个所述性能分析服务器执行所述任务管理中心所分配的任务;以及当一个所述性能分析服务器宕机时,所述任务管理中心将宕机的性能分析服务器的任务分配给其他性能分析服务器。可选地,所述任务管理中心通过部署在性能分析服务器上的任务分配模块来向性能分析服务器分配任务。可选地,在性能分析服务器启动后,任务管理模块向任务管理中心注册,任务管理中心将分配给这个性能分析服务器的任务返回给任务管理模块,任务管理模块将所分配的任务写入任务分配文件,性能分析模块每次进行性能分析统计前,读取任务分配文件来确定自己要执行的任务。可选地,当一个性能分析服务器宕机时,所述任务管理中心将根据算法或者配置文件选择其他性能分析服务器来执行宕机性能分析服务器执行的任务,其中,接替执行性
能分析任务的性能分析模块所在的性能分析服务器上,必须订阅了要分析应用的性能日
O可选地,通过日志提取代理定时从所述性能日志存储模块中读取增量更新并发送。


通过下面结合附图进行的描述,本发明一些示范性实施例的上述和其他方面、特征和优点对于本领域技术人员来说将变得显而易见,其中图1是图示根据本发明的可靠性能监控系统的框图;以及图2是图示根据本发明的可靠性能监控方法的流程图。
具体实施例方式提供参考附图的下面描述以帮助全面理解本发明的示范性实施例。其包括各种细节以助于理解,而应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识至IJ,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,省略了对公知功能和结构的描述。根据本发明的可靠性能监控系统及方法能够解决性能监控的单点问题,当一台性能监控服务器宕机时,可以由其他性能监控服务器继续进行监控,保证监控服务不中断。下面将参考附图详细描述本发明。图1是图示根据本发明的可靠性能监控系统的框图。如图1中所示,根据本发明的可靠性能监控系统包括应用服务器110、日志传输平台120、至少两个性能分析服务器130和任务管理中心140。虽然在图1中示出了两个应用服务器110-1和110-2,但是可以包括更少或更多的应用服务器。每个应用服务器110运行被监控应用112、将被监控应用112的性能相关信息记录到性能日志存储模块114 (例如性能日志)中、并定时发送性能日志存储模块114中的日志数据。可以每当被监控应用112被执行时,通过被监控应用112调用适当的方法或接口来将性能相关信息记录到性能日志存储模块114中。性能相关信息可以包括执行开始时间、执行完成时间等。此外,可以通过日志提取代理116来定时发送性能日志存储模块114中的日志数据。优选地,日志提取代理116定时从性能日志存储模块114中读取增量更新并发送。日志传输平台(或消息中间件)120接收从应用服务器110发送的日志数据、并根据所述至少两个性能分析服务器130的订阅将日志数据发送到性能分析服务器。任务管理中心140向每个性能分析服务器130分配需要处理的任务。例如,任务管理中心140可以从数据库等读取要分配的所有任务,并且在分配任务时保证每一个应用服务器上的所有应用都可以进行性能分析统计,而且在通常情况下保持每个性能分析服务器的负载基本平衡。明显地,任务管理中心140可以根据其他规则来分配任务,例如基于每个性能分析服务器的性能等因素。此外,当一个性能分析服务器宕机时,或者其他原因造成主性能分析模块不能提供服务时,任务管理中心140将该任务分析服务器的任务分配给其他记录有相应日志数据的性能分析服务器。例如,可以通过存活性监控系统来发现一个性能分析服务器出现故障,并通知任务管理中心。性能分析服务器130执行每个所分配的任务,对日志数据进行分析处理,获得性能统计结果。例如,每隔预定时间段(例如每分钟)执行一次性能分析。此外,性能分析服务器130可以将分析结果存储在数据库中,从而能够通过展示系统获取相关信息。例如,性能分析服务器将分析结果存储到外部的存储系统中(数据库、nosql数据库等)中。当分配到新的任务时(例如,当其他性能分析服务器宕机时由任务管理中心分配新的任务),性能分析服务器可以从存储分析结果的存储系统(数据库、nosql数据库等)中找到最后分析结果,根据最后分析结果的时间,继续进行性能统计分析。在图1中示出每个性能分析服务器130上部署两个性能分析模块,即主性能分析模块132和辅性能分析模块134。在正常情况下,主性能分析模块将执行;当另外一台性能分析服务器宕机时,辅性能分析模块134将被分配原来由宕机的性能分析服务器承担的任务或一部分(例如,在包括三个或更多性能分析服务器的情况下)。虽然在图1中每个性能分析服务器上部署两个性能分析模块(针对单线程性能分析模块),但是对于多线程性能分析模块,只需要一个性能分析模块,而且为了增加可靠性,也可以部署更多个性能分析模块。为了提高开发效率和系统耦合度,每个性能分析服务器上单独部署任务分配模块136。任务管理中心140通过任务分配模块136来向性能分析服务器130分配需要处理的任务。例如,在一个性能分析服务器启动后,首先任务管理模块向任务管理中心注册,注册的信息可以包括性能分析模块的数量和名称;然后任务管理中心将分配给这个性能分析服务器的任务返回给任务管理模块;任务管理模块将所分配的任务写入任务分配文件;性能分析模块每次进行性能分析统计前,读取任务分配文件,确定自己要执行的任务,进行本次性能分析统计。此外,当(例如通过存活性监控系统)发现一个性能分析服务器宕机时,任务管理中心将根据算法或者配置文件等选择一个性能分析服务器来执行宕机服务器执行的任务,其中调用该任务分析服务器上部署的任务管理模块分配新任务,然后执行上述过程(即任务管理中心将分配给这个性能分析服务器的任务返回给任务管理模块;任务管理模块将所分配的任务写入任务分配文件;性能分析模块每次进行性能分析统计前,读取任务分配文件,确定自己要执行的任务,进行本次性能分析统计)。
图2是图示根据本发明的可靠性能监控方法的流程图。如图2中所示,该方法开始于步骤210。在步骤210中,被监控应用将性能相关信息记录到性能日志存储模块。例如,每当被监控应用被执行时,通过被监控应用调用适当的方法或接口来将性能相关信息记录到性能日志存储模块中,性能相关信息可以包括执行开始时间、执行完成时间等。在步骤220中,例如通过日志提取代理来定时将日志数据发送到日志传输平台。优选地,通过日志提取代理定时从性能日志存储模块中读取增量更新并发送。在步骤230中,日志传输平台根据性能分析服务器的订阅将日志数据发送到至少两个性能分析服务器。在步骤240中,性能分析服务器执行任务管理中心所分配的任务。例如,每隔预定时间段(例如每分钟)执行一次性能分析。优选地,任务管理中心通过任务分配模块来向性能分析服务器分配任务。例如,在一个性能分析服务器启动后,首先任务管理模块向任务管理中心注册,注册的信息可以包括性能分析模块的数量和名称;然后任务管理中心将分配给这个性能分析服务器的任务返回给任务管理模块;任务管理模块将所分配的任务写入任务分配文件;性能分析模块每次进行性能分析统计前,读取任务分配文件,确定自己要执行的任务,进行本次性能分析统计。在步骤250中,当一个性能分析服务器宕机时,任务管理中心将宕机的性能分析服务器的任务分配给其他性能分析服务器。例如,当(例如通过存活性监控系统)发现一个性能分析服务器宕机时,任务管理中心将根据算法或者配置文件等选择一个性能分析服务器来执行宕机服务器执行的任务,其中调用该任务分析服务器上部署的任务管理模块分配新任务。当被分配到新任务时,性能分析服务器可以从存储分析结果的存储系统(数据库、nosql数据库等)中找到最后分析结果,根据最后分析结果的时间,继续进行性能统计分析。应指出的是,上面分别对本发明的装置和方法实施例分别进行了描述,但是对一个实施例描述的细节也可应用于另一个实施例。以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本发明的方法和系统的全部或者任何步骤或者部件可以以软件、硬件、固件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。因此,本发明的目的还可以通过在任何计算装置上运行一个软件模块或者一组软件模块来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。虽然本说明书包含许多特定实施方式细节,但是不应当将这些细节解释为对任何发明或可以主张的内容的范围的限制,而应当解释为对可以特定于特定发明的特定实施例的特征的描述。还可以将在本说明书中在分离的实施例的情境中描述的某些特征组合在单个实施例中实现。相反地,也可以将在单个实施方式的情境中描述的各个特征分离地在多个实施方式中实现或在任何适当的子组合中实现。此外,尽管可能在上面将特征描述为在某些组合中起作用,甚至最初主张如此,但是可以在一些情况下将来自所主张的组合的一个或多个特征从组合中删去,并且可以将所主张的组合指向子组合或者子组合的变体。类似地,虽然在附图中以特定次序描绘了操作,但是不应当将这理解为需要以所示的特定次序或者以连续次序执行这样的操作、或者需要执行所有图示的操作才能达到期望的结果。在某些情况下,多任务以及并行处理可以是有利的。此外,不应当将在上述实施例中的各种系统组件的分离理解为在所有实施例中均需要这样的分离,而应当理解的是,通常可以将所描述的程序组件和系统集成到一起成为单个软件产品或封装为多个软件产品O计算机程序(也称作程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言编写,所述编程语言包括编译或解释语言、或者说明性或过程语言,并且其可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或适于在计算环境中使用的其它单元。计算机程序没有必要对应于文件系统中的文件。可以将程序存储在保持其它程序或数据的文件(例如,存储在标记语言文档中的一个或多个脚本)的一部分、专用于讨论中的程序的单个文件或者多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)中。上述具体实施方式
,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
权利要求
1.一种可靠性能监控系统,包括 应用服务器,用于运行被监控应用、将所述被监控应用的性能相关信息记录到性能日志存储模块中、并定时发送所述性能日志存储模块中的日志数据; 日志传输平台,用于接收从所述应用服务器发送的日志数据、并根据性能分析服务器的订阅将所述日志数据发送到至少两个性能分析服务器; 任务管理中心,用于向每个所述性能分析服务器分配需要处理的任务;以及 至少两个性能分析服务器,用于执行所分配的任务,以对所述日志数据进行分析处理,获得性能统计结果。
2.根据权利要求I所述的系统,其中,每个所述性能分析服务器上部署主性能分析模块和辅性能分析模块, 在正常情况下,所述主性能分析模块将执行; 当主性能分析模块所在的服务器宕机时,以及其他原因造成主性能服务模块不能提供服务时,所述辅性能分析模块将被分配所述主性能分析模块承担的所有或一部分任务,同时升级为主性能分析模块。
3.根据权利要求I所述的系统,其中,每个所述性能分析服务器上单独部署任务分配模块,并且所述任务管理中心通过所述任务分配模块来向所述性能分析服务器分配需要处理的任务。
4.根据权利要求I所述的系统,其中,所述任务管理模块向所述任务管理中心注册,所述任务管理中心将分配给部署有所述任务管理模块的性能分析服务器的任务返回给所述任务管理模块,所述任务管理模块将所分配的任务写入任务分配文件,性能分析模块每次进行性能分析统计前,读取所述任务分配文件来确定自己要执行的任务。
5.根据权利要求I所述的系统,其中,当一个所述性能分析服务器宕机时,或者其他原因造成性能分析模块不能提供服务,所述任务管理中心根据算法或者配置文件等选择其他所述性能分析服务器来执行宕机的性能分析服务器所执行的任务。
6.根据权利要求5所述的系统,其中,调用所述其他任务分析服务器上部署的任务管理模块分配新任务。
7.根据权利要求I所述的系统,其中,所述应用服务器包括日志提取代理,用于定时从所述性能日志存储模块中读取增量更新并发送。
8.一种可靠性能监控方法,包括 被监控应用将性能相关信息记录到性能日志存储模块; 所述被监控应用定时将存储在所述性能日志存储模块中的日志数据发送到日志传输平台; 所述日志传输平台根据性能分析服务器的订阅将所述日志数据发送到至少两个性能分析服务器; 每个所述性能分析服务器执行所述任务管理中心所分配的任务;以及 当一个所述性能分析服务器宕机时,以及由于其他原因造成主性能分析模块不能提供服务时,所述任务管理中心将宕机的性能分析模块的任务分配给其他性能分析服务器上的任务分析模块。
9.根据权利要求8所述的方法,其中,所述任务管理中心通过部署在性能分析服务器上的任务分配模块来向性能分析服务器分配任务。
10.根据权利要求9所述的方法,其中,在性能分析服务器启动后,任务管理模块向任务管理中心注册,任务管理中心将分配给这个性能分析服务器的任务返回给任务管理模块,任务管理模块将所分配的任务写入任务分配文件,性能分析模块每次进行性能分析统计前,读取任务分配文件来确定自己要执行的任务。
11.根据权利要求8所述的系统,其中,当一个性能分析服务器宕机时,所述任务管理中心将根据算法或者配置文件选择其他性能分析服务器来执行宕机性能分析服务器执行的任务,其中,接替执行性能分析任务的性能分析模块所在的性能分析服务器上,必须订阅了要分析应用的性能日志。
12.根据权利要求8所述的方法,其中,通过日志提取代理定时从所述性能日志存储模块中读取增量更新并发送。
全文摘要
一种可靠性能监控系统及方法。所述系统包括应用服务器,用于运行被监控应用、将所述被监控应用的性能相关信息记录到性能日志存储模块中、并定时发送所述性能日志存储模块中的日志数据;日志传输平台,用于接收从所述应用服务器发送的日志数据、并根据性能分析服务器的订阅将所述日志数据发送到至少两个性能分析服务器;任务管理中心,用于向每个所述性能分析服务器分配需要处理的任务;以及至少两个性能分析服务器,用于执行所分配的任务,以对所述日志数据进行分析处理,获得性能统计结果。
文档编号G06F11/16GK102981945SQ20121058948
公开日2013年3月20日 申请日期2012年12月31日 优先权日2012年12月31日
发明者张永成, 吕鹏, 哈维, 钟德银, 魏建楠 申请人:北京京东世纪贸易有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1