发明名称 基于OSGI的业务模块监控方法
摘要 本发明揭示了一种基于OSGI的业务模块监控方法,包括:客户端请求调用ZooKeeper集群,ZooKeeper集群检查SP是否还在集群中,若在集群中,则返回SP服务器给客户端;客户端调用SP组件的方法被SP服务器的业务方法拦截器捕获;业务方法拦截器调用OSGI容器中的SP组件方法,方法返回结果或发送异常至所述业务方法拦截器;指标采集开始需要获取SP组件的业务方法列表;通过监控模块从业务方法拦截器获取;循环每个业务方法条目;一次业务方法的指标采集完;采集程序通过控制接口,向ZooKeeper集群发送脱离SP组件指令;业务指标的分析及报警步骤。本发明可以准确定位业务方法的瓶颈,进而改进系统,促进版本升级。
申请公布号 CN105490864A 申请公布日期 2016.04.13
申请号 CN201410472655.9 申请日期 2014.09.16
申请人 钛马信息网络技术有限公司 发明人 欧阳亚;袁兴海
分类号 H04L12/26(2006.01)I;G06F11/30(2006.01)I 主分类号 H04L12/26(2006.01)I
代理机构 上海容慧专利代理事务所(普通合伙) 31287 代理人 于晓菁
主权项 一种基于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、获取报警的邮件发送列表,发送报警邮件。
地址 200233 上海市徐汇区钦州北路1122号新汇园92栋8楼