web应用性能监控:javamelody

前言

JavaMelody是一款可以监控Java应用(比如项目war,ear包)以及应用服务器(比如Tomcat或Jboss weblogic等等)。可以通过图表给出监控数据。

源码地址请戳这里
近期有web性能监控方面的需求,特此整理一下使用说明以利于备忘

简介

JavaMelody是一个监控Java或者JavaEE应用的工具。它并不会模拟用户请求而是监控用户的请求并且形成图表报告。
运行条件:

  1. java 1.6或者更高
  1. servlet 2.4或者更高
  2. 依赖 JRobin v1.5.9生成图表
  3. 依赖iText v2.1.7生成PDF文件
  4. 支持多种语言,包括中文

起步

  1. 修改maven配置文件
        
            net.bull.javamelody
            javamelody-core
            1.56.0
           
  1. 修改web.xml文件,增加如下的内容
    
    
        javamelody
        net.bull.javamelody.MonitoringFilter
        true
    
    
        javamelody
        /*
        REQUEST
        ASYNC
    
    
        net.bull.javamelody.SessionListener
    
  1. 启动服务,在通过web查看监控结果
http:////monitoring

输出PDF报告

  1. 修改maven配置文件,增加iText依赖
        
            net.bull.javamelody
            javamelody-core
            1.56.0
        
        
        
            com.lowagie
            itext
            2.1.7
            
                
                    bcmail-jdk14
                    bouncycastle
                
                
                    bcprov-jdk14
                    bouncycastle
                
                
                    bctsp-jdk14
                    bouncycastle
                
            
        
  1. 修改web.xml文件
    
    
        javamelody
        net.bull.javamelody.MonitoringFilter
    
    
        javamelody
        /servlet1/*
    
    
        javamelody
        /servlet2/*
    
    
        javamelody
        /monitoring
        REQUEST
        ASYNC      
    
    
        net.bull.javamelody.SessionListener
    
  1. 运行服务器,在报告头部有PDF文档的输出链接,可以输出PDF报告

spring mvc整合

我们配置spring mvc的时候,在web.xml中会配置一个监听,这个监听回使web应用在读取web.xml时,加载指定的spring文件。

    
        org.springframework.web.context.ContextLoaderListener
    

加载指定的javamelody配置文件

    
        contextConfigLocation
        
            classpath:applicationContext.xml
            classpath:net/bull/javamelody/monitoring-spring-datasource.xml
        
    

注意: 如果发生AOP之类的有冲突,就换一个配置文件:monitoring-spring.xml

报告发邮件

可以定期:日,周,月给指定的邮箱发运行报告。我的环境是在Tomcat7下进行配置

  1. 必须的Jar:放置在%TOMCAT_HOME%\lib目录下

activation-1.1.1.jar
javax.mail-1.5.2.jar

  1. 配置server.xml文件,在Host节点下进行如下配置
        
                 
              
              
                            
        
  1. 测试
    有一个测试命令可以使用,在浏览器访问如下地址
/monitoring?action=mail_test

附加

在加载monitoring-spring配置文件的时候有可能发生AOP冲突的问题。这个问题主要是由于生产代理的方式冲突导致。
AOP的实现最简单的将就是生成一个代理对象来处理请求,在代理对象中织入切面逻辑。
Spring提供了两种方式来生成代理对象: JDKProxy和Cglib,在实际使用中具体使用那种方式?默认的策略是如果目标类是接口,则使用JDK动态代理技术,否则使用Cglib来生成代理。
我们可以在Spring的配置文件中配置使用那种代理模式

    
    
    
    

两种代理的区别

  1. cglib:基于类的代理
  2. JDK标准:基于接口的代理

你可能感兴趣的:(web应用性能监控:javamelody)