用于生成监控信息的系统和方法

文档序号:7692524阅读:190来源:国知局
专利名称:用于生成监控信息的系统和方法
技术领域
本发明总体地涉及系统监控领域,更具体地说,本发明涉及用于生成监控信息的系统和方法。
背景技术
随着计算机的广泛应用,企业中需要对许多业务系统进行监控。在对业务系统进行监控的情况下,监控信息的收集是非常重要的环节,收集方法的好坏直接影响到业务系统和监控服务器(或采集服务器)的性能以及对网络环境的影响。在常规的监控系统中,每当业务系统进行业务处理时,都需要直接通知监控服务器,因此大大增加了网络的负荷,这对业务系统的处理和监控服务器都有很大的影响。特别是对监控服务器,它要采集数量非常大的业务系统的监控信息,这需要非常强大的并发处理能力才可以做到。此外,每个业务系统因实际状况的需要对“间隔时间”、“调用次数”、“响应时间”的要求是不一样的,即使是同一业务系统上的同一功能有时在不同时段的监控要求也是不同的,例如白天忙、晚上空闲。如果监控系统依据每个业务系统进行定制采集,则需要将定制信息传输到采集端进行逻辑分析以形成固定间隔时间的监控数据并存储,则会有下面的问题(1)采集端逻辑较复杂,效率低下,较为占用CPU运算资源;( 因为时间间隔标准不统一以及非监控时间段的数据丢弃,使得对汇总分析工具的开发制造了巨大困难,难以开发; (3)需要大量的人工配制和维护工作。

发明内容
为了解决现有技术中的上述缺点和问题而提出本发明。根据本发明的一个方面,提供了一种用于生成监控信息的方法,包括每当业务服务器上的业务模块执行业务处理方法时,向所述业务服务器上的监控采集模块发送业务监控数据;由所述监控采集模块对所述业务监控数据进行分析;在不存在与所述业务监控数据相对应的心跳信息数据的情况下,生成心跳信息数据;在不存在与所述业务监控数据相对应的监控点信息数据的情况下,生成监控点信息数据;在存在与所述业务监控数据相对应的监控点信息数据的情况下,更新监控点信息数据;当达到预定时间间隔时,基于所述心跳信息数据和所述监控点信息数据生成监控信息;以及将所生成的监控信息发送到监控服务器。基于所述心跳信息数据和所述监控点信息数据生成监控信息可以包括当达到所述预定时间间隔时,如果调用次数信息为零,则不生成所述监控信息。所生成的监控信息可以包括监控点信息、调用次数信息。所生成的监控信息可以进一步包括响应次数和响应时间信息。该方法可以进一步包括在将所生成的监控信息发送到所述监控服务器之后,将所述监控点信息数据清零。根据本发明的另一方面,提供了一种用于生成监控信息的系统,包括业务服务器,所述业务服务器包括业务模块,所述业务模块执行业务处理方法;和监控采集模块,监控服务器,其中,所述业务模块被配置为每当执行业务处理方法时,向所述监控采集模块发送业务监控数据,其中,所述监控采集模块被配置为对所述业务监控数据进行分析,在不存在与所述业务监控数据相对应的心跳信息数据的情况下,生成心跳信息数据;在不存在与所述业务监控数据相对应的监控点信息数据的情况下,生成监控点信息数据;在存在与所述业务监控数据相对应的监控点信息数据的情况下,更新监控点信息数据;以及其中,所述监控采集模块进一步被配置为当达到预定时间间隔时,基于所述心跳信息数据和所述监控点信息数据生成监控信息,并且将所生成的监控信息发送到所述监控服务器。所述监控采集模块可以进一步被配置为当达到所述预定时间间隔时,如果调用次数信息为零,则不生成所述监控信息。所生成的监控信息可以包括监控点信息、调用次数信息。所生成的监控信息可以进一步包括响应次数和响应时间信息。所述监控采集模块可以进一步被配置为在将所生成的监控信息发送到监控服务器之后,将所述监控点信息数据清零。


通过下面结合附图进行的描述,本发明一些示范性实施例的上述和其他方面、特征和优点对于本领域技术人员来说将变得显而易见,其中图1是示出根据本发明一个示范性实施例的系统的框图;图2是示出根据本发明一个示范性实施例的监控点接入的示意图;图3是示出根据本发明一个示范性实施例的监控点信息数据的缓存结构的示意图;图4是示出根据本发明一个示范性实施例的监控信息的数据结构的示意图;图5是示出根据本发明一个示范性实施例的生成心跳信息数据和监控点信息数据的方法的流程图;以及图6是示出根据本发明一个示范性实施例的生成监控信息的方法的流程图。
具体实施例方式提供参考附图的下面描述以帮助全面理解本发明的示范性实施例。其包括各种细节以助于理解,而应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,省略了对公知功能和结构的描述。下面将参考附图详细描述本发明。图1是示出根据本发明一个示范性实施例的系统的框图。该系统包括业务服务器 110和监控服务器140。业务服务器110上运行有业务模块120。如本领域技术人员所了解的,根据实际需要,业务模块120可以执行各种业务处理功能或业务处理方法。虽然在图1中仅示出了一个业务模块120,但是应理解的是,业务服务器110可包括两个或两个以上的业务模块。
业务服务器110上还运行有监控采集模块130,其用于采集业务监控数据并且生成监控信息。每当业务模块120执行业务处理功能时,其向监控采集模块130发送业务监控数据。在接收到来自业务模块120的业务监控数据后,监控采集模块130对业务监控数据进行分析。根据分析,监控采集模块130生成心跳信息数据、监控点信息数据、或更新监控点信息数据等。当达到预定的时间段后,监控采集模块130生成监控信息,并且将所生成的监控信息发送到监控服务器140。为了便于描述的目的,将以下面的示例进行描述业务服务器110所在的机器名称为TOBl,业务模块120的名称为JD. User,业务模块120可以执行的业务处理功能包括 Login方法和Ge^ser方法。业务模块120向监控采集模块130发送的业务监控数据可以采用适当的格式,以标识业务模块的名称和所执行的业务处理方法的名称。例如,在上面的示例中,当业务模块 120执行业务处理方法Login时,业务模块120向监控采集模块130发送的业务监控数据可以包括字符串“JD. User. Login”。在接收到例如包括字符串“JD. User. Login”的业务监控数据后,监控采集模块130从该业务监控数据提取业务模块名称“ JD. her”和监控点名称 "JD. User. Login”。然后,监控采集模块判断是否存在与所述业务监控数据相对应的心跳信息数据,例如是否存在名称为“JD. her”的心跳信息数据。在不存在与所述业务监控数据相对应(例如名称为“JD. User”)的心跳信息数据的情况下,建立与所述业务监控数据相对应 (例如名称为“JD. User”)的心跳信息数据。然后,监控采集模块130判断是否存在与所述业务监控数据相对应的监控点信息数据,例如是否存在名称为“ JD. User. Login”的监控点信息数据。在不存在与所述业务监控数据相对应(例如名称为“JD. User. Login”)的监控点信息数据的情况下,建立与所述业务监控数据相对应(例如名称为“JD. User. Login”)的监控点信息数据;而在存在与所述业务监控数据相对应(例如名称为“ JD. User. Login”)的监控点信息数据的情况下,更新与所述业务监控数据相对应(例如名称为“JD. User. Login”) 的监控点信息数据,例如可以递增调用次数信息。当达到预定的时间间隔时,例如当达到预先设定的1分钟时,监控采集模块130判断调用次数信息是否为零。在调用次数信息不为零的情况下,监控采集模块130根据心跳信息数据和监控点信息数据生成监控信息,并且将所生成的监控信息发送到监控服务器140。而如果调用次数信息为零,则监控采集模块 130不生成监控信息。当达到预定的时间间隔后,无论是否生成监控信息,监控采集模块130均可以重置缓存的监控点信息数据,例如可以将监控点信息数据清零等。从而,监控采集模块130可以开始下一个预定的时间间隔的监控信息的生成。在上面描述的示例中,仅仅采集了关于监控点名称、调用次数、间隔时间的信息。 然而,根据需要也可以采用关于任意其它方面的信息。例如,很多情况下,希望监控信息包括响应次数和响应时间信息。在希望监控信息包括响应次数和响应时间信息的情况下,可以在开始执行业务处理方法时和结束业务处理方法时各记录一下时间,然后两个记录值的差值即为响应时间。 如果将所有的响应时间都进行记录会存在下述问题(1)对于高并发的业务来讲,数据量是非常大的;( 大量的数据传输会对业务系统产生额外的性能开支;C3)大量业务的数据传输会使整个网络环境承压很大。为了克服上述问题,本发明采用了以下的方式在每当业务模块120结束业务处理方法时,向监控采集模块130发送业务监控数据,从而监控采集模块130可以采集响应时间信息。例如,当业务模块120执行业务处理方法Login结束时,业务模块120向监控采集模块130发送的业务监控数据可以包括字符串“JD. User. Login ;end",当然本发明不限于上述的业务监控数据格式。监控采集模块130可以将在开始执行业务处理方法时的时间和结束业务处理方法时的时间的差值作为响应时间,并且通过将响应次数信息递增。由此,可以通过所缓存的响应次数和响应时间信息来计算平均响应时间信息。例如,当达到1分钟的预定时间间隔时,响应次数为100次,总响应时间为1秒,则可以计算出平均响应时间信息=100/1 秒=0. 01 秒。如本领域技术人员将理解的,可以对上面的示例进行各种改变。例如,发送的业务监控数据的格式可以根据需要进行变化,而且监控采集模块130可以根据所接收的业务监控数据的格式而采用适当的分析手段。图2是示出根据本发明一个示范性实施例的监控点接入的示意图。如图2中所示, 每当业务模块120开始或结束执行业务处理方法时,业务模块120会直接调用监控接口,从而向监控采集模块130发送业务监控数据。该接入方式,对业务系统的侵入性强,并且耦合紧密。如本领域技术人员所理解的,监控接入方式不限于上述的直接接入方式,也可以采用其它的接入方式,例如可以使用AOP(面向方面)技术将对监控采集模块的调用注入。图3是示出根据本发明一个示范性实施例的监控点信息数据的缓存结构的示意图。如图3中所示,在监控点信息数据的缓存结构中,包括字段key,其为监控点信息(例如包括业务模块的名称和业务处理方法的名称);字段ResponseCoimt,其为预定的时间间隔内的响应时间采集数量(即响应次数信息);字段TotalResponse,其为预定的时间间隔内的响应时间的总长(即响应时间信息);以及属性Amount,其为预定的时间间隔内的业务调用计数(即调用次数信息)。明显地,该监控点信息数据的缓存结构仅仅是示例性的,本发明中的监控点信息数据的缓存结构不限于该结构。图4是示出根据本发明一个示范性实施例的监控信息的数据结构的示意图。如图4中所示,在监控信息的数据结构中,包括字段key,其为监控点信息(例如包括业务模块的名称和业务处理方法的名称);字gkrver,其为监控点所在的服务器的名称;字段 Count,其为预定的时间间隔内的业务调用计数(即调用次数信息);字段ResponseCoimt, 其为预定的时间间隔内的响应时间采集数量(即响应次数信息);以及字段ResponseTime, 其为预定的时间间隔内的响应时间(即响应时间信息)。图5是示出根据本发明一个示范性实施例的生成心跳信息数据和监控点信息数据的方法的流程图。如图5中所示,该方法以在步骤SlO中由监控采集模块接收来自业务模块的业务监控数据开始。如上面参考图1的业务模块120所描述的,每当业务模块120执行业务处理功能时,其向监控采集模块130发送以适当格式的业务监控数据。由此,监控采集模块130 接收到来自业务模块120的业务监控数据。在步骤S20中,监控采集模块对所接收到的业务监控数据进行分析。在步骤S30中,监控采集模块判断是否存在对应的心跳信息数据。如果判断不存在对应的心跳信息数据,则在步骤S40中生成对应的心跳信息数据。接着,在步骤S50中,判断是否存在对应的监控点信息数据。如果不存在对应的监控点信息数据,则在步骤S60中生成对应的监控点信息数据。所生成的监控点信息可以以参考图3所描述的格式。本领域技术人员将容易地理解,所生成的监控点信息可以根据需要而采用任何适当的格式,例如,可以包括比图3更多的字段(或属性)或更少的字段(或属性)。另一方面,如果存在对应的监控点信息数据,则在步骤S70中更新对应的监控点信息数据。虽然在图5中示为当在步骤S30中判断不存在对应的心跳信息数据时,在生成心跳信息数据之后进行到步骤S50判断是否存在对应的监控点信息数据。然而,事实上,由于当不存在对应的心跳信息数据时,也不存在对应的监控点信息数据,所以在步骤S40中生成心跳信息数据之后可以直接进行到步骤S60,而不用经过步骤S50来判断是否存在对应的监控点信息数据。由于上面已经参照图1详细描述了如何接收业务监控数据、对业务监控数据进行分析、生成心跳信息数据、以及生成或更新监控点信息数据,所以在此不再详细描述步骤 S10-S70。图6是示出根据本发明一个示范性实施例的生成监控信息的方法的流程图。如图6中所示,该方法开始于步骤SlO判断是否达到预定的时间间隔。如果在步骤SlO中判断已达到预定的时间间隔,则在步骤S20中判断是否存在业务心跳数据。另一方面,当在步骤SlO中判断没有达到预定的时间间隔,则继续等待。如果在步骤S20中判断调用次数信息不为零,在步骤S30中根据监控点信息数据,生成监控信息。然后,在步骤S40 中重置缓存的监控点信息数据,例如可以将监控点信息数据清零等。在步骤S50中,将所生成的监控信息发送到监控服务器。所生成的监控信息可以以参考图4所描述的格式。本领域技术人员将容易地理解,所生成的监控信息可以根据需要而采用任何适当的格式,例如, 可以包括比图4更多的字段(或属性)或更少的字段(或属性)。另一方面,如果在步骤 S20中判断调用次数信息为零,表明在该时段没有执行业务处理方法并且没有生成监控点信息数据,因而不需要生成监控信息,并且开始下一个预定的时间间隔的监控信息的生成。 虽然在图6中描述为在将所生成的监控信息发送到监控服务器之前重置缓存的监控点信息数据,但是也可以在将所生成的监控信息发送到监控服务器之后重置缓存的监控点信息数据。此外,在步骤S20中,可以替代地判断调用次数信息和响应次数信息均为零。根据本发明生成的监控信息包括心跳信息数据和监控点信息数据,其中心跳信息数据可以用于实时确定系统和业务的状态,而监控点信息数据可以用于对业务的历史状态进行分析。应指出的是,上面分别对本发明的系统和方法实施例分别进行了描述,但是对一个实施例描述的细节也可应用于另一个实施例。例如,参考系统实施例描述的细节也可以应用于方法实施例。以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本发明的方法和系统的全部或者任何步骤或者部件可以以软件、硬件、固件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。因此,本发明的目的还可以通过在任何计算装置上运行一个软件模块或者一组软件模块来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。虽然本说明书包含许多特定实施方式细节,但是不应当将这些细节解释为对任何发明或可以主张的内容的范围的限制,而应当解释为对可以特定于特定发明的特定实施例的特征的描述。还可以将在本说明书中在分离的实施例的情境中描述的某些特征组合在单个实施例中实现。相反地,也可以将在单个实施方式的情境中描述的各个特征分离地在多个实施方式中实现或在任何适当的子组合中实现。此外,尽管可能在上面将特征描述为在某些组合中起作用,甚至最初主张如此,但是可以在一些情况下将来自所主张的组合的一个或多个特征从组合中删去,并且可以将所主张的组合指向子组合或者子组合的变体。类似地,虽然在附图中以特定次序描绘了操作,但是不应当将这理解为需要以所示的特定次序或者以连续次序执行这样的操作、或者需要执行所有图示的操作才能达到期望的结果。在某些情况下,多任务以及并行处理可以是有利的。此外,不应当将在上述实施例中的各种系统组件的分离理解为在所有实施例中均需要这样的分离,而应当理解的是, 通常可以将所描述的程序组件和系统集成到一起成为单个软件产品或封装为多个软件产
P
ΡΠ O计算机程序(也称作程序、软件、软件应用、脚本或代码)可以以任何形式的编程语言编写,所述编程语言包括编译或解释语言、或者说明性或过程语言,并且其可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或适于在计算环境中使用的其它单元。计算机程序没有必要对应于文件系统中的文件。可以将程序存储在保持其它程序或数据的文件(例如,存储在标记语言文档中的一个或多个脚本)的一部分、专用于讨论中的程序的单个文件或者多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件) 中。上述具体实施方式
,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
权利要求
1.一种用于生成监控信息的方法,包括每当业务服务器上的业务模块执行业务处理方法时,向所述业务服务器上的监控采集模块发送业务监控数据;由所述监控采集模块对所述业务监控数据进行分析;在不存在与所述业务监控数据相对应的心跳信息数据的情况下,生成心跳信息数据; 在不存在与所述业务监控数据相对应的监控点信息数据的情况下,生成监控点信息数据;在存在与所述业务监控数据相对应的监控点信息数据的情况下,更新监控点信息数据;当达到预定时间间隔时,基于所述心跳信息数据和所述监控点信息数据生成监控信息;以及将所生成的监控信息发送到监控服务器。
2.根据权利要求1所述的方法,其中,所生成的监控信息包括监控点信息、调用次数信信息。
3.根据权利要求2所述的方法,其中,所生成的监控信息进一步包括响应次数和响应时间信息。
4.根据权利要求2所述的方法,其中,基于所述心跳信息数据和所述监控点信息数据生成监控信息包括当达到所述预定时间间隔时,如果所述调用次数信息为零,则不生成所述监控信息。
5.根据权利要求1所述的方法,其中,在将所生成的监控信息发送到所述监控服务器之后,将所述监控点信息数据清零。
6.一种用于生成监控信息的系统,包括 业务服务器,所述业务服务器包括业务模块,所述业务模块执行业务处理方法;和监控采集模块, 监控服务器,其中,所述业务模块被配置为每当执行业务处理方法时,向所述监控采集模块发送业务监控数据,其中,所述监控采集模块被配置为对所述业务监控数据进行分析,在不存在与所述业务监控数据相对应的心跳信息数据的情况下,生成心跳信息数据;在不存在与所述业务监控数据相对应的监控点信息数据的情况下,生成监控点信息数据;在存在与所述业务监控数据相对应的监控点信息数据的情况下,更新监控点信息数据;以及其中,所述监控采集模块进一步被配置为当达到预定时间间隔时,基于所述心跳信息数据和所述监控点信息数据生成监控信息,并且将所生成的监控信息发送到所述监控服务ο
7.根据权利要求6所述的系统,其中,所生成的监控信息包括监控点信息、调用次数信信息。
8.根据权利要求7所述的系统,其中,所生成的监控信息进一步包括响应次数和响应时间信息。
9.根据权利要求7所述的系统,其中,所述监控采集模块进一步被配置为当达到所述预定时间间隔时,如果所述调用次数信息为零,则不生成所述监控信息。
10.根据权利要求6所述的方法,其中,所述监控采集模块进一步被配置为在将所生成的监控信息发送到监控服务器之后,将所述监控点信息数据清零。
全文摘要
本发明提供了一种用于生成监控信息的系统和方法。所述方法包括每当业务服务器上的业务模块执行业务处理方法时,向所述业务服务器上的监控采集模块发送业务监控数据;由所述监控采集模块对所述业务监控数据进行分析;在不存在与所述业务监控数据相对应的心跳信息数据的情况下,生成心跳信息数据;在不存在与所述业务监控数据相对应的监控点信息数据的情况下,生成监控点信息数据;在存在与所述业务监控数据相对应的监控点信息数据的情况下,更新监控点信息数据;当达到预定时间间隔时,基于所述心跳信息数据和所述监控点信息数据生成监控信息;以及将所生成的监控信息发送到监控服务器。
文档编号H04L12/26GK102307116SQ20111015808
公开日2012年1月4日 申请日期2011年5月31日 优先权日2011年5月31日
发明者李学斌 申请人:北京京东世纪贸易有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1