JAMon监控web工程方法的调用性能

JAMon简介

JAMon的全名是:Java Application Monitor。它是一个小巧的,免费的,高性能的,线程安全的性能监测工具。

它可以用来测定系统的性能瓶颈,也可以用来监视用户和应用程序之间的交互情况。 

Jamon主要是用来检测jee的应用程序。

 

JAMon集成到项目中

假设现在有一个项目名为bookShop,目录结构如下:

bookshop

  java resources

    src

      com.allen.bookshop

        filter

          PageMonFilter

  webContent

    jamon

    WEB-INF

      web.xml 

 

1.到官网去下载两个包:jamon.rar和jamon-sample.rar

http://sourceforge.net/projects/jamonapi/files/

jamon.rar里面有源码和api。

jamon-sample.rar里面有基本示例。

解压jamon-sample.rar,把解压后的文件jamon直接拷贝到webContent下,具体文件如下图:

JAMon监控web工程方法的调用性能

 

2.把解压jamon-sample.rar后jamon文件里的webContent下的lib下的jar包,拷贝到自己工程的lib下。

JAMon监控web工程方法的调用性能

 

3.新建一个PageMonFilter类,如上目录结构:

import java.io.IOException;



import javax.servlet.FilterChain;

import javax.servlet.FilterConfig;

import javax.servlet.ServletException;

import javax.servlet.ServletRequest;

import javax.servlet.ServletResponse;

import javax.servlet.http.HttpServletRequest;



import com.jamonapi.JAMonFilter;

import com.jamonapi.MonKeyImp;

import com.jamonapi.Monitor;

import com.jamonapi.MonitorFactory;



public class PageMonFilter extends JAMonFilter

{

    private static final long serialVersionUID = 5746197114960908454L;



    private FilterConfig filterConfig = null;



    public void init( FilterConfig filterConfig ) throws ServletException

    {

        this.filterConfig = filterConfig;

    }



    public void destroy()

    {

        this.filterConfig = null;

    }



    public void doFilter( ServletRequest request, ServletResponse response,

            FilterChain filterChain ) throws IOException, ServletException

    {

        Monitor allPages = MonitorFactory.start( new MonKeyImp(

                "jammon.webui.allPages", getURI( request ), "ms." ) );

        Monitor monitor = MonitorFactory.start( getURI( request ) );



        try

        {

            filterChain.doFilter( request, response );

        } 

        finally

        {

            monitor.stop();

            allPages.stop();

        }

    }



    protected String getURI( ServletRequest request )

    {

        if ( request instanceof HttpServletRequest )

        {

            return ((HttpServletRequest)request).getRequestURI();

        } else

        {

            return "Not an HttpServletRequest";

        }

    }

}

 

4.在web.xml上增加如下代码:

    <filter>

        <filter-name>JAMonFilter</filter-name>

        <filter-class>com.allen.bookshop.filter.PageMonFilter</filter-class>

    </filter>

    <filter-mapping>

        <filter-name>JAMonFilter</filter-name>

        <url-pattern>/*</url-pattern>

    </filter-mapping>

 

5.增加jamon_bean.xml文件, 用于配置你要监听哪些类。action方法不用配置,默认会监听。

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:osgi="http://www.springframework.org/schema/osgi"

    xmlns:tx="http://www.springframework.org/schema/tx"

    xsi:schemaLocation="

         http://www.springframework.org/schema/beans

         http://www.springframework.org/schema/beans/spring-beans.xsd

         http://www.springframework.org/schema/osgi

         http://www.springframework.org/schema/osgi/spring-osgi.xsd

         http://www.springframework.org/schema/tx

         http://www.springframework.org/schema/tx/spring-tx-2.0.xsd ">



    <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">

        <property name="beanNames">

            <list>

                <value>bookshopService</value>

            </list>

        </property>

        <property name="interceptorNames">

            <list>

                <value>jamonInterceptor</value>

            </list>

        </property>

    </bean>

    

    <bean id="jamonInterceptor" class="org.springframework.aop.interceptor.JamonPerformanceMonitorInterceptor">

</bean>

</beans>

 

6.在log4j.properties中添加如下配置:

log4j.logger.org.springframework.aop.interceptor.JamonPerformanceMonitorInterceptor = TRACE

 

重新启动工程。

至此,配置完成,现在可以访问http://localhost:8080/bookshop/jamon/menu.jsp访问jamon了

    

你可能感兴趣的:(Web)