CN101425934A - 一种服务监控方法及系统 - Google Patents
一种服务监控方法及系统 Download PDFInfo
- Publication number
- CN101425934A CN101425934A CNA2007101242135A CN200710124213A CN101425934A CN 101425934 A CN101425934 A CN 101425934A CN A2007101242135 A CNA2007101242135 A CN A2007101242135A CN 200710124213 A CN200710124213 A CN 200710124213A CN 101425934 A CN101425934 A CN 101425934A
- Authority
- CN
- China
- Prior art keywords
- monitoring
- strategies
- interception
- monitoring strategies
- content
- 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.)
- Pending
Links
Images
Abstract
本发明适用于软件服务监控领域,提供了一种服务监控方法及系统,所述方法包括下述步骤:从记录的当前生效的监控策略信息中查找被监控的方法所对应的监控策略;根据查找到的监控策略对所述方法执行监控拦截。本发明将服务和监控分离,可以对监控进行灵活配置,从而实现了监控的动态修改、动态删除和动态增加,通过通用服务拦截器和施加在其上的监控策略,可以达到多种服务监控需求的即时满足,节约服务监控成本。
Description
技术领域
本发明属于软件服务监控领域,尤其涉及一种服务监控方法及系统。
背景技术
服务监控是对提供一定功能的对外接口层面进行监控,监控的具体内容包括接口性能、接口参数信息跟踪、接口调用对应业务语义的统计等,是一种系统微观层面的监控。服务监控的结果可以通过控制台输出,也可以写到日志文件,或者持久化(Persistence)到数据库,供系统对业务执行情况进行在线分析和离线分析。
利用面向方面编程技术(Aspect-Oriented Programming,AOP),可以对于每个服务配置不同的拦截器(Interceptor),用于在某个方法被访问之前进行拦截,然后在其之前或之后加入某些操作,使得实现代码和服务调用执行代码的分离。对不同的服务配置不同的拦截器,可以重用某个方面的拦截器代码。但拦截器配置完成,系统启动后不能动态调整,例如不能定义在某个时段不执行拦截,或者删除拦截,或者定期拦截。同时,对服务监控的结果固化在拦截器代码中,不能动态修改,难以灵活响应客户需求的变化。
发明内容
本发明实施例的目的在于提供一种服务监控方法,旨在解决现有服务监控中拦截器的配置不能动态调整,难以灵活响应客户需求的变化的问题。
本发明实施例是这样实现的,一种服务监控方法,所述方法包括下述步骤:
从记录的当前生效的监控策略信息中查找被监控的方法所对应的监控策略;
根据查找到的监控策略对所述方法执行监控拦截。
本发明实施例的另一目的在于提供一种服务监控系统,所述系统包括:
监控策略执行集,用于记录当前生效的监控策略信息;以及
通用服务拦截器,用于从所述监控策略执行集记录的当前生效的监控策略信息中查找被监控的方法所对应的监控策略,根据查找到的监控策略对所述方法执行监控拦截。
本发明实施例将服务和监控分离,可以对监控进行灵活配置,从而实现了监控的动态修改、动态删除和动态增加,通过通用服务拦截器和施加在其上的监控策略,可以达到多种服务监控需求的即时满足,节约服务监控成本。
附图说明
图1是本发明实施例提供的对监控策略进行配置的示意图;
图2是本发明实施例提供的服务监控系统的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例通过配置通用服务拦截器以及可定义、可扩展的监控策略实现了服务和监控的解耦,能够即时满足多种服务监控需求,节约服务监控成本。
在本发明实施例中,如图1所示,对于监控策略,可以在业务控制台定义并检查测试,然后下发校验合法通过的监控策略到后台系统的监控策略定义集,并可以对监控策略定义集中的监控策略进行保存、删除或者修改等。如果需要立即生效,只需要将策略通过业务控制台下发到监控策略执行集。如果要使正在执行的监控策略失效,则将监控策略从监控策略执行集中放回至监控策略定义集,达到了监控策略可定义可插拔的效果。同时,可以将周期性的、长期的监控策略等持久化,例如写入数据库或者文件中,以便系统重启后加载。
在本发明实施例中,也可以将监控策略与定时任务结合,由定时任务周期性下发监控策略到监控策略执行集中。对于监控策略执行集而言,由于监控的开始时间和结束时间的约束,失效的监控策略会自动从监控策略执行集中清除。因此,如果监控策略有灵活的表达,解释执行监控策略就可以替代很多不必要的拦截器代码的编写和配置。
在本发明实施例中,定义的监控策略包括:
监控策略标识(policyID),需要全局唯一,例如以serviceID_methodName_序号表示;
方法的标识,例如方法签名(methodSignature),包含类路径及方法参数,能唯一表示类中的不同方法;
监控开始时间(monitorBeginTime),如果配置了监控的开始时间就不需要配置监控时间段;
监控结束时间(monitorEndTime),如果配置了监控的结束时间就不需要配置监控时间段;
监控时间段(monitorPeriod),可以以分钟为单位,如果没有设置监控开始时间和监控结束时间,则在执行此监控时采用当前时间作为监控的开始时间,加上时长得到监控结束时间;
监控的判定条件(if),支持eos、groovy、jruby、python等脚本语言,例如<if script="eos"test="$result==true"/>表示当返回值为true时条件成立;
监控输出(monitorOutput),包括监控内容的输出位置(direction)和监控内容(content)。
监控内容的输出位置可以是数据库(database)、日志(log)或者控制台(console),可以配置默认输出位置,例如数据库。
监控内容包括被监控的方法的标识,例如方法签名(methodSignature)、被监控的方法的耗费时间(costTime)、被监控的方法的调用起始时间(beginTime)、被监控的方法的调用完成时间(endTime)、按业务上下文得
到特定要求下的记录的特定的监控内容,例如调用成功返回成功的记录内容,
如<if script="eos"test="${result}==true"then="success"else="failure"/>。
为了更好地说明监控策略的配置和定义,一个监控策略定义文件示例如下:
<?xml version="1.0"encoding="UTF-8"?>
<MonitorPolicys
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<!--每次监控120分钟-->
<MonitorPolicy>
<methodSignature>com.huawei.bme.test#getNodeName(java.lang.String)</method
Signature><policyID>test_getNodeName_1</policyID>
<monitorPeriod>120</monitorPeriod>
<!--单位:分钟-->
</MonitorPolicy>
<!--指定未来某个时间段监控-->
<MonitorPolicy>
<methodSignature>com.huawei.bme.test#getNodeName3(java.lang.String)</metho
dSignature>
<policyID>test_getNodeName_3</policyID>
<monitorBeginTime>2007-10-10 00:00:00</monitorBeginTime>
<monitorEndTime>2007-10-11 00:00:00</monitorEndTime>
</MonitorPolicy>
<!--一直监控,默认监控输出到数据库,监控内容:方法的标识,例如方法签名,方法调用耗时,调用开始时间,调用结束时间-->
<MonitorPolicy>
<methodSignature>com.huawei.bme.test#getNodeName4(java.lang.String)</metho
dSignature>
<policyID>test_getNodeName_4</policyID>
</MonitorPolicy>
<!--按条件监控,若符合则监控120分钟,并按条件输出-->
<MonitorPolicy>
<methodSignature>com.huawei.bme.test#getNodeName5(java.lang.String)</metho
dSignature>
<policyID>test_getNodeName_5</policyID>
<monitorPeriod>120</monitorPeriod>
<condition><!--按指定的EOS脚本执行如果test条件为true则监控-->
<if script="eos"test="${controlui.biz.bizGetResult}"/>
</condition>
<!--定义监控的输出-->
<monitorOutput>
<direction>console</direction><!--可以输出到控制台console,数据库
database,日志log-->
<content>
<methodSignature>true</methodSignature>
<costTime>true</costTime>
<beginTime>true</beginTime>
<endTime>true</endTime>
<!--如果调用服务接口成功,则记录成功,否则记录失败-->
<if script="groovy"test="${result}==1"then="Success"
else="Failure"/> </content>
</monitorOutput>
</MonitorPolicy>
</MonitorPolicvs>
在本发明实施例中,当一个方法被监控时,从记录的当前生效的监控策略信息中查找该方法所对应的监控策略,然后根据查找到的监控策略对该方法执行监控拦截,并可以选择将监控内容输出到对应的输出位置。
图2示出了本发明实施例提供的服务监控系统的结构,监控策略定义集21中记录有在系统中配置的监控策略的全集,监控策略执行集22中记录有监控策略定义集21中当前生效的监控策略,例如由于权限控制,递交申请未得到批准的监控策略位于监控策略定义集21中,不能放到监控策略执行集22中。在本发明实施例中,监控策略定义集21和监控策略执行集22可以是对象集,保存方法对应的哈希映射集(Hash Map),Hash Map中关键字(key)对应的是方法,值(value)对应的是监控策略的实例。
在本发明实施例中,监控策略定义集21与监控策略执行集22集成在一个系统内,也可以配置于系统外的其他位置或者其他系统内,例如控制台等。
对于所有需要监控的服务接口,通过通用服务拦截器23进行监控拦截,通用服务拦截器23可以通过继承扩展。当一个方法调用后,通过通用服务拦截器23,如果监控总开关是开的,根据方法的标识,例如方法签名,从监控策略执行集22中查找所有此服务接口方法定义的监控策略,采用对查找结果取并集的方式,按监控策略的定义解释执行监控拦截,执行完成后调用该服务接口方法,完成服务并返回。
监控拦截判断模块231根据方法的标识,例如方法签名查找监控策略执行集22,判断是否存在对应的监控策略,从而判断方法是否要监控拦截,还可以判断是否有进一步的条件,例如监控拦截是否当前立即生效。监控拦截执行模块232根据监控拦截判断模块231查找到的监控策略中定义的监控条件、监控时间段等对被监控的方法进行监控拦截。在本发明实施例中,监控拦截执行模块232可以对一个方法采取并集的方式执行多个监控策略,按监控策略的定义解释执行监控拦截。监控内容输出模块233根据监控策略中监控内容的输出位置和监控内容输出监控内容,监控内容可以输出到用户定义的位置,或者系统默认的输出位置。
本发明实施例将服务和监控分离,可以对监控进行灵活配置,从而实现了监控的动态修改、动态删除和动态增加。监控策略定义具有良好的扩展性,对监控对象、监控内容和监控内容的输出可以定义和修改,通过业务控制台下发监控策略并立即生效。同时,通过通用服务拦截器和施加在其上的监控策略,可以达到多种服务监控需求的即时满足,不需要修改代码维护版本,现场配置即可,可以大大节约服务监控成本。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (12)
1、一种服务监控方法,其特征在于,所述方法包括下述步骤:
从记录的当前生效的监控策略信息中查找被监控的方法所对应的监控策略;
根据查找到的监控策略对所述方法执行监控拦截。
2、如权利要求1所述的方法,其特征在于,所述方法进一步包括下述步骤:记录系统中配置的监控策略信息。
3、如权利要求1所述的方法,其特征在于,所述根据查找到的监控策略对所述方法执行监控拦截的步骤具体为:
对查找到的监控策略取并集,按监控策略的定义解释执行监控拦截;
将监控内容输出到对应的输出位置。
4、如权利要求1、2或3所述的方法,其特征在于,所述监控策略信息中包括需要监控的方法的标识、监控时间信息、监控的判定条件、监控内容以及监控内容的输出位置。
5、如权利要求4所述的方法,其特征在于,所述监控时间信息为监控开始时间和结束时间。
6、如权利要求4所述的方法,其特征在于,所述监控时间信息为监控时间段。
7、如权利要求4所述的方法,其特征在于,所述监控内容包括被监控的方法的标识、被监控的方法的耗费时间、被监控的方法的调用起始时间、被监控的方法的调用完成时间、以及按业务上下文得到的监控内容。
8、如权利要求4所述的方法,其特征在于,所述监控内容的输出位置为控制台、日志或者数据库。
9、一种服务监控系统,其特征在于,所述系统包括:
监控策略执行集,用于记录当前生效的监控策略信息;以及
通用服务拦截器,用于从所述监控策略执行集记录的当前生效的监控策略信息中查找被监控的方法所对应的监控策略,根据查找到的监控策略对所述方法执行监控拦截。
10、如权利要求9所述的系统,其特征在于,所述系统进一步包括:监控策略定义集,用于记录系统配置的监控策略信息。
11、如权利要求9所述的系统,其特征在于,所述通用服务拦截器包括:监控策略查找模块,用于根据被监控的方法的标识查找所述监控策略执行集,获取对应的监控策略信息;
监控拦截执行模块,用于对所述监控拦截判断模块查找到的监控策略取并集,按监控策略的定义解释执行监控拦截;以及
监控内容输出模块,用于根据所述监控拦截执行模块对所述被监控的方法监控拦截后的监控内容输出到对应的输出位置。
12、如权利要求9、10或11所述的系统,其特征在于,所述监控策略信息中包括需要监控的方法的标识、监控时间信息、监控的判定条件、监控内容以及监控内容的输出位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007101242135A CN101425934A (zh) | 2007-10-29 | 2007-10-29 | 一种服务监控方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2007101242135A CN101425934A (zh) | 2007-10-29 | 2007-10-29 | 一种服务监控方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101425934A true CN101425934A (zh) | 2009-05-06 |
Family
ID=40616283
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007101242135A Pending CN101425934A (zh) | 2007-10-29 | 2007-10-29 | 一种服务监控方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101425934A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102270225A (zh) * | 2011-06-28 | 2011-12-07 | 用友软件股份有限公司 | 数据变更日志监控方法和数据变更日志监控装置 |
CN102360328A (zh) * | 2011-09-29 | 2012-02-22 | 用友软件股份有限公司 | 程序监控装置和程序监控方法 |
CN103546507A (zh) * | 2012-07-12 | 2014-01-29 | 中国移动通信集团公司 | 一种监控物联网系统中终端在网状态的方法、装置及系统 |
-
2007
- 2007-10-29 CN CNA2007101242135A patent/CN101425934A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102270225A (zh) * | 2011-06-28 | 2011-12-07 | 用友软件股份有限公司 | 数据变更日志监控方法和数据变更日志监控装置 |
CN102270225B (zh) * | 2011-06-28 | 2015-10-21 | 用友网络科技股份有限公司 | 数据变更日志监控方法和数据变更日志监控装置 |
CN102360328A (zh) * | 2011-09-29 | 2012-02-22 | 用友软件股份有限公司 | 程序监控装置和程序监控方法 |
CN102360328B (zh) * | 2011-09-29 | 2014-06-04 | 用友软件股份有限公司 | 程序监控装置和程序监控方法 |
CN103546507A (zh) * | 2012-07-12 | 2014-01-29 | 中国移动通信集团公司 | 一种监控物联网系统中终端在网状态的方法、装置及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112511339A (zh) | 基于多集群的容器监控告警方法、系统、设备及存储介质 | |
CN102999716B (zh) | 虚拟机器监控系统及方法 | |
CN1945530B (zh) | 一种具有依赖关系组件的部署系统和方法 | |
CN102073488B (zh) | 一种软件集成方法、安装方法及软件集成装置、安装装置 | |
CN106375458B (zh) | 服务调用系统、方法及装置 | |
CN101753971B (zh) | 一种统一视讯管理平台中内容管理系统中的日志系统及日志记录方法 | |
CN105099740A (zh) | 一种日志管理系统及日志采集方法 | |
CN103532754A (zh) | 一种通过高速内存、分布式处理海量日志的系统及方法 | |
CN101908178A (zh) | 应用于数据交换的中间件及数据交换方法 | |
US20070088850A1 (en) | Cross-platform support for a variety of media types | |
CN103645982A (zh) | 日志处理方法及客户端 | |
CN103473643A (zh) | 一种boss系统的产品管理数据稽核方法及系统 | |
CN106021358A (zh) | 一种异常信息记录方法及系统 | |
CN110610376A (zh) | 行为数据的响应方法、装置、计算机设备及存储介质 | |
KR20110072102A (ko) | 멀티테넌시를 지원하기 위한 확장된 자바가상머신 및 이를 이용한 멀티테넌시 처리 방법 | |
CN108681446B (zh) | 基于组件服务的众创性气候算法管理系统及方法 | |
CN105446819B (zh) | 一种服务连接系统及其设计方法 | |
CN100571156C (zh) | 一种在上级网管中集成下级网管功能的方法 | |
CN101425934A (zh) | 一种服务监控方法及系统 | |
CN109753419A (zh) | 一种非侵入式监控android系统的所有应用的异常日志信息的方法及装置 | |
CN102033741A (zh) | 北向接口系统及其实现方法 | |
US20090287845A1 (en) | Mediator with interleaved static and dynamic routing | |
CN114697232B (zh) | Skywalking探针的指标数据采集系统、方法及电子设备 | |
CN110457132A (zh) | 一种功能对象的创建方法、装置和终端设备 | |
CN104731564A (zh) | 系统接口调用记录的生成方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090506 |