系统监控工具JavaMelody使用案例

官方简介:
JavaMelody 能够监测Java或Java EE应用程序服务器,并以图表的方式显示:Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求、sql请求、jsp页面与业务接口方法(EJB3、Spring、 Guice)的执行数量,平均执行时间,错误百分比等。图表可以按天,周,月,年或自定义时间段查看。

好了,说了那么多,配图实例一下,这是添加完成应用的一个统计。
1.png
2.png
3.png

看着的确是难看了那么一点点,但是很全面啊,各种统计报表都在里面了。

好了,看了那么多,我们下面来说一下如何配置到应有中去。

源码下载: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>

4.png

用户指南:https://github.com/javamelody/javamelody/wiki/UserGuide

qrcode_for_gh_bf7a27ade681_258.jpg

作者: 小柒

出处: https://blog.52itstyle.com

分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大家指正,共同进步。

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 如有问题, 可邮件(345849402@qq.com)咨询。