基于OSGI的业务模块监控方法技术

技术编号:13171107 阅读:52 留言:0更新日期:2016-05-10 14:44
本发明专利技术揭示了一种基于OSGI的业务模块监控方法,包括:客户端请求调用ZooKeeper集群,ZooKeeper集群检查SP是否还在集群中,若在集群中,则返回SP服务器给客户端;客户端调用SP组件的方法被SP服务器的业务方法拦截器捕获;业务方法拦截器调用OSGI容器中的SP组件方法,方法返回结果或发送异常至所述业务方法拦截器;指标采集开始需要获取SP组件的业务方法列表;通过监控模块从业务方法拦截器获取;循环每个业务方法条目;一次业务方法的指标采集完;采集程序通过控制接口,向ZooKeeper集群发送脱离SP组件指令;业务指标的分析及报警步骤。本发明专利技术可以准确定位业务方法的瓶颈,进而改进系统,促进版本升级。

【技术实现步骤摘要】

本专利技术属于软件监控
,涉及一种业务模块监控方法,尤其涉及一种基于0SGI的业务模块监控方法。
技术介绍
OSGi亦称做Java语言的动态模块系统,它为模块化应用的开发定义了一个基础架构。OSGi规范和Servlet规范及EJB规范类似,该规范定义了两种对象,一是容器对外提供的服务对象,另一个是容器和您的应用程序之间必须遵守的契约,其中,服务对象是容器要实现的。您如果想要在OSGi平台上进行开发,首先,您必须要使用OSGi API来创建您的应用,然后将之部署到OSGi容器中。从开发者的角度看,OSGi具有以下优点:(1)可以在不重启容器的情况下,动态地安装、卸载、启动和停止您的应用程序中的不同模块;(2)对于您应用程序中的某一特定模块,容器可以同时运行该模块的多个版本;(3)0SGi为开发嵌入式应用、移动应用、富互联网应用(RIA)提供了非常优秀的基础架构。JMX (Java Management Extens1ns,即 Java 管理扩展)是一个为应用程序、设备、系统等植入管理功能的框架。JMX可以跨越一系列异构操作系统平台、系统体系结构和网络传输协议,灵活的开发无缝集成的系统、网络和服务管理应用。JMX体系结构分为以下四个层次:设备层、代理层、分布服务层、附加管理协议API。设备层(Instrumentat1n Level):主要定义了信息模型。在JMX中,各种管理对象以管理构件的形式存在,需要管理时,向MBean服务器进行注册。该层还定义了通知机制以及一些辅助元数据类。代理层(Agent Level):主要定义了各种服务以及通信模型。该层的核心是一个MBean服务器,所有的管理构件都需要向它注册,才能被管理。注册在MBean服务器上管理构件并不直接和远程应用程序进行通信,它们通过协议适配器和连接器进行通信。而协议适配器和连接器也以管理构件的形式向MBean服务器注册才能提供相应的服务。分布服务层(Distributed Service Level):主要定义了能对代理层进行操作的管理接口和构件,这样管理者就可以操作代理。然而,当前的JMX规范并没有给出这一层的具体规范。定义的API主要用来支持当前已经存在的网络管理协议,如SNMP、TMN、CIM/WBEM坐寸。开源监控系统OpenTSDB,用hbase存储所有的时序(无需采样)来构建一个分布式、可伸缩的时间序列数据库。它支持秒级数据采集所有metrics,支持永久存储,可以做容量规划,并很容易的接入到现有的报警系统里。OpenTSDB可以从大规模的集群(包括集群中的网络设备、操作系统、应用程序)中获取相应的metrics并进行存储、索引以及服务,从而使得这些数据更容易让人理解,如web化,图形化等。对于运维工程师而言,OpenTSDB可以获取基础设施和服务的实时状态信息,展示集群的各种软硬件错误,性能变化以及性能瓶颈。对于管理者而言,OpenTSDB可以衡量系统的SLA,理解复杂系统间的相互作用,展示资源消耗情况。集群的整体作业情况,可以用以辅助预算和集群资源协调。对于开发者而言,OpenTSDB可以展示集群的主要性能瓶颈,经常出现的错误,从而可以着力重点解决重要问题。
技术实现思路
本专利技术所要解决的技术问题是:提供一种基于0SGI的业务模块监控方法,可准确定位业务方法的瓶颈,进而改进系统,促进版本升级。如今需要一个支持模块化、分布式、大数据操作的开发平台的车联网框架。由于系统的庞大复杂,为保证系统的稳定运行和快速定位系统瓶颈,为研发和改进系统提供依据;需要对系统、平台、服务模块、服务模块业务方法进行监控数据采集和数据分析。通过本专利技术监控方法,可以:定时采集操作系统层面指标:CPU使用率、内存使用率、存储使用率、网络流量等。定时采集集群层面指标:集群规模、成员服务器有效状态等。定时采集成员服务器JVM指标:堆使用情况、线程情况等。定时采集业务模块指标:接口数量、接口列表等。定时采集每个接口指标:请求次数、错误次数、合计处理时间、最大一次处理时间、平均处理时间等。使用时间序列数据库(TSDB)保存各时间点的指标数据,形成监控大数据。通过大数据分析工具,分析业务的忙/闲情况,各业务接口的处理情况,以及相同时间点下各依赖环境、支撑环境的指标情况,从而综合分析系统的性能瓶颈。为解决上述技术问题,本专利技术采用如下技术方案:一种基于0SGI的业务模块监控方法,所述监控方法包括如下步骤:步骤S1、客户端请求调用ZooKeeper集群,ZooKeeper集群检查业务模块对应服务容器SP是否还在集群中,若在集群中,则返回业务模块服务容器SP的访问接口给客户端;步骤S2、客户端调用SP组件的方法被服务容器SP的业务方法拦截器捕获,拦截器进行如下操作:将方法调用计数器做加1操作,记录开始调用时间;步骤S3、业务方法拦截器调用0SGI容器中的SP组件方法,方法返回结果或发送异常至所述业务方法拦截器;业务方法拦截器进行如下操作:计算处理时间;如果有错误,将错误次数做加1操作;如果当前最大处理时间和前一个最大处理时间变量进行比较,若当前最大处理时间更大,则将最大处理时间修改为当前最大处理时间;步骤S4、指标采集开始需要获取服务容器SP组件的业务方法列表;通过监控模块从业务方法拦截器获取;监控模块是基于JMX开发的管理组件,运行在SP-Server中,用于汇总各种指标数据同时向指标采取器提供接口 ;监控模块向采集器提供:业务方法列表接口、指标获取接口、指标重置接口、业务组件控制接口 ;步骤S5、循环每个业务方法条目,根据方法的标识发起指标获取请求,一个业务方法包含:处理次数、处理时间合计、最大一次处理事情、错误次数;步骤S6、一次业务方法的指标采集完,调用重置接口,把上次所有指标清零;各项指标保存到时间序列数据库tsdb中后,表现为一定时间间隔的指标数值;步骤S7、采集程序通过控制接口,向ZooKeeper集群发送脱离SP组件指令,SP组件集群后,业务调用将不会分发给SP组件集群;步骤S8、业务指标的分析及报警步骤;步骤S9、信息展示步骤:有配置关系的支撑数据,展示在某时间点上,包括业务方法请求数量、集群规模、JVM的线程数量、JVM堆内存大小、服务器的会话数量、服务器连接数量、CPU利用率、内存使用率、进程数量、网络带宽情况;通过综合环境参数的展示运维人员准确及时的协调资源,满足系统峰值需求;同时在系统闲时削减资源,节约运营成本;其中,步骤S8具体包括:步骤S81、提取各报警对象的的报警指标,包括集群本身的指标、集群各类型节点的指标、JVM的指标;步骤S82、根据集群-服务器关系提取各集群的成员服务器;步骤S83、循环各集群服务器,从时间序列数据库tsdb中获取各指标的值;步骤S84、对每项指标逐一检查配置的报警阀值;步骤S85、报警分为两种:中断性报警,tsdb中没有取出记录;指标超阀值类报警,超出了报警阀值的范围;步骤S86、报警成员的提取:Sp集群的报警根据主机、集群、渠道提取相关的报警组成员;Hadoop、Hbase、Mysql、Zookeeper集群提取集群和主机管理员;步骤S87、报警的重复提醒问题:如果10分钟后没有人处理继续产生同本文档来自技高网
...

【技术保护点】
一种基于OSGI的业务模块监控方法,其特征在于,所述监控方法包括如下步骤:步骤S1、客户端请求调用分布式协调组件ZooKeeper集群,ZooKeeper集群检查业务模块的服务容器SP是否还在集群中,若在集群中,则返回业务模块服务容器SP的访问接口给客户端;步骤S2、客户端调用SP组件的方法被服务容器SP的业务方法拦截器捕获,拦截器进行如下操作:将方法调用计数器做加1操作,记录开始调用时间;步骤S3、业务方法拦截器调用OSGI容器中的SP组件方法,方法返回结果或发送异常至所述业务方法拦截器;业务方法拦截器进行如下操作:计算处理时间;如果有错误,将错误次数做加1操作;如果当前最大处理时间和前一个最大处理时间变量进行比较,若当前最大处理时间更大,则将最大处理时间修改为当前最大处理时间;步骤S4、指标采集开始需要获取服务容器SP组件的业务方法列表;通过监控模块从业务方法拦截器获取;监控模块是基于JMX开发的管理组件,运行在服务容器SP中,用于汇总各种指标数据同时向指标采取器提供接口;监控模块向采集器提供:业务方法列表接口、指标获取接口、指标重置接口、业务组件控制接口;步骤S5、循环每个业务方法条目,根据方法的标识发起指标获取请求,一个业务方法包含:处理次数、处理时间合计、最大一次处理事情、错误次数;步骤S6、一次业务方法的指标采集完,调用重置接口,把上次所有指标清零;各项指标保存到时间序列数据库tsdb中后,表现为一定时间间隔的指标数值;步骤S7、采集程序通过控制接口,向ZooKeeper集群发送脱离服务容器SP组件指令,服务容器SP组件集群后,业务调用将不会分发给服务容器SP组件集群;步骤S8、业务指标的分析及报警步骤;步骤S9、信息展示步骤:有配置关系的支撑数据,展示在某时间点上,包括业务方法请求数量、集群规模、JVM的线程数量、JVM堆内存大小、服务器的会话数量、服务器连接数量、CPU利用率、内存使用率、进程数量、网络带宽情况;通过综合环境参数的展示运维人员准确及时的协调资源,满足系统峰值需求;同时在系统闲时削减资源,节约运营成本;其中,步骤S8具体包括:步骤S81、提取各报警对象的的报警指标,包括集群本身的指标、集群各类型节点的指标、JVM的指标;步骤S82、根据集群‑服务器关系提取各集群的成员服务器;步骤S83、循环各集群服务器,从时间序列数据库tsdb中获取各指标的值;步骤S84、对每项指标逐一检查配置的报警阀值;步骤S85、报警分为两种:中断性报警,tsdb中没有取出记录;指标超阀值类报警,超出了报警阀值的范围;步骤S86、报警成员的提取:Sp集群的报警根据主机、集群、渠道提取相关的报警组成员;Hadoop、Hbase、Mysql、Zookeeper集群提取集群和主机管理员;步骤S87、报警的重复提醒问题:如果10分钟后没有人处理继续产生同样的报警信息;步骤S88、获取报警的邮件发送列表,发送报警邮件。...

【技术特征摘要】

【专利技术属性】
技术研发人员:欧阳亚袁兴海
申请(专利权)人:钛马信息网络技术有限公司
类型:发明
国别省市:上海;31

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

1