码迷,mamicode.com
首页 > 编程语言 > 详细

Web应用测试监控执行时间 -- JavaSimon

时间:2015-02-07 17:32:43      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:javasimon   系统监控   

在系统性能调优时以前介绍过使用jmeter-plugins和VisualVM监控系统的总体性能,有时候要找出瓶颈便需要了解某些具体方法调用消耗的时间。VisualVm可以做到,不过如果做profiler就太耗资源了。个人觉得JavaSimon是一个很不错的选择。不仅可以方便的监控数据层,业务层,Web层的各自访问时间,还提供了Web页面查看统计数据和系统告警通知功能,非常不错。
描述一下基于Spring的Web系统中如何使用JavaSimon。

1. Web.xml 开启Web层统计,Web页面查看以及如何通知告警

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
        <filter>
        <!-- simon统计filter -->
                <filter-name>simon-filter</filter-name>
                <filter-class>org.javasimon.javaee.SimonServletFilter</filter-class>
                <!-- optional -->
                <init-param>
                        <param-name>prefix</param-name>
                        <param-value>com.cloud.web</param-value>
                </init-param>
                <!-- optional basic plain-text console -->
                <init-param>
                        <param-name>console-path</param-name>
                        <param-value>/simon-filter</param-value>
                </init-param>
                <!-- optional, 需要报告的阀值 -->
                <init-param>
                        <param-name>report-threshold-ms</param-name>
                        <param-value>1000</param-value>
                </init-param>
                <!-- optional, 告警 - 显示到标准输出,可以自己定制报告 -->
                <init-param>
                        <param-name>request-reporter-class</param-name>
                        <param-value>org.javasimon.javaee.reqreporter.StandardRequestReporter</param-value>
                </init-param>
                <!-- optional, StopwatchSource instance -->
                <init-param>
                        <param-name>stopwatch-source-props</param-name>
                        <param-value>includeHttpMethodName=ALWAYS</param-value>
                </init-param>
        </filter>

        <!-- Web Console 显示Web统计信息,访问/simon-console 查看-->
        <filter>
                <filter-name>simon-console-filter</filter-name>
                <filter-class>org.javasimon.console.SimonConsoleFilter</filter-class>
                <init-param>
                        <param-name>url-prefix</param-name>
                        <param-value>/simon-console</param-value>
                </init-param>
        </filter>

        <!-- 大部分情况web查看console不是需要监控的,注意filter顺序 -->
        <filter-mapping>
                <filter-name>simon-console-filter</filter-name>
                <url-pattern>/*</url-pattern>
        </filter-mapping>

        <filter-mapping>
                <filter-name>simon-filter</filter-name>
                <url-pattern>/*</url-pattern>
        </filter-mapping>
</web-app>

2. Spring配置文件

注意这里只对Spring配置文件中定义的bean有效(spring-mvc中controller无效)

       <bean id="monitoringInterceptor" class="org.javasimon.spring.MonitoringInterceptor"/>

        <aop:config>
                <!-- name of the class or interface -->
                <aop:pointcut id="monitoringPointcut" expression="execution(* com.cloud.service.ServiceImpl.*(..))"/>
                <aop:advisor advice-ref="monitoringInterceptor" pointcut-ref="monitoringPointcut"/>
        </aop:config>

3. JDBC 层

直接使用simon的jdbc driver替代官方driver,或者包装datasource就可以达到目的。

可以在Web应用中查看不同层访问时间来定位系统瓶颈了。

Web应用测试监控执行时间 -- JavaSimon

标签:javasimon   系统监控   

原文地址:http://blog.csdn.net/cloud_ll/article/details/43603241

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!