您的位置:首页 > 编程语言 > Java开发

JavaMelody-监控web应用

2016-06-14 12:57 429 查看


    JavaMelody 能够监测Java或Java
EE应用程序服务器,并以图表的方式显示:Java内存和Java CPU使用情况,用户Session数量,JDBC连接数,和http请求、sql请求、jsp页面与业务接口方法(EJB3、Spring、 Guice)的执行数量,平均执行时间,错误百分比等。图表可以按天,周,月,年或自定义时间段查看。

         1、下载

         1)直接下载: https://github.com/javamelody/javamelody/releases/download/1.50.0/javamelody-1.50.0.zip,打开下载即可

         2)如果使用Maven,那么在pom中加入下面的引用即可

<dependency>
<groupId>net.bull.javamelody</groupId>
<artifactId>javamelody-core</artifactId>
<version>1.59.0</version>
</dependency>
<dependency>
<groupId>org.jrobin</groupId>
<artifactId>jrobin</artifactId>
<version>1.5.9</version>
</dependency>

注意:

要使用JDK1.7,使用JDK1.6有bug会OOM

Bean的配置其实就是net/bull/javamelody/monitoring-spring.xml里面的配置,可以到javamelody.jar看源码配置文

<bean id="monitoringAdvisor" class="net.bull.javamelody.MonitoringSpringAdvisor">
<property name="pointcut">
<bean class="net.bull.javamelody.MonitoredWithAnnotationPointcut"/>
</property>
</bean>

<bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator">
<property name="proxyTargetClass" value="true"/>
</bean>

<bean id="springDataSourceBeanPostProcessor" class="net.bull.javamelody.SpringDataSourceBeanPostProcessor">
</bean>


2、配置XML。

         1)  修改contextConfigLocation,改为:

[html] view
plain copy

 





<context-param>  

    <param-name>contextConfigLocation</param-name>  

    <param-value>  

            classpath:net/bull/javamelody/monitoring-spring.xml  

            classpath:config/spring-*.xml</param-value>  

</context-param>  

即,添加了monitoring-spring.xml文件。
         2)   在第一个Filter之前加上JavaMelody的Filter配置,确保JavaMelody的Filter第一个被执行

[html] view
plain copy

 





<!-- javamelody===begin -->  

<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>  

<!-- javamelody===end -->  

         3、和struts2集成

        1)在struts-common.xml中加入以下代码:
 

[html] view
plain copy

 





<package name="default" extends="struts-default" >  

    <interceptors>  

        <interceptor name="monitoring" class="net.bull.javamelody.StrutsInterceptor"/>            

        <interceptor-stack name="myStack">  

            <interceptor-ref name="monitoring"/>  

            <interceptor-ref name="defaultStack"/>  

        </interceptor-stack>  

    </interceptors>  

    <default-interceptor-ref name="myStack"/>  

</package>  

        2)将struts-模块名.xml中的extends改为default,  即:

[html] view
plain copy

 





<package name="qx-module" namespace="/module" extends="default">  

        4、和Spring集成

        1)在spring-common.xml中添加以下代码:

[html] view
plain copy

 





<bean id="facadeMonitoringAdvisor" class="net.bull.javamelody.MonitoringSpringAdvisor">  

    <property name="pointcut">  

        <bean class="org.springframework.aop.support.JdkRegexpMethodPointcut">  

            <property name="pattern" value="mgr.*.*.service" />  

        </bean>  

    </property>  

</bean>  

        5、监控实体

         在实体的persistence.xml文件最前面加入红色语句(必须用JavaMelody1.5及以上),如:

[html] view
plain copy

 





<persistence-unit name="gxpt-qx-entity" transaction-type="JTA" >  

        <provider>net.bull.javamelody.JpaPersistence</provider>  

        <jta-data-source>java:/MySqlDS</jta-data-source>  

        <properties>   

            <!-- <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/> -->  

            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>  

            <property name="hibernate.hbm2ddl.auto" value="update" />  

            <property name="hibernate.show_sql" value="true" />  

        </properties>  

    </persistence-unit>  

         6、查看javaMelody

         访问的目录后加/javamelody ,如http://localhost:8080/应用名/monitoring
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息