Wiki source code of Monitoring
Version 8.1 by Vincent Massol on 2011/05/19
Hide last authors
author | version | line-number | content |
---|---|---|---|
![]() |
6.1 | 1 | {{box cssClass="floatinginfobox" title="**Contents**"}} |
2 | {{toc/}} | ||
3 | {{/box}} | ||
4 | |||
![]() |
1.1 | 5 | There are 2 solutions you can use to monitor a running XWiki instance: |
![]() |
3.2 | 6 | * [[Use a Profiler>>http://dev.xwiki.org/xwiki/bin/view/Community/Profiling]]. This has the advantage of providing advanced information, but has the drawback of being resource intensive and thus slowing the XWiki instance. It also requires a special startupscript. |
7 | * Starting with XWiki Enterprise 2.4M2 we're now using the [[JMX Technology>>http://en.wikipedia.org/wiki/Java_Management_Extensions]] to provide runtime monitoring of XWiki instances. The following features are currently available: | ||
![]() |
1.1 | 8 | ** Monitor the Velocity macro caches |
![]() |
3.3 | 9 | ** Monitor the JBossCache caches XWiki is using to cache Document data, Users & Groups data and more |
![]() |
8.1 | 10 | ** (starting with XE 3.1) Monitor the JGroups channel and protocols (when the XWiki Cluster feature is turned on) |
11 | ** (starting with XE 3.1) Monitor the Logback Logging configuration and change it | ||
![]() |
1.1 | 12 | |
![]() |
2.3 | 13 | {{info}} |
![]() |
3.2 | 14 | XWiki also has a [[Monitor Plugin>>platform:AdminGuide.Logging#HActivatingtheXWikimonitoringfeature]] that you can use to monitor execution times. However this plugin is going to be deprecated in the future and replaced by the JMX technology. |
![]() |
2.3 | 15 | {{/info}} |
16 | |||
![]() |
1.1 | 17 | = JMX Console = |
18 | |||
![]() |
2.2 | 19 | Since JMX is a standard you can use [[any JMX-compatible monitoring console>>http://stackoverflow.com/questions/1744900/what-is-the-best-or-most-commonly-used-jmx-console-client]] (most application servers provide a web-based JMX console). There's also such a console called [[JConsole>>http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html]] and which is bundled by default in the Java Runtime you're using. To start it, simply execute the ##jconsole## executable. |
![]() |
1.1 | 20 | |
![]() |
4.1 | 21 | == Velocity Cache Monitoring == |
![]() |
1.1 | 22 | |
![]() |
4.1 | 23 | JConsole examples showing the Velocity Cache monitoring: |
24 | |||
![]() |
1.1 | 25 | image:jconsole1.png |
26 | |||
27 | image:jconsole2.png | ||
28 | |||
![]() |
4.1 | 29 | == JGroups Monitoring == |
30 | |||
31 | JConsole example showing the JGroups monitoring: | ||
32 | |||
33 | image:jgroups.png | ||
34 | |||
35 | Interesting things to do on JGroups in the JMX console: | ||
36 | * Change the log level on the protocols to enable logging | ||
37 | * Disconnect a node from the cluster and reconnect it | ||
38 | |||
![]() |
7.1 | 39 | = Tomcat JMX Proxy Servlet = |
40 | |||
41 | Tomcat has a JMX Proxy Servlet bundled in their ##manager## webapp (see [[here>>http://tomcat.apache.org/tomcat-6.0-doc/manager-howto.html]] and [[here>>http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html]] for more details on Tomcat and JMX]]. | ||
42 | |||
43 | Here's some useful URLs to use the JMX Servlet Proxy to list and set JGroups Protocol Levels: | ||
44 | * To display the current log level for the TCPPING protocol: {{{http://localhost:8080/manager/jmxproxy?qry=jgroups:type=protocol,cluster=event,protocol=TCPPING}}} | ||
45 | * To set the log level to ##info## for the TCPPING protocol: {{{http://localhost:8080/manager/jmxproxy?set=jgroups:type=protocol,cluster=event,protocol=TCPPING&att=Level&val=info}}} | ||
46 | |||
47 |