zoukankan      html  css  js  c++  java
  • 一个Web报表项目的性能分析和优化实践(七):性能监测工具JavaMelody

    简介

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

    图表可以按天,周,月,年或自定义时间段查看。

    使用步骤


    1.下载JavaMelody。


    下载地址:http://code.google.com/p/javamelody/downloads/list
    javamelody-1.16.0.jar,jrobin-1.5.9.1.jar
    (版本号可能会不同)


    2.将Jar包拷贝到项目的WEB-INF的lib目录。
    3.在web.xml下增加配置。

     

    <filter>
                 <filter-name>monitoring</filter-name>
                    <filter-class>net.bull.javamelody.MonitoringFilter</filter-class>
                </filter>
            <filter-mapping>
                    <filter-name>monitoring</filter-name>
                    <url-pattern>/*</url-pattern>
            </filter-mapping>
            <listener>
                    <listener-class>net.bull.javamelody.SessionListener</listener-class>
            </listener>


      
    4.重新启动项目,访问http://localhost:8080/monitoring/ 即可看到监控图表。

    Jamelody图表

    安全问题
    按照上述的配置,不需要登录就可以访问JavaMelody的页面。
    实际项目中,常见需求是“登录用户,才可以查看”。
    定制方法如下:
    web.xml的Filter配置
    <filter-class>packageName.ProjectMonitoringFilter</filter-class></filter>

    自定义的Filter  

    public class ProjectMonitoringFilter extends net.bull.javamelody.MonitoringFilter{
    
     @Override
     public void doFilter(ServletRequest req, ServletResponse response,
       FilterChain chain) throws IOException, ServletException {
      HttpServletRequest request = (HttpServletRequest) req;
      HttpSession session = request.getSession();
      User user = (User) session.getAttribute(Constant.LOGIN_USER);
      String uri = ((HttpServletRequest) request).getRequestURI();
      if(user == null && uri.indexOf("/monitoring") != -1){
       return;
      }
      super.doFilter(request, response, chain);
     }
     
    }

    实践出真知

     本来想自己总结的,发现别人总结的比我好,所以就借鉴了许多别人写的。
     
     我觉得“借鉴”和“复制”别人的并不可耻,因为绝大部分技术都是别人开发的,我们只是用。
    那些技术的优点、正确的使用方法,基本是固定的了,我们只有学习的份。

        这类工具的使用方法,网上一大堆。
     不过,自己总结下,加深下理解,今后也有自己的参考。
     看自己总结的,更亲切,更可读,出错的可能性更小。

    参考资料
    1.百度百科 JavaMelody
    2.http://zhumeng8337797.blog.163.com/blog/static/10076891420123270148914/

    原文参见http://FansUnion.cn/articles/3182(小雷网-FansUnion.cn)

  • 相关阅读:
    linux下shell显示-bash-4.1#不显示路径解决方法
    update chnroute
    An error "Host key verification failed" when you connect to other computer by OSX SSH
    使用dig查询dns解析
    DNS被污染后
    TunnelBroker for EdgeRouter 后记
    mdadm详细使用手册
    关于尼康黄的原因
    Panda3d code in github
    Python实例浅谈之三Python与C/C++相互调用
  • 原文地址:https://www.cnblogs.com/qitian1/p/6463409.html
Copyright © 2011-2022 走看看