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

来源:互联网 发布:厘米换算英尺英寸c语言 编辑:程序博客网 时间:2024/06/04 23:20
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文件中加入
<dependency>    <groupId>net.bull.javamelody</groupId>    <artifactId>javamelody-core</artifactId>    <version>1.40.0</version></dependency>

同样的效果

b、修改web.xml文件
加入以下代码
<context-param>       <param-name>contextConfigLocation</param-name>       <param-value>           classpath:org/noahx/test/application-context.xml           [color=red]classpath:net/bull/javamelody/monitoring-spring.xml[/color]       </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的性能
<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这种格式就可以进入主面板查看结果。

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

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
<context-param><param-name>contextConfigLocation</param-name><param-value>classpath:net/bull/javamelody/monitoring-spring.xml,classpath:applicationContext.xml,classpath:serviceContext.xml,classpath:actionContext.xml</param-value></context-param>

serviceContext.xml和actionContext.xml合并显示
<bean id="dicAreaService" class="com.utils.service.DicCommonService" parent="baseService"/><!-- 下面是在actionContext.xml的配置 --><bean id="dicCommonAction" class="com.utils.action.DicCommonAction">   <property name="dicAreaService">   <ref bean="dicAreaService"/>   </property></bean>

原文地址:http://my.oschina.net/noahxiao/blog/75463
阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 无线路由器接无线路由器 我不知道的英文 有意思的英文常识 怎样可以 应该怎么办 不理我了怎么办 要怎样 真的吗英文 就这样吧英文 历史悠久的英文 断网了怎么办 赤峰指纹锁 接受的英文 心里忧郁怎么办 常识的英文 你知道了吗英文 不知道怎么办 很简单的英文 优美的英文 怎么样致富 想你了怎么办 几乎不英文 成功的的英文 也就是说英文 经验的英文 在左边的英文 第六的英文 咋的了 大众polo怎么样 为什么我的 为什么呢英文 沉香什么价格 至于的英文 怎样的英文 乘船的英文 更好的自己英文 频繁的英文 我不知道怎么办 明白吗的英文 承受的英文 温州指纹锁