JavaWeb应用性能诊断方法及装置的制造方法_2

文档序号:9452984阅读:来源:国知局
信息中该应用的监控服务开关是否开启,如果是,则对该应用开启监控服务。如果否,则直接退出监控服务。其中监控服务包括记录应用的开始时间、对应用进行分类、识别应用使用的组件和框架等。
[0052]步骤S104,所述应用结束时,获取所述应用的代码执行时间;
[0053]应用的代码执行结束时,获取该应用的结束时间,根据该应用的开始时间和结束时间计算该应用的代码执行时间。
[0054]步骤S106,根据所述应用配置信息和所述应用的代码执行时间记录所述应用的代码的执行过程数据。
[0055]在本实施例的技术方案中,通过获取处理HTTP请求的应用的应用配置信息,根据应用配置信息对该应用开启监控服务;应用结束时,获取该应用的代码执行时间;根据应用配置信息和应用的代码执行时间记录该应用的代码的执行过程数据。实现依据不同的的HTTP请求中的URL地址从Java Web应用性能诊断装置中读取动态的应用设置,避免研发人员的介入。
[0056]图2为本发明Java Web应用性能诊断方法第二实施例流程图,如图2所示,本发明实施例所提供的Java Web应用性能诊断方法由Java Web应用性能诊断装置执行,该方法包括:
[0057]步骤S200,获取HTTP请求;
[0058]步骤S202,根据HTTP请求获取请求的URL地址;
[0059]步骤S204,根据URL地址从哈希表中获取处理HTTP请求的应用的应用配置信息;
[0060]其中,应用配置信息包括是否开启监控服务开关、是否开启记录代码执行过程开关、代码执行时间阈值。
[0061]其中,哈希表中存储了 URL地址或应用名称与该应用的应用配置信息的映射关系。
[0062]步骤S206,根据应用配置信息,判断应用的监控服务开关是否处于开启状态;若监控服务开关处于开启状态,则进入步骤S208 ;
[0063]步骤S208,开启针对该应用的监控服务;
[0064]步骤S210,该应用结束时,判断该应用的记录代码执行过程开关是否开启;若是则进入步骤S212 ;
[0065]步骤S212,获取该应用的代码执行时间;
[0066]步骤S214,判断该应用的代码执行时间是否大于该应用的代码执行时间阈值;若是则进入步骤S216 ;
[0067]步骤S216,记录应用的代码的执行过程数据。
[0068]具体地,Java Web服务器的JVM虚拟机开启时,加载Java Web应用性能诊断方法。通过Instrumentat1n类获取所有运行时类;通过对每个类的字节码分析,对需要监控的Java类的应用的方法进行嵌码,即在Java类的方法中嵌入Java Web应用性能诊断方法的软件代码。
[0069]在Java Web应用启动时根据ServletContext初始化信息获取应用的名称,根据应用名称加载该应用的配置信息。将该应用的配置信息存储到哈希表中。其中哈希表中存储了 URL地址或应用名称与该应用的应用配置信息的映射关系。
[0070]客户端发来HTTP请求后,服务器迅速开启一个线程处理该HTTP请求,获取HTTP请求中的URL地址,根据该URL地址从哈希表中获取该应用的应用配置信息。其中应用配置信息中包括是否开启监控服务开关、是否开启记录代码执行过程开关、代码执行时间阈值。
[0071]进一步地,如果哈希表内不存在该应用的应用配置信息或应用配置信息已经失效,则重新中读取该应用的应用配置信息,并保存到哈希表内并设置失效时间,最小化与服务器通讯时引入监控对应用的性能影响。
[0072]判断该应用的监控服务开关是否处于开启状态,若是则监控服务依附该线程对处理该HTTP请求的应用进行监控,记录该应用的开始时间。
[0073]针对不同的应用存在不同的监控服务,具体包括:
[0074](I)监控HttpServlet性能,包括:根据ServletContext确定应用名称,以及获取ServletContextInit性能;依据HttpServletRequest对HTTP请求进行命名并记录请求参数;计算用户代码的执行性能;根据配置参数记录代码的执行过程。
[0075](2)监控数据库访问性能,通过对JDBC进行扩展,识别数据库信息,获取数据库性能,并对操作类型进行汇总;如可以对selectUnsert等汇总;如果数据库操作性能超出定义的阈值,还可以获取特定数据库服务的执行计划。
[0076](3)监控 Framework 性能,通过对 Spring Dispatcher> Spring Handler 等 Spring框架的扩展,获取Spring Framework的性能;通过对Struts Act1n、Xffork等Strutsl和Struts2框架的扩展,获取Struts Framework的性能;通过对Play Dispatch、PlayController、Play2Routing 等 Play 框架的扩展,获取 Play Framework 的性能。
[0077](4)监控 Memcached 性能,通过对 JavaMemcachedClient、SpyMemcachedClient 和XMemcachedClient扩展,获取Memcached的响应性能,并对不同的操作(如add, get等)进行汇总。
[0078](5)监控NoSql性能,通过对DBCollect1n的扩展获取MongoDB的性能,并根据操作类型(如:find、insert、update等)进行性能汇总;通过对Jedis的扩展获取Redis的性能,并对不同的操作(如:get、Set、del)进行汇总。
[0079](6)监控Except1n,包括Java的Except1n和HttpError ;捕获程序运行过程中的Except1n,以及抓取Http Response响应代码,并根据需求记录结果。
[0080]应用结束时,读取该应用的应用配置信息,判断该应用的记录代码执行过程开关是否开启,若开启则记录该应用的结束时间。根据该应用的开始时间和结束时间计算出该应用的代码执行时间;若关闭则直接退出监控服务。
[0081 ] 判断该应用的代码执行时间是否大于该应用的代码执行时间阈值,若是则记录该应用的代码的执行过程。
[0082]在本实施例的技术方案中,通过获取处理HTTP请求的应用的应用配置信息,根据应用配置信息对该应用开启监控服务;应用结束时,获取该应用的代码执行时间;根据应用配置信息和应用的代码执行时间记录该应用的代码的执行过程数据。实现依据不同的的HTTP请求中的URL地址从Java Web应用性能诊断装置中读取动态的应用设置,避免研发人员的介入。
[0083]图3为本发明Java Web应用性能诊断装置第一结构示意图,如图3所示,该装置包括:
[0084]获取模块10,用于获取处理HTTP请求的应用的应用配置信息,所述应用配置信息包括是否开启监控服务开关、是否开启记录代码执行过程开关、代码执行时间阈值;
[0085]监控模块11,用于根据所述应用配置信息对所述应用开启监控服务;
[0086]处理模块12,用于所述应用结束时,获取所述应用的代码执行时间;
[0087]记录模块13,用于根据所述应用配置信息和所述应用的代码执行时间记录所述应用的代码的执行过程数据。
[0088]本实施例中Java Web应用性能诊断装置用于执行上述Java Web应用性能诊断方法,具有相同的功能模块,在此不再赘述。
[0089]在本实施例的技术方案中,通过获取处理HTTP请求的应用的应用配置信息,根据应用配置信息对该应用开启监控服务;应用结束时,获取该应用的代码执行时间;根据应用配置信息和应用的代码执行时间记录该应用的代码的执行过程数据。实现依据不同的的HTTP请求中的URL地址从Java Web应用性能诊断装置中读取动态的应用设置,避免研发人员的介入。
[0090]图4为本发明Java Web应用性能诊断装置第二结构示意图,如图4所示,该装置包括:
[0091]获取模块20,用于获取处理HTTP请求的应用的应用配置信息,应用配置信息包括是否开启监控服务开关、是否开启记录代码执行过程开关、代码执行时间阈值;
[0092]监控模块21,用于根据应用配置信息对应用开启监控服务;
[0093]处理模块22,用于应用结束时,获取应用的代码执行时间;
[0094]记录模块23,用于根据应用配置信息和应用的代码执行时间记录应用
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1