通過javamelody監控web應用的性能指標
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下載下來
中找到javamelody-1.40.0.jar下載下來
手動配置時還需要JRobin這個依賴,在 http://www.jrobin.org上下載
把這兩這jar文件copy到你的lib中
把這兩這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 classpath:net/bull/javamelody/monitoring-spring.xml </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這種格式就可以進入主面板查看結果。
本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!