文档章节

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

浮躁的码农
 浮躁的码农
发布于 2015/07/30 08:48
字数 893
阅读 51
收藏 0
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文件中加入 
Xml代码  
  1. <dependency>  
  2.     <groupId>net.bull.javamelody</groupId>  
  3.     <artifactId>javamelody-core</artifactId>  
  4.     <version>1.40.0</version>  
  5. </dependency>  

同样的效果 

b、修改web.xml文件 
加入以下代码 
Xml代码  
  1. <context-param>  
  2.        <param-name>contextConfigLocation</param-name>  
  3.        <param-value>  
  4.            classpath:org/noahx/test/application-context.xml  
  5.            [color=red]classpath:net/bull/javamelody/monitoring-spring.xml[/color]  
  6.        </param-value>  
  7.    </context-param>  
  8.   
  9.    <filter>  
  10.        <filter-name>monitoring</filter-name>  
  11.        <filter-class>net.bull.javamelody.MonitoringFilter</filter-class>  
  12.    </filter>  
  13.   
  14.    <filter-mapping>  
  15.        <filter-name>monitoring</filter-name>  
  16.        <url-pattern>/*</url-pattern>  
  17.    </filter-mapping>  
  18.   
  19.    <listener>  
  20.        <listener-class>net.bull.javamelody.SessionListener</listener-class>  
  21.    </listener>  

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

c、在spring配置的xml中加入Advisor 
这样就可以监控spring bean的性能 
Xml代码  
  1. <bean id="facadeMonitoringAdvisor" class="net.bull.javamelody.MonitoringSpringAdvisor">  
  2.     <property name="pointcut">  
  3.         <bean class="org.springframework.aop.support.JdkRegexpMethodPointcut">  
  4.             <property name="patterns">  
  5.                 <array>  
  6.                     <value>org\.noahx\.test\..*</value>  
  7.                 </array>  
  8.             </property>  
  9.         </bean>  
  10.     </property>  
  11. </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这种格式就可以进入主面板查看结果。 

------------------------------------------- 分割线 以下 是本人遇到错误,望哪位大侠伸出援助之手帮小弟解决------------------------------------------ 

PS:本人测试web.xml中配置 classpath:net/bull/javamelody/monitoring-spring.xml 查看数据库JDBC和sql监控信息是总是提示失败。不配置不出错一切运行正常。 
环境: 
OS:windows XP 
JAVA:JDK1.6.0.22 
框架:Struts2+Spring2.5.6+Hibernate3.3 
错误描述: 
应用启动是报错误; 
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dicCommonAction' defined in class path resource [actionContext.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'dicAreaService' of bean class [com.utils.action.DicCommonAction]: Bean property 'dicAreaService' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter? 
相关配置文件: 
web.xml 
Xml代码  
  1. <context-param>  
  2.     <param-name>contextConfigLocation</param-name>  
  3.     <param-value>  
  4.         classpath:net/bull/javamelody/monitoring-spring.xml,  
  5.         classpath:applicationContext.xml,  
  6.         classpath:serviceContext.xml,  
  7.         classpath:actionContext.xml  
  8.     </param-value>  
  9. </context-param>  

serviceContext.xml和actionContext.xml合并显示 
Xml代码  
  1. <bean id="dicAreaService" class="com.utils.service.DicCommonService" parent="baseService"/>  
  2. <!-- 下面是在actionContext.xml的配置 -->  
  3. <bean id="dicCommonAction" class="com.utils.action.DicCommonAction">  
  4.     <property name="dicAreaService">  
  5.         <ref bean="dicAreaService"/>  
  6.     </property>  
  7. </bean>  

原文地址: http://my.oschina.net/noahxiao/blog/75463

本文转载自:

共有 人打赏支持
浮躁的码农

浮躁的码农

粉丝 71
博文 850
码字总数 154227
作品 0
松江
程序员
私信 提问
通过javamelody监控web应用的性能指标

1、问题背景 为了提升应用的性能我们可能需要做很多分析和优化。但具体从哪里优化,优化的效果是多少就难以判定了。 javamelody用嵌入式的监控方式,实时监控性能指标。如:页面相应时间,s...

NoahX
2012/08/29
0
17
JavaMelody应用监控使用指南

JavaMelody介绍 JavaMelody用于对Java应用或者应用服务器的QA以及开发环境的监控。它并不是一个模拟请求类似JMeter的压力测试工具,而是一个衡量并且计算在应用上的操作信息的工具,也就是说...

glen_xu
2015/07/23
0
0
JavaMelody 1.76.0 发布,Java 应用监控平台

JavaMelody 1.76.0 发布了,JavaMelody 是一个监控系统,目标是在 QA 和生产环境中监控 Java 或 Java EE 应用程序。 更新内容如下: You can now contribute translations for javamelody b...

h4cd
01/31
0
0
用JavaMelody来监控我们的web应用

可以在 http://code.google.com/p/javamelody/downloads/list 下载它,最新的版本发布在https://github.com/javamelody/javamelody/releases/tag/1.51.0 我下载一个javamelody-1.51.0.zip 解......

王爵nice
2014/07/24
0
3
Java项目性能监控和调优工具-Javamelody

JavaMelody能够在运行环境监测Java或Java EE应用程序服务器。并以图表的形式显示:Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求、sql请求、jsp页面与业务接口方法(...

kt431128
2014/10/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 升级中的一些常见问题

升级的时候遇到了问题了吗? 如果你想尝试重新进行升级的话,你需要首先重新恢复老的备份。不要尝试再次对 Confluence 进行升级或者在升级失败后重新启动老的 Confluence。 在升级过程中的一...

honeymoose
37分钟前
0
0
C++随笔(四)Nuget打包

首先把自己编译好的包全部准备到一个文件夹 像这样 接下来新建一个文本文档,后缀名叫.nuspec 填写内容 <?xml version="1.0"?><package xmlns="http://schemas.microsoft.com/packaging/201......

Pulsar-V
今天
2
0
再谈使用开源软件搭建数据分析平台

三年前,我写了这篇博客使用开源软件快速搭建数据分析平台, 当时收到了许多的反馈,有50个点赞和300+的收藏。到现在我还能收到一些关于dataplay2的问题。在过去的三年,开源社区和新技术的发...

naughty
今天
3
0
Python3的日期和时间

python 中处理日期时间数据通常使用datetime和time库 因为这两个库中的一些功能有些重复,所以,首先我们来比较一下这两个库的区别,这可以帮助我们在适当的情况下时候合适的库。 在Python文...

编程老陆
今天
2
0
分布式面试整理

并发和并行 并行是两个任务同时进行,而并发呢,则是一会做一个任务一会又切换做另一个任务。 临界区 临界区用来表示一种公共资源或者说是共享数据,可以被多个线程使用,但是每一次,只能有...

群星纪元
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部