一种非侵入式RPC接口监控方法及系统技术方案

技术编号:19352626 阅读:37 留言:0更新日期:2018-11-07 17:40
本发明专利技术涉及系统监控技术领域,尤其公开了一种非侵入式RPC接口监控方法,其中,包括:Zookeeper客户端配置需要监控的RPC接口的接口属性信息;Zookeeper服务器存储所述接口属性信息,并向监控客户端发送接口信息变更的通知;所述监控客户端从所述Zookeeper服务器上读取最新的接口属性信息,根据所述接口属性信息执行监控操作,并将监控数据发送至监控中心;所述监控中心对监控数据进行处理得到监控结果,并将监控结果发送至数据存储模块;所述数据存储模块对所述监控结果进行存储。本发明专利技术还公开了一种非侵入式RPC接口监控系统。本发明专利技术提供的非侵入式RPC接口监控方法无需打包、编译和重分发,确保应用程序正常运行,同时减少了工作量。

【技术实现步骤摘要】
一种非侵入式RPC接口监控方法及系统
本专利技术涉及系统监控
,尤其涉及一种非侵入式RPC接口监控方法及一种非侵入式RPC接口监控系统。
技术介绍
监控一直是行业很热门的话题,监控就像一双眼睛,通过监控我们才能保持系统运行的健康状态,在系统出问题时及时的发现问题并解决问题。传统的监控系统多是对主机、服务器、虚拟机等设备或者系统进行监控,当其出现异常或故障时运维人员根据故障特征寻找导致故障的原因。应用作为系统运行的核心,是系统提供服务的关键,因此对应用服务进行监控也是至关重要的。当前随着业务的扩展,应用向分布式形式扩展,各应用之间的相互调用也变得越来越频繁,功能的调用是他们通过彼此的RPC接口调用实现的。RPC(RemoteProcedureCalls)远程过程调用协议是为应用提供相互通信的方式,使应用之间可以相互请求并传输请求的结果。RPC没有语言的限制,应用程序不必了解支持通信的网络协议的情况,因此提高了程序的互操作性。应用程序的RPC远程接口监控一直是一个很热门的话题,RPC接口因为其依赖于第三方,调用系统无法知晓第三方系统的运行状况,特别是对于特别核心的RPC接口,当其出问题的时候调用系统直接无法服务,因此实时了解RPC接口运行情况,通过监控数据提前发现异常,及时通知第三方系统或提前做出应对方案。现有监控RPC接口的方式通常采用埋点法,对于本系统调用远程接口的情况,开发人员会提前或事后在系统中添加远端RPC接口的埋点程序,有多个RPC接口就埋入多个点,然后对系统进行编译,重启服务。采集到的RPC接口的运行相关数据通过一定的方式发送给监控中心,进行存储展示或者分析报警。具体地埋点监控RPC接口的方式如图1所示。当前传统的RPC监控方式埋点法会对调用程序产生代码入侵,每一个应用的埋点都需要添加一些相应的代码,不仅工作量大,而且限定了必须是技术人员才能完成。另外,版本更新的代价很大,容易造成埋点的混乱,每一次接口监控方案的更新,都需要将代码编译打包重新发布,然后才能进行监控,一旦有相当多数量的用户对新版的更新不关注不进行更新时,埋点代码能够采集到的数据也就得不到更新;同时对于一些核心应用,其要求全天24小时全年不间断运行,甚至若该应用部署在成百上千台服务器时,重新编译打包发布代价太大,数据传输的实时性和可靠性也不好保证。因此,如何解决现有技术中的对RPC接口监控需要重新打包发布成为本领域技术人员亟待解决的技术问题。
技术实现思路
本专利技术旨在至少解决现有技术中存在的技术问题之一,提供一种非侵入式RPC接口监控方法及一种非侵入式RPC接口监控系统,以解决现有技术中的问题。作为本专利技术的一个方面,提供一种非侵入式RPC接口监控方法,其中,每个待监控的应用系统均具有RPC接口,所述非侵入式RPC接口监控方法包括:Zookeeper客户端配置需要监控的RPC接口的接口属性信息;Zookeeper服务器存储所述接口属性信息,并向监控客户端发送接口信息变更的通知;所述监控客户端从所述Zookeeper服务器上读取最新的接口属性信息,根据所述接口属性信息执行监控操作,并将监控数据发送至监控中心;所述监控中心对监控数据进行处理得到监控结果,并将监控结果发送至数据存储模块;所述数据存储模块对所述监控结果进行存储。优选地,所述非侵入式RPC接口监控方法还包括在所述监控客户端将监控数据发送至监控中心的步骤前进行的:所述监控客户端将监控数据发送至MQ集群;所述MQ集群对所述监控数据进行暂时存储;所述监控中心接收所述MQ集群发送的所述监控数据。优选地,所述接口属性信息包括:接口监控类型、接口所示的包路径、类名和RPC接口方法名。优选地,所述接口监控类型包括创建和删除。优选地,所述监控客户端根据所述接口属性信息执行监控操作包括:判断当前RPC接口对应的类是否被加载;若当前RPC接口对应的类未被加载,则读取原字节码文件,并修改原字节码文件;加载与当前RPC接口相关的监控代码,并生成带有监控代码的字节码文件;将所述带有监控代码的字节码文件加载进内存。优选地,所述监控客户端根据所述接口属性信息执行监控操作包括:若当前RPC接口对应的类被加载,则获取原字节码文件;将所述源字节码文件加入监控代码,生成带有监控代码的字节码文件;创建自定义类加载器;通过所述自定义类加载器将所述带有监控代码的字节码文件加载进内存。优选地,所述判断当前RPC接口对应的类是否被加载包括通过类加载监听器判断当前RPC接口对应的类是否被加载。优选地,所述监控中心对监控数据进行处理得到监控结果包括:对所述监控数据进行数据处理;对数据处理后的结果进行统计分析,判断是否存在异常;若存在异常,则发出报警信号。优选地,所述监控客户端对RPC接口进行监控的内容包括:RPC接口调用所花费时间、调用RPC接口的频率、调用RPC接口超时次数和调用RPC接口失败次数。作为本专利技术的第二个方面,提供一种非侵入式RPC接口监控系统,其中,所述非侵入式RPC接口监控系统包括:Zookeeper客户端,所述Zookeeper客户端用于配置需要监控的RPC接口的接口属性信息;Zookeeper服务器,所述Zookeeper服务器用于存储所述接口属性信息,并向监控客户端发送接口信息变更的通知;监控客户端,所述监控客户端用于从所述Zookeeper服务器上读取最新的接口属性信息,根据所述接口属性信息执行监控操作,并将监控数据发送至监控中心;监控中心,所述监控中心用于对监控数据进行处理得到监控结果,并将监控结果发送至数据存储模块;数据存储模块,所述数据存储模块用于对所述监控结果进行存储。本专利技术提供的非侵入式RPC接口监控方法,通过采用Zookeeper客户端配置需要监控的RPC接口的接口属性信息,然后Zookeeper服务器存储所述接口属性信息,监控客户端根据接口属性信息执行监控操作,这样当需要监控某个接口的时候,开发人员只需通过客户端告诉服务需要监控此接口,就会自动通知各个应用系统,然后各个应用系统通过代码重组调用,调用监控程序,采集RPC运行状况数据,然后向数据中心发送数据,系统无需打包编译,也无需重启即可实现监控,因此,本专利技术提供的非侵入式RPC接口监控方法,由于非代码入侵式监控,保证原应用程序的安全,另外,无需打包、编译和重分发,确保应用程序正常运行,同时减少了工作量。附图说明附图是用来提供对本专利技术的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本专利技术,但并不构成对本专利技术的限制。在附图中:图1为现有技术中的埋点监控RPC接口示意图。图2为本专利技术提供的非侵入式RPC接口监控方法的流程图。图3为本专利技术提供的监控客户端执行监控操作的流程图。图4为本专利技术提供的非侵入式RPC接口监控系统的结构示意图。图5为本专利技术提供的非侵入式RPC接口监控系统的具体实施方式结构示意图。具体实施方式以下结合附图对本专利技术的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本专利技术,并不用于限制本专利技术。需要说明的是,RPC:RemoteProcedureCalls,远程过程调用;Zookeeper:分布式应用程序协调服务;MQ:MessageQueue,消息队列;JVM:本文档来自技高网
...

【技术保护点】
1.一种非侵入式RPC接口监控方法,其特征在于,每个待监控的应用系统均具有RPC接口,所述非侵入式RPC接口监控方法包括:Zookeeper客户端配置需要监控的RPC接口的接口属性信息;Zookeeper服务器存储所述接口属性信息,并向监控客户端发送接口信息变更的通知;所述监控客户端从所述Zookeeper服务器上读取最新的接口属性信息,根据所述接口属性信息执行监控操作,并将监控数据发送至监控中心;所述监控中心对监控数据进行处理得到监控结果,并将监控结果发送至数据存储模块;所述数据存储模块对所述监控结果进行存储。

【技术特征摘要】
1.一种非侵入式RPC接口监控方法,其特征在于,每个待监控的应用系统均具有RPC接口,所述非侵入式RPC接口监控方法包括:Zookeeper客户端配置需要监控的RPC接口的接口属性信息;Zookeeper服务器存储所述接口属性信息,并向监控客户端发送接口信息变更的通知;所述监控客户端从所述Zookeeper服务器上读取最新的接口属性信息,根据所述接口属性信息执行监控操作,并将监控数据发送至监控中心;所述监控中心对监控数据进行处理得到监控结果,并将监控结果发送至数据存储模块;所述数据存储模块对所述监控结果进行存储。2.根据权利要求1所述的非侵入式RPC接口监控方法,其特征在于,所述非侵入式RPC接口监控方法还包括在所述监控客户端将监控数据发送至监控中心的步骤前进行的:所述监控客户端将监控数据发送至MQ集群;所述MQ集群对所述监控数据进行暂时存储;所述监控中心接收所述MQ集群发送的所述监控数据。3.根据权利要求1所述的非侵入式RPC接口监控方法,其特征在于,所述接口属性信息包括:接口监控类型、接口所示的包路径、类名和RPC接口方法名。4.根据权利要求3所述的非侵入式RPC接口监控方法,其特征在于,所述接口监控类型包括创建和删除。5.根据权利要求3所述的非侵入式RPC接口监控方法,其特征在于,所述监控客户端根据所述接口属性信息执行监控操作包括:判断当前RPC接口对应的类是否被加载;若当前RPC接口对应的类未被加载,则读取原字节码文件,并修改原字节码文件;加载与当前RPC接口相关的监控代码,并生成带有监控代码的字节码文件;将所述带有监控代码的字节码文件加载进内存。6.根据权利要求5所述的非侵入式RPC接口监控方法,其特征在于,所述监控客...

【专利技术属性】
技术研发人员:吴梦悦马玉峰赵旦谱台宪青
申请(专利权)人:江苏物联网研究发展中心
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1