通过javamelody监控web应用的性能指标

1、问题背景

为了提升应用的性能我们可能需要做很多分析和优化。但具体从哪里优化,优化的效果是多少就难以判定了。

javamelody用嵌入式的监控方式,实时监控性能指标。如:页面相应时间,spring bean方法调用时间,sql语句执行时间等很多指标。我在这就不一一列举了。

我感觉比较好的两特点是:

  • 会自动按命中次数与相应时间结合排序,这就可以知道优化哪个页面,bean方法,sql最有效果
  • 页面,bean,sql自动关联,可钻取,点页面可以看页面中调用bean方法的情况,点bean方法可以看sql情况


2、配置步骤


a、引入依赖包
下载javamelody的jar文件,官方站点  https://code.google.com/p/javamelody/ 
中找到javamelody-1.40.0.jar下载下来
手动配置时还需要JRobin这个依赖,在  http://www.jrobin.org上下载 
把这两这jar文件copy到你的lib中

如果采用maven配置
只需要在pom文件中加入
?
1
2
3
4
5
< dependency >
     < groupId >net.bull.javamelody</ groupId >
     < artifactId >javamelody-core</ artifactId >
     < version >1.40.0</ version >
</ dependency >

同样的效果

b、修改web.xml文件
加入以下代码
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
< context-param >
        < param-name >contextConfigLocation</ param-name >
        < param-value >
            classpath:org/noahx/test/application-context.xml
            classpath:net/bull/javamelody/monitoring-spring.xml
        </ param-value >
    </ context-param >
 
 
    < 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 >

spring采用org.springframework.web.context.ContextLoaderListener启动
注意filter-mapping的位置尽可能靠前,因为它来测相关请求时间
在你的spring配置文件位置中再加入classpath:net/bull/javamelody/monitoring-spring.xml这个配置

c、在spring配置的xml中加入Advisor
这样就可以监控spring bean的性能
?
1
2
3
4
5
6
7
8
9
10
11
< bean id = "facadeMonitoringAdvisor" class = "net.bull.javamelody.MonitoringSpringAdvisor" >
     < property name = "pointcut" >
         < bean class = "org.springframework.aop.support.JdkRegexpMethodPointcut" >
             < property name = "patterns" >
                 < array >
                     < value >org\.noahx\.test\..*</ value >
                 </ array >
             </ property >
         </ bean >
     </ property >
</ bean >

org\.noahx\.test\..*为正则表达式,javamelody会自动匹配bean中的类名,来决定都监控哪些bean的哪些方法
我是监控了org.noahx.test下所有定义的spring bean的所有方法

d、sql与数据源监控
如果你的dateSource定义在spring中,javamelody会自动发现不需要额外配置。

e、运行测试
程序运行起来和原来并没有变化,还是和原来一样,可以多点一点你的页面。因为javamelody需要采集访问时的性能数据。然后你可以通过javamelody的url来查看你应用的性能指标。
http://host:port/你应用的上下文/monitoring。上下文后加monitoring这种格式就可以进入主面板查看结果。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值