系统监控工具JavaMelody使用案例

官方简介: 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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小樱的经验随笔

Java A+B(个人模版)

Java A+B: 1 import java.io.*; 2 import java.util.*; 3 import java.math.BigInt...

26960
来自专栏小樱的经验随笔

HDU 2549 壮志难酬

壮志难酬 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java...

284100
来自专栏IT技术精选文摘

Java线程上下文切换

?

33080
来自专栏xingoo, 一个梦想做发明家的程序员

漫谈Java IO之普通IO流与BIO服务器

今天来复习一下基础IO,也就是最普通的IO。 网络IO的基本知识与概念 普通IO以及BIO服务器 NIO的使用与服务器Hello world Netty入...

28950
来自专栏从零开始学自动化测试

Selenium2+python自动化51-unittest简介

前言 熟悉java的应该都清楚常见的单元测试框架Junit和TestNG,这个招聘的需求上也是经常见到的。python里面也有单元测试框架-unittest,...

36960
来自专栏Albert陈凯

Java8时间类使用方法

特定日期的取得 LocalDateTime nowLocalDateTime = LocalDateTime.now(); L...

25540
来自专栏IT技术精选文摘

Java线程总述与概念

?

33960
来自专栏小樱的经验随笔

Java学习笔记【持续更新】

一个简单的java程序如下: class Sakura {   public static void main(String[] arges)   {     ...

44050
来自专栏从零开始学自动化测试

Selenium2+python自动化19-单选和复选框

最近发生了一些不愉快的事,其中缘由就不多说了,小编以后在这个公众号继续给大家更新,在过去的一年里感谢大家的一路支持,当然最感动的是能留下来的小伙伴,是你...

49580
来自专栏从零开始学自动化测试

新手学习selenium路线图(老司机亲手绘制)

前言: 最近群里有不少小白,想入手selenium,但是一直没找到学习路线,还没入门就迷路了,于是小编亲手绘制了一幅学习路线图。希望能帮助小白快速入门,帮助已经...

45360

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励