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 中。