[发明专利]一种JAVA应用系统运行时监控方法和装置无效
| 申请号: | 201110069405.7 | 申请日: | 2011-03-23 | 
| 公开(公告)号: | CN102122263A | 公开(公告)日: | 2011-07-13 | 
| 发明(设计)人: | 杨涛;廖昕;陈松;胡百国 | 申请(专利权)人: | 成都勤智数码科技有限公司 | 
| 主分类号: | G06F11/32 | 分类号: | G06F11/32 | 
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 | 
| 地址: | 610041 四川省成都市高*** | 国省代码: | 四川;51 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 一种 java 应用 系统 运行 监控 方法 装置 | ||
技术领域
本发明涉及IT运维领域,尤其是一种对Java应用系统运行时监控的方法。
背景技术
随着 IT 建设的不断深入和完善,计算机软硬件系统的运行维护变得日益重要。保证应用系统正常持续运行的一个重要方面是对应用系统的行为进行监控,当发现其行为不符合预期或出现异常时及时告警,以便维护人员对问题进行处理,排除故障或潜在的问题。业务的快速变化和技术的不断创新导致应用系统日益复杂,大型企业可能存在数十甚至上百个业务系统,当故障发生时问题的定位、诊断和修复一直是信息服务部门面临的挑战。在监控技术中,一般是采用各种探针从外部观测应用系统占用的CPU、内存资源等,不能监测应用系统内部行为和效果,无法对深层次系统问题进行定位、分析。传统的软件单步跟踪和调试技术可以准确观察系统内部行为,主要适用于软件开发阶段,当系统投入正式运行之后,由于源代码、符号文件缺失等原因,很难再对系统进行单步跟踪调试;并且单步跟踪、断点等会影响应用系统行为,一般也不允许在生产环境中使用。
因此,如何在应用系统运行环境中,在对业务系统影响尽可能低的情况下,准确监测软件内部行为,如方法执行所耗时长,创建的对象数量,是否有操作异常发生等,并且将这些数据及时有效的展现和分析,是IT运维领域的技术人员面临的一个突出问题。
发明内容
Java语言是目前应用系统开发的主流编程语言。本发明提出了一种针对Java开发的应用系统的运行时监控方法,其主要步骤如下:
1)通过配置文件描述要监控的类或方法,以及监控指标;
2)修改应用程序启动参数, JVM启动时加载Agent;
3) Agent读取配置文件,并根据监控要求向JVM注册要得到通知的事件;
4)应用程序运行时,当指定的类被加载时,Agent得到通知;
5)Agent修改对应类的字节码,加入监控所需逻辑;
6)Agent初始化相关指标变量;
7)当被监控的方法调用时,自动执行监控逻辑,得到相关指标原始数据;
8)Agent根据配置文件的描述,定期计算相关指标的值,并将数据发送给数据收集单元,并重置相关指标变量;
9)数据收集单元汇聚数据,建立数据索引等操作;
10)数据展现单元按照用户操作,根据数据索引提取指标数据,并以表格、线性图、柱状图等进行展示。
应用上述方法的装置由监控Agent,数据收集单元和数据展现单元组成。监控Agent包括动态链接库和相关的一些jar包,当Java程序启动时将其作为程序的一部分进行加载,其工作原理如图2所示。当JVM启动时,JVM根据运行参数查找动态链接库,根据JVMTI(Java Virtual Machine Tool Interface)规范,调用Agent_OnLoad方法。在此方法中,Agent会读取配置文件,确定要监控的类和方法,然后据此向JVM声明自己感兴趣的事件。当这些事件发生时,相关的回调函数会被执行。通过这种机制,Agent可以在Java类加载时,动态修改Java程序的字节码,根据要求嵌入自己的监控指标采集代码。当对应类的方法被执行时,相关的采集代码会被执行,从而掌握应用程序的行为统计。比如要监测Card类的余额查询方法QueryValue执行时延,Agent会在Card类加载时修改QueryValue方法的字节码,在进入方法时取得系统时间,在方法执行完毕时再取一次系统时间,并计算两者的差,就可得到该方法的执行耗时。同样的,如果要计算程序中某方法一直执行,还未结束的数量,则可以针对该方法设置一变量,当方法进入时该变量加一,当方法退出时变量减去一,那么这个变量的值就代表了当前正在执行,还未结束的调用数。Agent加载后会启动数据计算发送线程,该线程定期计算数据并通过网络发送给数据收集单元;该间隔不宜过短,过短会增加系统负载;也不宜过长,过长会导致监控粒度过大,不能发现问题。优选地,该间隔宜设在30秒到60秒之间。另外一个要注意的是,为尽可能降低对应用程序的影响,Agent本身并不在磁盘上保存任何数据;所有数据均是通过网络保存在数据收集单元上。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都勤智数码科技有限公司,未经成都勤智数码科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110069405.7/2.html,转载请声明来源钻瓜专利网。





