javamelody使用
前提
我的项目是一个Spring+Spring MVC+Mybatis
的项目,用war 发布,所以我们是加入javamelody
的jar包的方式集成javamelody。其他方式暂不介绍。
设置
在pom中增加需要的依赖
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26<!-- javamelody-core ,需要的-->
<dependency>
<groupId>net.bull.javamelody</groupId>
<artifactId>javamelody-core</artifactId>
<version>1.79.0</version>
</dependency>
<!-- 可选用来导出pdf -->
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>2.1.7</version>
<exclusions>
<exclusion>
<artifactId>bcmail-jdk14</artifactId>
<groupId>bouncycastle</groupId>
</exclusion>
<exclusion>
<artifactId>bcprov-jdk14</artifactId>
<groupId>bouncycastle</groupId>
</exclusion>
<exclusion>
<artifactId>bctsp-jdk14</artifactId>
<groupId>bouncycastle</groupId>
</exclusion>
</exclusions>
</dependency>配置web.xml
如果应用server兼容servlet3.0 ,这一步可以忽略。否则在web.xml的自己定义的servlet之前加上1
2
3
4
5
6
7
8
9
10
11
12
13
14<filter>
<filter-name>javamelody</filter-name>
<filter-class>net.bull.javamelody.MonitoringFilter</filter-class>
<async-supported>true</async-supported>
</filter>
<filter-mapping>
<filter-name>javamelody</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>ASYNC</dispatcher>
</filter-mapping>
<listener>
<listener-class>net.bull.javamelody.SessionListener</listener-class>
</listener>启动访问
http://<host>/<context>/monitoring
就可以看到监控信息。这个时候可以发现图标http
和图标jsp
都已经有了统计信息,按照访问热度排序好了。但是图标sql
还是空白的,我们接着设置监控sql。监控sql
我们使用的spring定义的dataSource,所以数据源能被spring后置处理器监控。1
2
3
4
5
6
7
8
9<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:net/bull/javamelody/monitoring-spring.xml
classpath:context/services.xml
classpath:context/data-access-layer.xml
/WEB-INF/applicationContext.xml
</param-value>
</context-param>在contextConfigLocation中引入
net/bull/javamelody/monitoring-spring.xml
文件,就可以监控sql了。如果monitoring-spring.xml
中的配置与aop冲突,就引入classpath:net/bull/javamelody/monitoring-spring-datasource.xml
。
5 . 当然这个工具不仅仅有这些功能,还有更多的功能我暂时用不到,就不去研究了,有需要的自己查看官方的文档。