Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Add a permalink. Fix formatting and links.

Permalink to this page:

Table of Contents

Table of Contents
excludeTable of Contents

Monitoring Tomcat

Monitoring of a running Tomcat instance can be done in several ways, but observing a Tomcat instance via JMX beans will give you the best information available through standard interfaces (i.e. JMX). You can find information about connecting to Tomcat via JMX in the Tomcat Users' Guide. Rather than repeating that information here (which is mostly about configuration, connection, etc.), please go read the official documentation.


Similar to the HeapMemoryUsage MXBean described above, this one will give you information about the "PermGen" heap generation. Depending upon your garbage collection and other memory settings, you might have different MXBeans under java.lang:type=MemoryPool with different names. You should inspect each one to determine if they would be useful for you to inspect.

Tomcat Information

Version Warning

These JMX bean names are accurate for the current version of Tomcat 7 (7.0.37 at the time of this writing). If you are using a different version of Tomcat, you may have to adjust the names of the beans identified on this page.

Thread Usage

  • JMX Bean: Catalina:type=Executor,name=[executor name]

  • Attributes: poolSize, activeCount


Not using an Executor

  • JMX Bean: Catalina: type=ThreadPool,name="[depends]"

  • Attributes: maxThreads, connectionCount


Request Throughput

  • JMX Bean: Catalina:type=GlobalRequestProcessor,name="[depends]"

  • Attributes: bytesSent, bytesReceived, errorCount, maxTime, requestCount

  • Operations: resetCounters


  • JMX Bean: Catalina:type=Manager,context=[context name],host=[hostname]

  • Attributes: activeSessions, sessionCounter, expiredSessions

JNDI DataSource

  • JMX Bean: Catalina:type=DataSource,context=[context name],host=[hostname],class=javax.sql.DataSource,name="[JNDI name]"

  • Attributes: numActive, numIdle 


Another way to watch a Tomcat application is to use an external monitoring tool.

MoSKito, is an open source solution by Anotheria, is a multi-purpose, non-invasive, interval-based monitoring system kit that collects, stores and provides instant analysis of a Tomcat application’s performance and behavior data.


Other plug-in-based monitoring software like Nagios or Icinga may need some help interacting with Tomcat's JMXProxyServlet. tools/ is a Perl script that can be used with these tools to monitor Tomcat via the JMXProxyServlet.