JavaMelody-监控web应用

    JavaMelody 能够监测JavaJava 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
  在CODE上查看代码片 派生到我的代码片
  1. <context-param>  
  2.     <param-name>contextConfigLocation</param-name>  
  3.     <param-value>  
  4.             classpath:net/bull/javamelody/monitoring-spring.xml  
  5.             classpath:config/spring-*.xml</param-value>  
  6. </context-param>  

即,添加了monitoring-spring.xml文件。

         2)   在第一个Filter之前加上JavaMelody的Filter配置,确保JavaMelody的Filter第一个被执行

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <!-- javamelody===begin -->  
  2. <filter>  
  3.            <filter-name>monitoring</filter-name>  
  4.            <filter-class>net.bull.javamelody.MonitoringFilter</filter-class>  
  5.    </filter>  
  6.    <filter-mapping>  
  7.            <filter-name>monitoring</filter-name>  
  8.            <url-pattern>/*</url-pattern>  
  9.    </filter-mapping>  
  10.    <listener>  
  11.            <listener-class>net.bull.javamelody.SessionListener</listener-class>  
  12.    </listener>  
  13. <!-- javamelody===end -->  
         3、和struts2集成

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

 
[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <package name="default" extends="struts-default" >  
  2.     <interceptors>  
  3.         <interceptor name="monitoring" class="net.bull.javamelody.StrutsInterceptor"/>            
  4.         <interceptor-stack name="myStack">  
  5.             <interceptor-ref name="monitoring"/>  
  6.             <interceptor-ref name="defaultStack"/>  
  7.         </interceptor-stack>  
  8.     </interceptors>  
  9.     <default-interceptor-ref name="myStack"/>  
  10. </package>  
        2)将struts-模块名.xml中的extends改为default,  即:

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <package name="qx-module" namespace="/module" extends="default">  

        4、和Spring集成

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

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <bean id="facadeMonitoringAdvisor" class="net.bull.javamelody.MonitoringSpringAdvisor">  
  2.     <property name="pointcut">  
  3.         <bean class="org.springframework.aop.support.JdkRegexpMethodPointcut">  
  4.             <property name="pattern" value="mgr.*.*.service" />  
  5.         </bean>  
  6.     </property>  
  7. </bean>  

        5、监控实体

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

[html]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. <persistence-unit name="gxpt-qx-entity" transaction-type="JTA" >  
  2.         <provider>net.bull.javamelody.JpaPersistence</provider>  
  3.         <jta-data-source>java:/MySqlDS</jta-data-source>  
  4.         <properties>   
  5.             <!-- <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle10gDialect"/> -->  
  6.             <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>  
  7.             <property name="hibernate.hbm2ddl.auto" value="update" />  
  8.             <property name="hibernate.show_sql" value="true" />  
  9.         </properties>  
  10.     </persistence-unit>  

         6、查看javaMelody

         访问的目录后加/javamelody ,如http://localhost:8080/应用名/monitoring


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值