一种分布式集群性能监控系统及方法与流程

文档序号:14249312阅读:235来源:国知局
一种分布式集群性能监控系统及方法与流程

本发明涉及计算机应用技术领域,特别是涉及一种分布式集群性能监控系统及方法。



背景技术:

随着计算机技术的快速发展,各种业务不断扩展,业务架构逐渐由集中式向分布式演进,分布式集群的应用越来越广泛。

分布式集群可以由多个节点构成,每个节点可以部署多个服务组件,服务组件为一个提供特定服务的逻辑单元。在分布式集群中,一个业务请求的完整调用过程可能横跨多个服务组件,而各个服务组件相互独立,整个调用关系变得复杂,使得高效定位错误异常根因和找出性能瓶颈变得越来越困难。

所以,如何有效地解决对分布式集群性能进行监控等问题,是目前本领域技术人员急需解决的技术问题。



技术实现要素:

本发明的目的是提供一种分布式集群性能监控系统及方法,以对分布式集群性能进行有效监控,及时进行问题排查和系统优化。

为解决上述技术问题,本发明提供如下技术方案:

一种分布式集群性能监控系统,包括监控模块和多个中间件模块,所述监控模块部署于分布式集群中,每个中间件模块分别部署于所述分布式集群的每个节点的每个服务组件中;其中,

每个中间件模块,用于在有业务请求经过相应服务组件时,生成业务请求的跟踪信息,基于业务请求携带的全局标识,将业务请求的跟踪信息存入日志文件中;

所述监控模块,用于基于所述日志文件中的业务请求的跟踪信息,生成每个业务请求的调用链。

在本发明的一种具体实施方式中,还包括多个日志模块,每个日志模块分别部署于所述分布式集群的每个节点中;

每个日志模块,用于对所述日志文件中相应节点的每个服务组件对应的业务请求的跟踪信息进行统计处理,将处理后的业务请求的跟踪信息上报给所述监控模块;

所述监控模块,具体用于接收每个日志模块上报的业务请求的跟踪信息。

在本发明的一种具体实施方式中,所述跟踪信息至少包括时间信息、调用模块信息、被调用模块信息。

在本发明的一种具体实施方式中,

所述监控模块,具体用于针对每个业务请求,基于该业务请求的跟踪信息,按照时间先后顺序生成该业务请求的调用链。

在本发明的一种具体实施方式中,

所述监控模块,还用于对每个业务请求的调用链进行分析,生成并输出相应的分析结果。

在本发明的一种具体实施方式中,

所述监控模块,还用于将每个业务请求的调用链和相应的分析结果进行持久化存储。

一种分布式集群性能监控方法,应用于监控模块,所述监控模块部署于分布式集群中,所述方法包括:

获得日志文件中的业务请求的跟踪信息;

基于所述日志文件中的业务请求的跟踪信息,生成每个业务请求的调用链;

其中,所述日志文件中的每个业务请求的跟踪信息为:相应的中间件模块在有业务请求经过相应服务组件时,生成的相应业务请求的跟踪信息,并基于业务请求携带的全局标识,存入所述日志文件中,每个中间件模块分别部署于所述分布式集群的每个节点的每个服务组件中。

在本发明的一种具体实施方式中,所述获得日志文件中的业务请求的跟踪信息,包括:

接收每个日志模块上报的业务请求的跟踪信息;

其中,每个日志模块用于对日志文件中相应节点的每个服务组件对应的业务请求的跟踪信息进行统计处理,将处理后的业务请求的跟踪信息上报给所述监控模块,每个日志模块分别部署于所述分布式集群的每个节点中。

在本发明的一种具体实施方式中,所述基于所述日志文件中的业务请求的跟踪信息,生成每个业务请求的调用链,包括:

针对每个业务请求,基于该业务请求的跟踪信息,按照时间先后顺序生成该业务请求的调用链。

在本发明的一种具体实施方式中,还包括:

对每个业务请求的调用链进行分析,生成并输出相应的分析结果。

应用本发明实施例所提供的技术方案,部署于分布式集群的每个节点的每个服务组件中的中间件模块,在有业务请求经过相应服务组件时,可以生成业务请求的跟踪信息,基于业务请求携带的全局标识,将业务请求的跟踪信息存入日志文件中,部署于分布式集群中的监控模块可以基于日志文件中的业务请求的跟踪信息,生成每个业务请求的调用链。通过生成每个业务请求的调用链,对其进行分析,可以对分布式集群性能进行有效监控,及时进行问题排查或系统优化。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例中分布式集群性能监控系统的一种结构示意图;

图2为本发明实施例中分布式集群性能监控系统的另一种结构示意图;

图3为本发明实施例中一种分布式集群性能监控方法的实施流程图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参见图1所示,为本发明实施例所提供的一种分布式集群性能监控系统的结构示意图,该系统包括监控模块110和多个中间件模块120,监控模块110部署于分布式集群中,每个中间件模块120分别部署于分布式集群的每个节点的每个服务组件中;

其中,每个中间件模块120,用于在有业务请求经过相应服务组件时,生成业务请求的跟踪信息,基于业务请求携带的全局标识,将业务请求的跟踪信息存入日志文件中;

监控模块110,用于基于日志文件中的业务请求的跟踪信息,生成每个业务请求的调用链。

本发明实施例所提供的分布式集群性能监控系统包括监控模块110和多个中间件模块120。分布式集群由多个节点构成,每个节点可以部署多个服务组件,服务组件为一个提供特定服务的逻辑单元。在本发明实施例中,分布式集群中部署有监控模块110,每个节点的每个服务组件中部署有中间件模块120。

分布式集群通过各服务组件为用户提供相应服务。针对每个中间件模块120,在该中间件模块120监测到有业务请求经过相应服务组件时,生成业务组件的跟踪信息。跟踪信息至少包括时间信息、调用模块信息、被调用模块信息。具体的,时间信息可以包括业务请求的接收时间信息、应用耗时信息等。调用模块为调用当前服务组件的模块,即该业务请求是从哪个服务组件发送过来的,被调用模块为当前服务组件要调用的模块,即要将该业务请求发送给哪个服务组件。跟踪信息还可以包括当前服务组件的系统信息等。

每个中间件模块120都可以对经过所在的相应服务组件的业务请求进行监测,在监测到有业务请求经过时,生成业务请求的跟踪信息。

在本发明实施例中,每个业务请求可以携带一个全局标识。每个中间件模块120在生成业务请求的跟踪信息后,可以基于业务请求携带的全局标识,将业务请求的跟踪信息存入日志文件中。即日志文件中存储有多个业务请求,每个业务请求具有唯一全局标识,每个业务请求的全局标识与跟踪信息相对应。

在实际应用中,分布式集群可以维护一个日志文件,每个中间件模块120可以对日志文件进行写入操作,监控模块110可以对日志文件进行读取操作。或者,分布式集群的每个节点维护一个日志文件,每个节点对应的服务组件中的中间件模块120可以对相应节点中的日志文件进行写入操作,监控模块110可以对所有日志文件进行读取操作。

监控模块110可以基于日志文件中的业务请求的跟踪信息,生成每个业务请求的调用链。

具体的,监控模块110可以针对每个业务请求,基于该业务请求的跟踪信息,按照时间先后顺序生成该业务请求的调用链。

每个业务请求的跟踪信息包含时间信息、调用模块信息、被调用模块信息,基于此,可以对每个业务请求的跟踪信息进行统计,按照时间先后顺序生成每个业务请求的调用链。

如,生成的某个业务请求的调用链为:服务组件a(时间1)→服务组件c(时间2)→服务组件m(时间3),表明,该业务请求在时间1经过服务组件1,在时间2经过服务组件c,在时间3经过服务组件m。

应用本发明实施例所提供的系统,部署于分布式集群的每个节点的每个服务组件中的中间件模块,在有业务请求经过相应服务组件时,可以生成业务请求的跟踪信息,基于业务请求携带的全局标识,将业务请求的跟踪信息存入日志文件中,部署于分布式集群中的监控模块可以基于日志文件中的业务请求的跟踪信息,生成每个业务请求的调用链。通过生成每个业务请求的调用链,对其进行分析,可以对分布式集群性能进行有效监控,及时进行问题排查或系统优化。

在本发明的一个实施例中,如图2所示,该系统还可以包括多个日志模块130,每个日志模块130分别部署于分布式集群的每个节点中;

每个日志模块130,用于对日志文件中相应节点的每个服务组件对应的业务请求的跟踪信息进行统计处理,将处理后的业务请求的跟踪信息上报给监控模块110;

监控模块110,具体用于接收每个日志模块130上报的业务请求的跟踪信息。

在本发明实施例中,分布式集群的每个节点中可部署日志模块130。每个日志模块130可以对日志文件中相应节点的每个服务组件对应的业务请求的跟踪信息进行统计处理,如统计经过相应节点的每个服务组件的每个业务请求的时间、调用模块、被调用模块等。将处理后的业务请求的跟踪信息上报给监控模块110。

监控模块110接收每个日志模块130上报的业务请求的跟踪信息。先由日志模块130对相应节点的每个服务组件对应的业务请求的跟踪信息进行统计处理,再由监控模块110对业务请求的跟踪信息进行进一步分析,生成调用链,可以节省监控模块110的处理时间,减轻监控模块110的处理压力。

在本发明的一个实施例中,监控模块110还用于对每个业务请求的调用链进行分析,生成并输出相应的分析结果。

针对每个业务请求,监控模块110生成该业务请求的调用链后,可以对该业务请求的调用链进行分析,生成并输出相应的分析结果。具体的,可以基于该业务请求的调用链,进行异常定位、耗时分析等。生成并输出的分析结果可以是报表类监控结果。

在本发明的一个实施例中,监控模块110还可以用于将每个业务请求的调用链和相应的分析结果进行持久化存储。以便在后续进行问题排查或系统优化时提供依据。

相应于上面的系统实施例,本发明实施例还提供了一种分布式集群性能监控方法,应用于监控模块,监控模块部署于分布式集群中,下文描述的一种分布式集群性能监控方法与上文描述的一种分布式集群性能监控系统可相互对应参照。

参见图3所示,该方法可以包括以下步骤:

s310:获得日志文件中的业务请求的跟踪信息;

s320:基于日志文件中的业务请求的跟踪信息,生成每个业务请求的调用链;

其中,日志文件中的每个业务请求的跟踪信息为:相应的中间件模块在有业务请求经过相应服务组件时,生成的相应业务请求的跟踪信息,并基于业务请求携带的全局标识,存入日志文件中,每个中间件模块分别部署于分布式集群的每个节点的每个服务组件中。

应用本发明实施例所提供的方法,部署于分布式集群的每个节点的每个服务组件中的中间件模块,在有业务请求经过相应服务组件时,可以生成业务请求的跟踪信息,基于业务请求携带的全局标识,将业务请求的跟踪信息存入日志文件中,部署于分布式集群中的监控模块可以基于日志文件中的业务请求的跟踪信息,生成每个业务请求的调用链。通过生成每个业务请求的调用链,对其进行分析,可以对分布式集群性能进行有效监控,及时进行问题排查或系统优化。

在本发明的一种具体实施方式中,步骤s310获得日志文件中的业务请求的跟踪信息,包括:

接收每个日志模块上报的业务请求的跟踪信息;

其中,每个日志模块用于对日志文件中相应节点的每个服务组件对应的业务请求的跟踪信息进行统计处理,将处理后的业务请求的跟踪信息上报给监控模块,每个日志模块分别部署于分布式集群的每个节点中。

在本发明的一种具体实施方式中,步骤s320基于日志文件中的业务请求的跟踪信息,生成每个业务请求的调用链,包括:

针对每个业务请求,基于该业务请求的跟踪信息,按照时间先后顺序生成该业务请求的调用链。

在本发明的一种具体实施方式中,还包括:

对每个业务请求的调用链进行分析,生成并输出相应的分析结果。

在本发明的一种具体实施方式中,还包括:

将每个业务请求的调用链和相应的分析结果进行持久化存储。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的方法而言,由于其与实施例公开的系统相对应,所以描述的比较简单,相关之处参见系统部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1