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)

  • 相关阅读:
    【转】busybox分析——arp设置ARP缓存表中的mac地址
    【转】OpenWRT开发自定义应用方法
    10大白帽黑客专用的 Linux 操作系统
    原始套接字
    正则表达式
    如何解决虚拟机中的ubuntu系统方向键与退格键不能正常使用的问题
    数组 slice方法和splice方法的区别
    数组去重等数组实例
    JS实现表单全选以及取消全选实例
    JS实现表格隔行变色
  • 原文地址:https://www.cnblogs.com/qitian1/p/6463408.html
Copyright © 2011-2022 走看看