[发明专利]应用程序监控方法和装置有效
| 申请号: | 201110164513.2 | 申请日: | 2011-06-17 |
| 公开(公告)号: | CN102831043A | 公开(公告)日: | 2012-12-19 |
| 发明(设计)人: | 王兴勇 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
| 主分类号: | G06F11/30 | 分类号: | G06F11/30 |
| 代理公司: | 北京康信知识产权代理有限责任公司 11240 | 代理人: | 吴贵明 |
| 地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 应用程序 监控 方法 装置 | ||
技术领域
本申请涉及互联网领域,具体而言,涉及一种应用程序监控方法和装置。
背景技术
如今互联网应用越来越复杂,对系统的可用性和稳定性的要求越来越高,我们不能完全保证系统没有问题,只能做到尽可能的减少问题。然而,当系统出现问题时,需要第一时间发现,并以最快的速度解决掉,把对客户的影响降到最低,而这就需要应用程序监控系统,以便实时的监控系统的运行状况,对运行时数据进行分析。
为了实现对应用程序的监控,现有技术中提供了以下几种解决方案:
1)主动报告健康数据:在业务逻辑中添加监控逻辑(程序),比如当发现程序中的某个值不合法,则主动将错误信息发送到监控中心;
2)采用Spring(Spring是一个开源框架,它是为了解决企业应用开发的复杂性而创建的。)等框架提供的AOP(AOP为Aspect Oriented Programming的缩写,意为:面向方法编程,为程序动态统一添加功能的一种技术)功能,把系统监控的逻辑分离出来,如果被拦截的方法出现异常情况,则发送错误信息到监控中心;
3)采用JMX(Java Management Extensions)框架,将服务封装为MBean(Managed Bean),由监控中心定时抓取数据,或者定时发送数据到监控中心。
然而,上述解决方案具有以下问题:
1)应用监控的逻辑代码与正常的业务逻辑代码耦合在一起,当需要更新监控逻辑代码时,需要重新编写包括应用监控逻辑和业务逻辑代码,将更新后的监控逻辑代码与业务逻辑代码重新进行耦合,组成新的程序代码。这样,增加了代码的复杂度与维护成本,并且修改困难,需要从新发布;
2)通过Spring的AOP实现,用于监控的拦截器也要配置到文件中,与应用的配置文件耦合在一起。这样,当需要更新监控逻辑代码时,需要重新配置拦截器,并将更新后的拦截器与配置文件重新进行耦合,组成新的文件。这样,增加了代码的复杂度与维护成本,并且修改困难,需要从新发布。
发明内容
本申请的主要目的在于提供一种应用程序监控方法和装置,以至少解决现有技术中代码复杂度和维护成本较高的问题。
根据本申请的一个方面,提供了一种应用程序监控方法,其包括:在类文件中加入监控钩子,其中,监控钩子与监控程序相关联;在执行类文件的监控钩子时,调用监控钩子关联的监控程序对应用程序进行监控,其中,所述监控程序和应用程序代码分别位于不同的类文件中,且该二类文件独立于包含了所述监控钩子的类文件。
在类文件中加入监控钩子的步骤包括:在系统启动时检查类文件是否存在匹配的监控项;若存在,则在类文件中加入监控钩子。
在类文件中加入监控钩子的步骤包括:加载类文件的字节码;将监控钩子加入到字节码中。
在系统启动时检查类文件是否存在匹配的监控项的步骤包括:读取所有监控项的配置文件;在加载所述类文件的字节码时判断所述类文件中的应用程序信息是否与监控项匹配,其中,所述监控项包括包名、类名、方法名和参数列表的字符串;若匹配,则判断出所述类文件存在匹配的监控项。
在调用监控钩子对应的监控程序关联用程序进行监控之后,应用程序监控方法还包括:将类文件设置成不包括匹配的监控项;重新加载类文件。
在调用监控钩子关联的监控程序对应用程序进行监控之后,应用程序监控方法还包括:修改所述监控钩子关联的监控程序;重新加载所述类文件,并在执行所述类文件的监控钩子时,调用所述监控钩子关联的监控程序对所述应用程序进行监控。
根据本申请的另一方面,提供了一种应用程序监控装置,其包括:设置单元,用于在类文件中加入监控钩子,其中,所述监控钩子与监控程序相关联;监控单元,用于在执行所述类文件的监控钩子时,调用所述监控钩子关联的监控程序对所述应用程序进行监控,其中,所述监控程序和应用程序代码分别位于不同的类文件中,且该二类文件独立于包含了所述监控钩子的类文件。
设置单元包括:检查模块,用于在系统启动时检查类文件是否存在匹配的监控项;添加模块,用于在类文件存在匹配的监控项时在类文件中加入监控钩子。
添加模块包括:加载子模块,用于加载类文件的字节码;添加子模块,用于将监控钩子加入到字节码中。
检查模块包括:读取子模块,用于读取所有监控项的配置文件;判断子模块,用于在加载所述类文件的字节码时判断所述类文件中的应用程序信息是否与监控项匹配,其中,所述监控项包括包名、类名、方法名和参数列表的字符串;若匹配,则判断出所述类文件存在匹配的监控项。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110164513.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种新型微生物培养皿
- 下一篇:垃圾桶





