简介
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/ 即可看到监控图表。
安全问题
按照上述的配置,不需要登录就可以访问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)