JavaMelody 可以实现对内存、CPU、线程、JDBC 连接数、HTTP 请求执行时间、SQL 执行时间(分析 Top SQL)、方法执行时间(分析系统方法性能瓶颈)等等的监控。
配置方式
1. pom.xml(加入依赖包)
1 2 3 4 5 | < dependency > < groupId >net.bull.javamelody</ groupId > < artifactId >javamelody-core</ artifactId > < version >1.53.0</ version > </ dependency > |
2. web.xml
2.1. 配置过滤器,也可以配置不需要监控的 HTTP 请求。
注意:一定要放在所有过滤器的最上面,不然会被 action 拦截。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | < filter > < filter-name >monitoring</ filter-name > < filter-class >net.bull.javamelody.MonitoringFilter</ filter-class > < init-param > <!-- 配置不需要拦截的路径 <param-name>url-exclude-pattern</param-name> <param-value>/static/.*</param-value> --> <!-- 配置登录用户名密码。shop端配置,man端不需要 --> < param-name >authorized-users</ param-name > < param-value >用户名:密码</ param-value > </ init-param > </ filter > < filter-mapping > < filter-name >monitoring</ filter-name > < url-pattern >/*</ url-pattern > </ filter-mapping > |
2.2 配置 JDBC 监控统计(必须作为第一个配置文件)
1 2 3 4 5 6 7 | < context-param > < param-name >contextConfigLocation</ param-name > < param-value > classpath:net/bull/javamelody/monitoring-spring.xml; <!-- 和 Spring 集成时添加 --> classpath:spring-config.xml;classpath:spring-config-struts.xml </ param-value > </ context-param > |
3 struts.xml 配置 Struts 监控(将 'monitoring' interceptor 配置到被继承的 package 下)
1 2 3 4 5 6 7 8 9 10 11 12 | < package name = "default" extends = "struts-default" > < interceptors > <!-- javamelody --> < interceptor name = "monitoring" class = "net.bull.javamelody.StrutsInterceptor" /> < interceptor-stack name = "myStack" > < interceptor-ref name = "monitoring" /> <!-- struts 默认的拦截器 --> < interceptor-ref name = "defaultStack" /> </ interceptor-stack > </ interceptors > < default-interceptor-ref name = "myStack" /> </ package > |
4. 配置 Quartz 监控
全文搜索 org.springframework.scheduling.quartz.SchedulerFactoryBean,在 xml 的每个 bean 中加入 propetry。
1 2 3 | < bean id = "quartzScheduler" class = "org.springframework.scheduling.quartz.SchedulerFactoryBean" > < property name = "exposeSchedulerInRepository" value = "true" /> </ bean > |
访问链接:域名/monitoring,如:http://localhost/monitoring
JavaMelody 缓存文件的清除:默认路径一般在 tomcat_home/temp/javamelody 中。