企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# (七):性能监测工具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](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/](http://localhost:8080/monitoring/) 即可看到监控图表。 [![](image/569357debac20.gif)](http://fansunion.cn/wp-content/uploads/2013/11/Jamelody%E5%9B%BE%E8%A1%A8.gif) ### 安全问题 按照上述的配置,不需要登录就可以访问JavaMelody的页面。 实际项目中,常见需求是“登录用户,才可以查看”。 定制方法如下: web.xml的Filter配置 packageName.ProjectMonitoringFilter 自定义的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);    }       }   ~~~ ### 实践出真知 本来想自己总结的,发现别人总结的比我好,所以就借鉴了许多别人写的。 我觉得“借鉴”和“复制”别人的并不可耻,因为绝大部分技术都是别人开发的,我们只是用。 那些技术的优点、正确的使用方法,基本是固定的了,我们只有学习的份。 这类工具的使用方法,网上一大堆。 不过,自己总结下,加深下理解,今后也有自己的参考。 看自己总结的,更亲切,更可读,出错的可能性更小。