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下,具体文件如下图:

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

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了

    

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

时间: 2024-08-16 10:24:56

JAMon监控web工程方法的调用性能的相关文章

使用maven的插件(tomcat)启动web工程方法

前言:现在很多公司的web项目都是使用SpringBoot来搭建的,但是有一个国产开源框架JFinal(快速开发框架)使用的人数慢慢也变多了,对于集中式开发的小项目,使用JFinal框架很快捷(真的).基于JFinal框架,有一个EOVA系统平台,使用起来也很方便.好像跑偏了,略略······!因为SpringBoot集成了Tomcat和Jetty ,所以项目很容易启动,而对于使用JFinal框架的项目呢,其实就需要自己启动第三方web容器(Tomcat),使用maven插件就可以实现. ---

监控web服务方法

本地监控:端口  netstat -anltup | grep 80  nmap ip -p 80 telnet ip:80 lsof -i :80|wc -l 进程 ps -ef| grep nginx |wc -l     pgrep nginx 服务 curl -o /dev/null -I -s -w "%{http_code}" http://www.baidu.com wget --spider --timeout=100 --tries=3 http://www.baid

JAMon监控SQL执行时间

JAMon监控web工程方法的调用性能 http://www.cnblogs.com/zfc2201/p/3786365.html 这往往篇文章主要告诉大家如何监控web方法调用时间,在这个基础这上,如果我们想要监控sql的执行时间,需要增加如下的配置: 1.增加一个类,假设是com.allen.bookshop.common.MonitorDataSource import java.io.PrintWriter; import java.sql.Connection; import java

在javaEE下学习web(在eclipse中开发动态的WEB工程,servlet的环境搭建,及servlet的一些方法)

一个简便的方法实现javaee版的eclipse开发动态的WEB工程(javaWEB项目)1.把开发选项切换到javaEE2. 可以在window->shou view 中找到package explorer并把其拖到开发区的左边 (Tomcat环境搭建在这不多说)3.在servers面板中新建Tomcat服务器,一定要关联到Tomcat安装的根目录4.新建一个Dynamic Web Project.其中Target Runtime需选择Tomcat6.0(3)5.开发java WEB应用6.可

zabbix如何监控WEB应用性能

HTTP服务目前最流行的互联网应用之一,如何监控服务的健康状态对系统运维来说至关重要.   Zabbix本身提供了对WEB应用程序的监控,比如监控WEB程序的Download Speed,Response Time和Response Code等性能指标,但是配置起来比较繁琐和复杂.下面通过 python pycurl模块来获取HTTP响应时间,下载速度,状态吗等性能指标.然后通过zabbix trapper的方式来监控WEB应用的性能.   Zabbix trapper监控是客户端收集监控数据,

Activity生命周期方法的调用顺序工程与测试日志

下面为测试activity的方法的执行顺序   工程与测试资源地址 android工程 AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.finalizetest"

利用Zabbix监控Web性能和可用性

怎么利用Zabbix监控web性能和可用性呢? 我们这边分为几个步骤:打开网站.登陆.登陆验证.退出,一共4个小step,看实例. 检测流程 1. 打开网站:如果http code为200,并且响应的html中包含Zabbix SIA表示打开成功(zabbix页面有这个标示) 2. 登陆后台:post用户名和密码到index.php,如果响应200,那表示post成功.并且通过正则表达式从响应的html中匹配sid,这个sid也就是一个宏变量,退出可以使用到 3. 验证登陆:打开首页,检索htm

Eclipse web工程创建步骤及两种部署方法

1.Eclipse创建web工程步骤 (1)参考1(2)参考2 2.web工程两种部署方法 (1)部署方法同1中所述 (2)部署到Tomcat Server的webapps目录下的方法

Swift使用WKWebView在iOS应用中调用Web的方法详解

这篇文章主要介绍了Swift使用WKWebView在iOS应用中调用Web的方法详解,使用WKWebView便等于使用和Safari中相同的JavaScript解释器,用来替代过去的UIWebView,需要的朋友可以参考下 自从iOS8开始,Apple引入了WKWebView欲代替UIWebView.相比而言,WKWebView消耗内从更少,功能也更加强大.让我们来看看WKWebView怎么使用吧! 0.初始化(1)首先需要引入WebKit库 复制代码代码如下: #import <WebKit/