Wiki source code of Monitoring

Version 8.1 by Vincent Massol on 2011/05/19

Hide last authors
Vincent Massol 6.1 1 {{box cssClass="floatinginfobox" title="**Contents**"}}
2 {{toc/}}
3 {{/box}}
4
Vincent Massol 1.1 5 There are 2 solutions you can use to monitor a running XWiki instance:
Silvia Macovei 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:
Vincent Massol 1.1 8 ** Monitor the Velocity macro caches
Vincent Massol 3.3 9 ** Monitor the JBossCache caches XWiki is using to cache Document data, Users & Groups data and more
Vincent Massol 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
Vincent Massol 1.1 12
Vincent Massol 2.3 13 {{info}}
Silvia Macovei 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.
Vincent Massol 2.3 15 {{/info}}
16
Vincent Massol 1.1 17 = JMX Console =
18
Vincent Massol 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.
Vincent Massol 1.1 20
Vincent Massol 4.1 21 == Velocity Cache Monitoring ==
Vincent Massol 1.1 22
Vincent Massol 4.1 23 JConsole examples showing the Velocity Cache monitoring:
24
Vincent Massol 1.1 25 image:jconsole1.png
26
27 image:jconsole2.png
28
Vincent Massol 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
Vincent Massol 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

Get Connected