官方简介: JavaMelody 能够监测Java或Java EE应用程序服务器,并以图表的方式显示:Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求、sql请求、jsp页面与业务接口方法(EJB3、Spring、 Guice)的执行数量,平均执行时间,错误百分比等。图表可以按天,周,月,年或自定义时间段查看。
好了,说了那么多,配图实例一下,这是添加完成应用的一个统计。
看着的确是难看了那么一点点,但是很全面啊,各种统计报表都在里面了。
好了,看了那么多,我们下面来说一下如何配置到应有中去。
源码下载:http://pan.baidu.com/s/1skEEvnf
1.下载的源码文件夹里面 ,有一个javamelody.war,这个需要部署到你的web服务器下面,这里我使用的是tomcat。
2.然后将 jrobin-1.5.9.1.jar 和 javamelody.jar 放入需要被监控应用的lib下面。
3.web.xml里面需要加入如下代码(注意一定要放到所有过滤器的最上面,否则无法添加应用):
<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>
<async-supported>true</async-supported>和<dispatcher>ASYNC</dispatcher>需要,以支持Servlet API的3.0异步请求。
可选参数配置: 排除某个目录下的监控配置。
<init-param>
<param-name>url-exclude-pattern</param-name>
<param-value>/static/.*</param-value>
</init-param>
日志打印参数配置。
<init-param>
<param-name>log</param-name>
<param-value>true</param-value>
</init-param>
4.如何监控Struts2操作
如果来监视应用程序包含了一些Struts 2的动作,一个柜台可以为动作执行的统计数据来创建。为此,必须添加Struts拦截器。
在Struts xml文件中,添加以下行(或在默认堆栈中添加“监视”拦截器):
<package name="default" extends="struts-default" >
<interceptors>
<interceptor name="monitoring" class="net.bull.javamelody.StrutsInterceptor"/>
<interceptor-stack name="myStack">
<interceptor-ref name="monitoring"/>
<interceptor-ref name="defaultStack"/>
</interceptor-stack>
</interceptors>
<default-interceptor-ref name="myStack"/>
</package>
5.如何监控数据库 只需要在web.xml中导入一下配置即可:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:net/bull/javamelody/monitoring-spring-datasource.xml
</param-value>
</context-param>
monitoring-spring-datasource.xml 文件在jar包的绝对路径下面。 项目使用的是struts2+spring+hibernae,网上很多说如何监控sql配置hibernate的,但是都没有配置成功,可能是方法不对吧。 这是网上给出的案例:
<property name="hibernate.connection.driver_class">net.bull.javamelody.JdbcDriver</property> <!-- 注意这里 -->
<property name="hibernate.connection.driver">com.mysql.jdbc.Driver</property> <!-- 还要注意这里 -->
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/myschema</property>
<property name="hibernate.connection.username">myuser</property>
<property name="hibernate.connection.password">mypassword</property>
6.如何监控spring 在xml中配置一下代码:
<!-- spring sql 监控 -->
<bean id= "facadeMonitoringAdvisor" class="net.bull.javamelody.MonitoringSpringAdvisor" >
<property name ="pointcut" >
<bean class="org.springframework.aop.support.JdkRegexpMethodPointcut" >
<property name ="pattern" value="com.acts.web.*.service.*" /><!--正则表达式-->
</bean>
</property>
</bean>
用户指南:https://github.com/javamelody/javamelody/wiki/UserGuide