本发明专利技术适用于软件服务监控领域,提供了一种服务监控方法及系统,所述方法包括下述步骤:从记录的当前生效的监控策略信息中查找被监控的方法所对应的监控策略;根据查找到的监控策略对所述方法执行监控拦截。本发明专利技术将服务和监控分离,可以对监控进行灵活配置,从而实现了监控的动态修改、动态删除和动态增加,通过通用服务拦截器和施加在其上的监控策略,可以达到多种服务监控需求的即时满足,节约服务监控成本。
【技术实现步骤摘要】
本专利技术属于软件服务监控领域,尤其涉及一种服务监控方法及系统。
技术介绍
服务监控是对提供一定功能的对外接口层面进行监控,监控的具体内容包 括接口性能、接口参数信息跟踪、接口调用对应业务语义的统计等,是一种系 统微观层面的监控。服务监控的结果可以通过控制台输出,也可以写到日志文件,或者持久化(Persistence)到数据库,供系统对业务执行情况进行在线分析 和离线分析。利用面向方面编程技术(Aspect-Oriented Programming, AOP ),可以对于 每个服务配置不同的拦截器(Interceptor),用于在某个方法被访问之前进行拦 截,然后在其之前或之后加入某些操作,使得实现代码和服务调用执行代码的 分离。对不同的服务配置不同的拦截器,可以重用某个方面的拦截器代码。但 拦截器配置完成,系统启动后不能动态调整,例如不能定义在某个时段不执行 拦截,或者删除拦截,或者定期拦截。同时,对服务监控的结果固化在拦截器 代码中,不能动态修改,难以灵活响应客户需求的变化。
技术实现思路
本专利技术实施例的目的在于提供一种服务监控方法,旨在解决现有服务监控 中拦截器的配置不能动态调整,难以灵活响应客户需求的变化的问题。本专利技术实施例是这样实现的, 一种服务监控方法,所述方法包括下述步骤 从记录的当前生效的监控策略信息中查找被监控的方法所对应的监控策略;4根据查找到的监控策略对所述方法执行监控拦截。本专利技术实施例的另一目的在于提供一种服务监控系统,所述系统包括监控策略执行集,用于记录当前生效的监控策略信息;以及通用服务拦截器,用于从所述监控策略执行集记录的当前生效的监控策略信息中查找被监控的方法所对应的监控策略,根据查找到的监控策略对所述方法执行监控拦截。本专利技术实施例将服务和监控分离,可以对监控进行灵活配置,从而实现了 监控的动态修改、动态删除和动态增加,通过通用服务拦截器和施加在其上的 监控策略,可以达到多种服务监控需求的即时满足,节约服务监控成本。附图说明图1是本专利技术实施例提供的对监控策略进行配置的示意图; 图2是本专利技术实施例提供的服务监控系统的结构图。具体实施例方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实 施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅 仅用以解释本专利技术,并不用于限定本专利技术。本专利技术实施例通过配置通用服务拦截器以及可定义、可扩展的监控策略实 现了服务和监控的解耦,能够即时满足多种服务监控需求,节约服务监控成本。在本专利技术实施例中,如图l所示,对于监控策略,可以在业务控制台定义 并检查测试,然后下发校验合法通过的监控策略到后台系统的监控策略定义集, 并可以对监控策略定义集中的监控策略进行保存、删除或者修改等。如果需要 立即生效,只需要将策略通过业务控制台下发到监控策略执行集。如果要使正 在执行的监控策略失效,则将监控策略从监控策略执行集中放回至监控策略定 义集,达到了监控策略可定义可插拔的效果。同时,可以将周期性的、长期的监控策略等持久化,例如写入数据库或者文件中,以便系统重启后加载。在本专利技术实施例中,也可以将监控策略与定时任务结合,由定时任务周期 性下发监控策略到监控策略执行集中。对于监控策略执行集而言,由于监控的 开始时间和结束时间的约束,失效的监控策略会自动从监控策略执行集中清除。 因此,如果监控策略有灵活的表达,解释执行监控策略就可以替代很多不必要 的拦截器代码的编写和配置。在本专利技术实施例中,定义的监控策略包括监控策略标识(policyID),需要全局唯一,例如以serviceID _methodName_ 序号表示;方法的标识,例如方法签名(methodSignature),包含类路径及方法参数, 能唯一表示类中的不同方法;监控开始时间(monitorBeginTime ),如果配置了监控的开始时间就不需 要配置监控时间段;监控结束时间(monitorEndTime ),如果配置了监控的结束时间就不需要 配置监控时间段;监控时间段(monitorPeriod),可以以分钟为单位,如果没有设置监控开 始时间和监控结束时间,则在执行此监控时采用当前时间作为监控的开始时间, 加上时长得到监控结束时间;监控的判定条件(if),支持eos、 groovy、 jruby、 python等脚本语言,例 如〈if script=eos test=$result == true7〉表示当返回^f直为true时条4牛成立;监控输出(monkorOutput),包括监控内容的输出位置(direction)和监控 内容(content)。监控内容的输出位置可以是数据库(database)、日志(log)或者控制台 (console),可以配置默认输出位置,例如数据库。监控内容包括被监控的方法的标识,例如方法签名(methodSignature)、 被监控的方法的耗费时间(costTime)、被监控的方法的调用起始时间6(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)</methodSignature〉<policyID>test—getNodeName—3</policyID〉 <monitorBeginTime>2007-10-10 00:00:00</monitorBeginTime> <monitorEndTime〉2007-10-l 1 00:00:00</monitorEndTime〉 </MonitorPolicy〉<!- 一直监控,默认监控输出到数据库,监控内容方法的标识,例如方 法签名,方法调用耗时,调用开始时间,调用本文档来自技高网...
【技术保护点】
一种服务监控方法,其特征在于,所述方法包括下述步骤: 从记录的当前生效的监控策略信息中查找被监控的方法所对应的监控策略; 根据查找到的监控策略对所述方法执行监控拦截。
【技术特征摘要】
1、一种服务监控方法,其特征在于,所述方法包括下述步骤从记录的当前生效的监控策略信息中查找被监控的方法所对应的监控策略;根据查找到的监控策略对所述方法执行监控拦截。2、 如权利要求1所述的方法,其特征在于,所述方法进一步包括下述步骤 记录系统中配置的监控策略信息。3、 如权利要求l所述的方法,其特征在于,所述根据查找到的监控策略对 所述方法执行监控拦截的步骤具体为对查找到的监控策略取并集,按监控策略的定义解释执行监控拦截; 将监控内容输出到对应的输出位置。4、 如权利要求l、 2或3所述的方法,其特征在于,所述监控策略信息中 包括需要监控的方法的标识、监控时间信息、监控的判定条件、监控内容以及 监控内容的输出位置。5、 如权利要求4所述的方法,其特征在于,所述监控时间信息为监控开始 时间和结束时间。6、 如权利要求4所述的方法,其特征在于,所述监控时间信息为监控时间段。7、 如权利要求4所述的方法,其特征在于,所述监控内容包括被监控的方 法的标识、被监控的方法的耗费时间、被监控的方法的调用起始时间、被监控 的方法的调用完成时间、以及按业务上下文得到的监控内容。8、 如权利...
【专利技术属性】
技术研发人员:张普朝,穆鸿,王世军,徐健鹏,章志国,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:94[中国|深圳]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。