> ## Documentation Index
> Fetch the complete documentation index at: https://docs.germainux.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Tomcat Observability

> Monitor the availability, performance, capacity, errors, and operational health of Apache Tomcat and the Java applications running within it.

Components
[`Engine`](https://docs.germainux.com/main/germain-ux-engine)
[`RUM JS`](https://docs.germainux.com/main/germain-ux-rum-js)

Availability
2017.2

> [card] [Logs and Errors](#logs-and-errors)
>
> Categorize Tomcat log failures

> [card] [Java Transaction and Code Monitoring](#java-transaction-and-code-monitoring)
>
> Code-level request profiling

> [card] [Collection Methods](#collection-methods)
>
> Combine monitoring techniques

> [card] [Alerts and Automation](#alerts-and-automation)
>
> Guardrails for production actions

**Apache Tomcat Observability**

Monitor the availability, performance, capacity, errors, and operational health of Apache Tomcat and the Java applications running within it.

GermainUX combines Tomcat and JVM metrics, application transactions, code-level tracing, logs, infrastructure telemetry, Real User Monitoring, synthetic transactions, analytics, and automation to help teams understand what failed, why it failed, who was affected, and what action should be taken.

## Business Outcomes

GermainUX helps teams:

* Improve application availability
* Improve application performance
* Reduce resolution time
* Prevent capacity-related incidents
* Detect regressions
* Prioritize high-impact issues
* Detect problems proactively
* Automate diagnostics and approved remediation

## Tomcat Availability

Monitor:

* Tomcat process and service availability
* HTTP and HTTPS connector availability
* Application and endpoint availability
* Tomcat uptime
* Unexpected restarts
* Startup and shutdown errors

> [accordion] Show all 10
>
> * Cluster-member availability
> * Load-balancer accessibility
> * TLS certificate validity
> * Synthetic application availability

Process availability alone does not confirm that an application is usable. Combine service monitoring with HTTP validation or synthetic user scenarios when appropriate.

## Web Application Monitoring

For applications deployed in Tomcat, GermainUX can monitor available information such as:

* Application availability and status
* Context path
* Request volume
* Response time
* HTTP status codes
* Application errors

> [accordion] Show all 12
>
> * Active sessions
> * Session creation and expiration
> * Failed deployments
> * Application reloads
> * Slow or failed transactions
> * Release and deployment changes

The information available depends on JMX configuration, application instrumentation, logs, and accessible Tomcat management interfaces.

## Connector and Request Processing

Monitor Tomcat connector activity, including:

* Request count
* Error count
* Processing time
* Bytes received and sent
* Current threads
* Busy threads

> [accordion] Show all 9
>
> * Maximum threads
> * Thread-pool utilization
> * Active connections, when exposed

A high busy-thread count is not necessarily an incident. Analyze it together with maximum threads, response time, error rate, traffic, downstream dependencies, and the duration of the condition.

## JVM Health

Monitor JVM metrics exposed through the configured monitoring source, including:

* Heap memory
* Non-heap memory
* Memory-pool utilization
* Garbage-collection count
* Garbage-collection duration
* Live threads

> [accordion] Show all 13
>
> * Daemon threads
> * Peak thread count
> * Loaded and unloaded classes
> * Process CPU
> * JVM uptime
> * File-descriptor utilization, when exposed
> * JVM arguments and runtime information, when authorized

## Thread Analysis

Thread monitoring can help identify:

* Connector thread-pool saturation
* Blocked threads
* Waiting threads
* Increasing thread counts
* Deadlocks, when exposed by the JVM
* Threads consuming excessive CPU
* Requests waiting on databases or external services
* Long-running application activity

Detailed thread and method analysis requires the appropriate JVM access or GermainUX Code Profiler instrumentation.

## JDBC Connection Pools

When Tomcat-managed data sources expose the required metrics, GermainUX can monitor:

* Active connections
* Idle connections
* Maximum pool size
* Connection-pool utilization
* Connection wait time
* Exhausted pools

> [accordion] Show all 9
>
> * Abandoned or long-held connections
> * Connection creation failures
> * Connection validation failures

Database monitoring can be added to help determine whether a delay originates in Tomcat, the connection pool, SQL execution, or the database server.

## HTTP Sessions

Depending on the application and Tomcat configuration, monitor:

* Active sessions
* Session creation rate
* Session expiration
* Rejected sessions
* Maximum active sessions
* Average session duration
* Maximum session duration
* Session changes after a release or traffic increase

Avoid collecting session identifiers or session contents unless explicitly required and approved.

## Logs and Errors

Monitor accessible Tomcat and application logs, including:

* Catalina logs
* Host Manager logs
* Manager logs
* Application logs
* Access logs
* Garbage-collection logs
* Startup and shutdown logs

GermainUX can detect and categorize conditions such as:

* Application exceptions
* Deployment failures
* Out-of-memory errors
* Connector and protocol errors
* Database connection failures
* Authentication and authorization failures

> [accordion] Show all 11
>
> * Thread and resource warnings
> * Class-loading errors
> * Repeated HTTP failures
> * Application startup problems
> * Unexpected restarts

## Java Transaction and Code Monitoring

Deploy GermainUX Code Profiler when code-level visibility is required.

Depending on the application and instrumentation, GermainUX can analyze:

* Servlet and application transactions
* Java method execution
* Cumulative execution time
* Exclusive execution time
* Exceptions
* Outbound HTTP requests

> [accordion] Show all 13
>
> * Database calls
> * SQL execution
> * Integration calls
> * Thread activity
> * Transaction relationships
> * Slow code paths
> * Application and framework activity

This helps identify whether a slow request is caused by application code, SQL, an external service, thread contention, or another dependency.

## Transaction Performance Comparison

When analyzing a slow or failed Tomcat application transaction, use Comparison to compare its performance with another execution of the same transaction, such as the fastest, slowest, most recent, first seen, or last seen.

Comparison can reveal:

* Differences in execution time for the same Tomcat operation
* Which steps, servlet requests, or database queries caused the slowdown
* Performance differences between successful and failed Tomcat transactions
* Errors or bottlenecks affecting Java workflows running in Tomcat
* Potential root causes of transaction performance degradation

This helps pinpoint why a Tomcat transaction is slower or failing, identify the underlying bottlenecks, and accelerate resolution to improve application availability and performance.

More details on [**Transaction Performance Comparison**](https://docs.germainux.com/main/4-analysis-dashboard.md#comparison-of-bad-vs-good).

## Real User Monitoring

For browser-based applications hosted by Tomcat, deploy GermainUX RUM JS to monitor:

* User sessions
* Pages and navigation
* User interactions
* Page response time
* Interaction response time
* JavaScript and browser errors

> [accordion] Show all 11
>
> * Slow or failed network requests
> * Browser freezes
> * User feedback
> * Business-process activity
> * Session Replay

When appropriate correlation data is available, GermainUX can associate browser activity with the related Tomcat request, Java execution, database activity, and downstream services.

## Infrastructure Monitoring

Extend Tomcat monitoring to the hosting environment.

Depending on the platform, GermainUX can monitor:

* CPU
* Memory
* Disk and filesystem utilization
* Disk I/O
* Network activity
* Processes and services

> [accordion] Show all 12
>
> * Open files and file descriptors
> * Containers and pods
> * Container restarts
> * Resource limits
> * Load balancers
> * Endpoint availability

Supported environments can include:

* Linux
* Windows
* AIX
* Docker
* Kubernetes

## Dependency Monitoring

Tomcat applications frequently depend on:

* Databases
* APIs
* Messaging systems
* Identity providers
* External services

GermainUX can correlate Tomcat performance with separately monitored dependencies such as:

* Oracle Database
* MySQL
* IBM DB2
* ActiveMQ
* Kafka
* IBM MQ

## Collection Methods

GermainUX can combine multiple monitoring methods:

| Method | Coverage |
| - | - |
| JMX | Tomcat connectors, thread pools, applications, sessions, data sources, and JVM metrics exposed through MBeans |
| GermainUX Code Profiler | Java transactions, methods, exceptions, database calls, and integrations |
| Logs | Tomcat, access, application, JVM, and operating-system events |
| Local or Remote System Monitoring | Host resources, processes, services, filesystems, and network |
| HTTP Monitoring | Website, application, endpoint, and certificate availability |
| RUM JS | Real-user experience, browser activity, business processes, and Session Replay |
| Synthetic Transactions | Proactive application and workflow validation |
| Prometheus | Tomcat, JVM, application, container, or platform metrics exposed through an approved exporter |

## Automated Analytics

GermainUX can identify and prioritize conditions such as:

* Performance regressions
* Abnormal error increases
* Thread-pool saturation
* JVM memory anomalies
* Garbage-collection anomalies
* Slow applications

> [accordion] Show all 13
>
> * Slow endpoints
> * Slow transactions
> * Dependency-related delays
> * New application exceptions
> * Servers behaving differently from their peers
> * Changes following a release
> * Conditions affecting the greatest number of users or transactions

## Alerts and Automation

Configure alerts for conditions such as:

* Tomcat unavailable
* Critical application unavailable
* HTTP endpoint failure
* Increased HTTP errors
* Slow application response
* Busy threads approaching maximum capacity

> [accordion] Show all 16
>
> * JVM heap pressure
> * Garbage-collection pressure
> * Deadlock
> * Abnormal thread growth
> * JDBC pool exhaustion
> * Increased application exceptions
> * Failed deployment
> * Disk or filesystem capacity risk
> * Failed synthetic transaction
> * Performance degradation after a release

GermainUX Automation can also execute approved actions such as:

* Collect Tomcat status
* Collect JVM status
* Capture recent logs
* Collect a diagnostic snapshot
* Retest an endpoint
* Create or update an incident

> [accordion] Show all 10
>
> * Call an authorized HTTP endpoint
> * Execute an approved script
> * Run a remote diagnostic command through SSH
> * Validate recovery

Production actions such as restarting Tomcat, redeploying an application, terminating threads, or changing configuration should be explicitly authorized and protected by operational safeguards.

## Get More Information

GermainUX can help determine which monitoring, analytics and automation capabilities are appropriate for your Tomcat environment.

[Contact GermainUX Support](https://docs.germainux.com/main/support.md).

## Get Help

> [card] [Contact GermainUX Support](https://docs.germainux.com/main/support.md)
>
> The GermainUX team helps you get up and running faster, empower your team, turn data into actionable insights, and optimize performance to deliver measurable business outcomes.

> [card] Can't find what you need?
>
> Search all GermainUX docs with **Ctrl + K**, or use the feedback buttons at the bottom of this page to tell us what is missing.

The content of this document is proprietary to GERMAIN SOFTWARE.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.