2 引言
2.1 目的
本文作为javaMelody插件简单配置说明,通过简单介绍javaMelody的作用以及在maven项目中的配置方法来通过监控手段,了解整个项目的瓶颈以及优化点,提升应用的性能,并且在类似项目中出现服务夯死以及线程创建后不释放等问题都有参考意义。
2.2 文档说明
本文档以公司maven3.1.1框架为基础,在此基础上进行javaMelody配置,由于近期刚刚加入到一屏监控项目中,目前也正在验证以及功能挖掘阶段,肯定存在各种遗漏或者理解偏差的地方,希望能够抛砖引玉,愿各位同事不吝赐教,及时指正,万分感谢!
2.3 javaMelody介绍
JavaMelody用于对Java应用或者应用服务器的QA以及开发环境的监控。它并不是一个模拟请求类似JMeter的压力测试工具,而是一个衡量并且计算在应用上的操作信息的工具,也就是说,它只负责对行为进行监控,而不负责触发操作。JavaMelody基于请求统计生成模拟图表,并为我们的应用程序在QA或者开发上提供下面的帮助:
1
2
3
4
5
需要注意的是,JavaMelody监控是非常简单的,部署也很快。通常JavaMelody与应用的整个都是软件自动完成的,并不需要用户做任何的操作。只需要修改一点配置文件即可。监控与应用整合一般都不会超过10秒钟,通常都会自动的被编译环境发现:你需要做的知识拷贝两个jar包,添加10行xml的代码。如果你发布的应用程序不是一个相对目录,而是war包,那么就需要阅读以下下面的章节了。如果是ear(EJBs),那么就需要去阅读以下User Guide Advanced的一些相关内容了。
3 环境要求
3.1 jdk版本
JDK版本要求:需要Java JDK在1.6或者1.6以上。
3.2 应用服务器部署要求
Tomcat 5.5 6
GlassFish v2或v3
JBoss 4,5,6,7
Jonas 4或5
Jetty 6或7
WebLogic 9,10,11
4 maven项目配置
4.1 pom文件坐标配置
由于javaMelody需要两个jar包,因此需要在maven项目中的service目录下pom.xml文件中新增javamelody (1.50.0), jrobin(1.5.9)坐标配置:
注:所有代码修改完毕需要做maven update操作(从maven库中下载jar包)
4.2 web.xml文件配置
需要配置过滤器以及monitoring-spring.xml
在第一个Filter之前加上JavaMelody的Filter配置,确保JavaMelody的Filter第一个被执行(filter-mapping的位置尽可能靠前,因为它来测相关请求时间).
注:context-param
文件
4.3 applicationContext.xml文件配置
配置后可以监控spring bean的性能
5 访问地址
5.1
http:monitoring
host:是web应用服务器的部署IP
是web应用的名字
目前湖北一屏监控的本机访问地址是:http://127.0.0.1:8080/monitoring/monitoring
6 监控功能简介
6.1 项目监控
Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求、sql请求、jsp页面与业务接口方法(EJB3、Spring、Guice)的执行数量,平均执行时间,错误百分比等,并且以图标形式展示
6.1.2 图形部分
主要包含服务占用内存,以及CPU使用率,同时对请求数,请求时间,错误率等都有一个详细的图形展示,并且能点击进入更为直观查看
6.1.3 表格部分
表格部分包含具体的http请求时间,sql语句查询时间的统计,jsp页面等详细信息展示,并且可以具体到某一个请求,可以追朔到具体代码。如:
如图一屏监控中存在sql语句查询平均时间过长,平均时长:758ms。点击描述中会按照时间顺序排列当前监控中所有sql语句,第一个sql语句就是平均用时比较长的(select date_format(bb.count_date, '%Y-%m-%d') count_date,bb.busi_sts,sum(total) total from (select date_format(a.count_date, '%Y-%m-%d') count_date,max(batch_id) batch_id from report_rqyj a group by date_format(a.count_date, '%Y-%m-%d')) aa,report_rqyj bb where date_format(aa.count_date, '%Y-%m-%d')=date_format(bb.count_date, '%Y-%m-%d') and aa.batch_id=bb.batch_id group by date_format(bb.count_date, '%Y-%m-%d'),bb.busi_sts)对于优化项目用时很有帮助。
线程监控(包含状态,执行方法等信息)
可以杀掉某些指定线程
数据缓存监控
数据缓存监控包含初始化缓存表信息,包含内存中Object数目等
6.2 系统监控
系统监控包含:session信息(用户名,IP地址等信息),系统进程,JDBC连接数等信息。同时描述中包含服务器系统的相关使用信息
7 struts2框架中配置简述
7.1 struts-common.xml配置文件
在struts-common.xml中加入以下代码:
7.2 更改文件
将struts-模块名.xml中的extends改为default,
8 Spring框架中集成简述
8.1 spring-common.xml新增配置
在spring-common.xml中添加以下代码:
id="facadeMonitoringAdvisor" class="net.bull.javamelody.MonitoringSpringAdvisor">
注:struts2以及spring中配置需要的两个jar包下载地址见附录9.2
9 附录
9.1 相关参考网站
- http://www.cnblogs.com/xing901022/p/4116430.html
JavaMelody应用监控使用指南 - http://my.oschina.net/noahxiao/blog/75463?fromerr=JHtIF62r
javamelody监控web应用的性能指标 - http://blog.csdn.net/jesse621/article/details/
javamelody的使用
9.2 相关JAR包下载地址
Javamelody
JRobin

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/26027.html