Configure Monitoring for Apache Tomcat

⚙️ Configuring Monitoring for Apache Tomcat with GermainUX

Configure GermainUX to collect and analyze Apache Tomcat availability, performance, JVM, connector, application, session, data-source, log, transaction, and user-experience data.

📂 1. Open the Tomcat Wizard

Go to:

Germain Workspace > Left Menu > Wizards > Tomcat

Select or create the Tomcat monitoring configuration.

image-20260901-235341.png

🖥️ 2. Select the Monitored Server

Select or create the server hosting Apache Tomcat.

Confirm that the server is associated with the correct:

Item

1

Application

2

Environment

3

Host

4

Server role

image2020-11-12_16-15-50.png

📡 3. Select the Monitoring Node and Engine

Select the GermainUX node and Engine that will execute the Tomcat monitoring components.

Choose an Engine that can reach:

Target

Tomcat

JMX

Required HTTP/HTTPS endpoints

Accessible log files

Supporting services

🔗 4. Configure Tomcat Connection Settings

Configure the Tomcat connection information required by the selected monitoring methods.

Depending on the environment, this can include:

Field

Host

HTTP port

HTTPS port

JMX port

Applications

Credentials

Timeout

The exact fields depend on the Tomcat deployment and GermainUX version.

⚙️ 5. Configure JMX

When JMX monitoring is required, configure the JMX connection.

Provide or select:

Item

Host

Port

JMX service URL

Credentials

Required security settings

Use JMX to collect available metrics for:

Metric Area

Connectors

Thread pools

Applications

Sessions

Data sources

JVM

🔌 6. Configure Connector Monitoring

Configure the connector metrics required for your environment.

Depending on the exposed Tomcat MBeans, monitor:

Metric

Request count

Error count

Processing time

Bytes received

Bytes sent

Current threads

Busy threads

Maximum threads

Active connections

Use thread-pool utilization together with traffic, response time, and error rate when defining thresholds.

☕ 7. Configure JVM Monitoring

Configure JVM metrics such as:

Metric

Heap memory

Non-heap memory

Memory pools

Garbage collection

Threads

Loaded classes

CPU

JVM uptime

File descriptors, when exposed

Use the Java monitoring configuration when deeper JVM monitoring is required.

👥 8. Configure Session Monitoring

When the required Tomcat session metrics are exposed, monitor:

Session Metric

Active sessions

Session creation

Session expiration

Rejected sessions

Maximum sessions

Average duration

Maximum duration

Avoid collecting individual session contents or identifiers unless explicitly required.

🗄️ 9. Configure JDBC Connection-Pool Monitoring

When Tomcat-managed data sources expose the required metrics, configure:

Metric

Active connections

Idle connections

Maximum connections

Connection-pool utilization

Connection wait time

Pool exhaustion

Abandoned connections

Connection failures

Monitor the underlying database separately when deeper database root-cause analysis is required.

📃 10. Configure Tomcat and Application Logs

Configure monitoring for applicable log paths.

Examples include:

Log

Catalina

Manager

Host Manager

Application

Access

Garbage collection

Startup and shutdown

Configure patterns or rules for relevant conditions such as:

Condition

Exceptions

Out-of-memory errors

Deployment failures

Database connection failures

Connector errors

Authentication failures

Resource warnings

Class-loading errors

Startup failures

image2020-11-12_16-23-53.png

🔧 11. Configure Java Code Monitoring — Optional

When GermainUX Code Profiler is deployed, configure the required Java transaction and method monitoring.

Depending on the instrumentation, analyze:

Area

Transactions

Methods

Exceptions

SQL

Database calls

Outbound HTTP requests

Integration calls

Execution time

Use profiling selectively according to troubleshooting and performance-analysis requirements.

🌐 12. Configure Real User Monitoring — Optional

For browser-based Tomcat applications, configure the appropriate UX Monitoring Profile.

Go to:

Germain Workspace > Left Menu > Analytics > UX Monitoring Profiles

Configure:

Feature

RUM JS

Session Replay

User interactions

Page performance

Network monitoring

JavaScript errors

Browser errors

Privacy

Masking

Exclusions

Consent

Retention

When appropriate correlation information is available, GermainUX can associate browser activity with backend Tomcat and Java transactions.

🚀 13. Configure HTTP Monitoring — Optional

Configure HTTP or HTTPS monitoring for critical Tomcat applications and endpoints.

Validate:

Check

Availability

Response time

HTTP status

Expected response

TLS certificate validity

Process availability alone should not be used as proof that the application itself is usable.

🤖 14. Configure Synthetic Transactions — Optional

Create synthetic application workflows using GermainUX RPA Bot Recorder.

Examples:

Open Application → Authenticate → Execute Transaction → Verify Success

Configure:

Scenario Item

Scenario

Monitoring location

Schedule

Timeout

Expected result

Failure conditions

Alerting

📈 15. Configure Prometheus Monitoring — Optional

When Tomcat, JVM, application, container, or platform metrics are exposed through an approved Prometheus-compatible exporter, configure GermainUX Prometheus Metrics Monitoring.

Use only metrics exposed by an approved exporter.

⏱️ 16. Configure Monitoring Frequency

Configure how frequently each monitor should execute.

Use intervals appropriate for:

Consideration

Application criticality

Required detection time

Infrastructure size

Collection overhead

Environment

Not every Tomcat metric requires the same collection frequency.

🏅 17. Configure KPIs

Configure the KPIs relevant to the monitored environment.

Typical areas include:

KPI

Tomcat availability

Application availability

HTTP response time

HTTP errors

Connector activity

Thread-pool utilization

JVM memory

Garbage collection

JVM threads

HTTP sessions

JDBC connection pools

Application exceptions

Java transactions

Infrastructure resources

🚩 18. Configure SLAs

Configure thresholds according to the architecture and normal workload.

Examples include:

✅ Availability

Tomcat or Critical Application = Unavailable

⏳ Response Time

Application Response Time > Approved Threshold

warning HTTP Errors

HTTP Error Rate > Expected Baseline

⚙️ Thread Pool

Busy Threads Approaching Maximum

💾 JVM

Sustained Heap Utilization > Accepted Range

♻️ Garbage Collection

GC Duration > Accepted Range

👥 Sessions

Active Sessions Approaching Capacity

🔌 JDBC Pool

Active Connections Approaching Maximum

📜 Logs

Critical Error Detected

🛠️ Infrastructure

Resource Condition Threatens Application Availability

Use sustained-duration requirements and environment-specific baselines to avoid alerts caused by brief, harmless spikes.

🤖 19. Configure Rules and Automated Analytics

Use GermainUX Rules and analytics to identify conditions such as:

Condition

Performance regression

Error increase

Thread-pool saturation

JVM memory anomaly

Garbage-collection anomaly

Slow endpoint

Slow transaction

New application exception

Server behaving differently from peers

Post-release degradation

Dependency affecting application performance

🔔 20. Configure Alerts and Watches

Configure alerts for conditions requiring attention.

Examples:

Tomcat Unavailable → Alert Operations

Application Response Time Above SLA → Notify Application Team

Thread Pool Near Capacity → Notify Engineering

JDBC Pool Exhaustion → Alert Application and Database Teams

New Application Exception → Notify Development

Synthetic Transaction Failure → Alert Support

Notifications can be delivered through configured integrations such as email, SMS, Slack, or ServiceNow.

⚙️ 21. Configure Automated Actions

Configure only customer-approved operational actions.

Examples include:

Action

Collect Tomcat status

Collect JVM status

Capture recent logs

Capture diagnostic data

Retest an endpoint

Create an incident

Update an incident

Execute an approved script

Run an approved SSH command

Validate recovery

Actions capable of restarting Tomcat, redeploying applications, terminating threads, or modifying production configuration require explicit authorization and operational safeguards.

📅 22. Configure Maintenance Windows

Define maintenance windows for:

Purpose

Planned deployments

Tomcat restarts

Infrastructure maintenance

Application releases

Use maintenance windows to suppress expected alerts during approved maintenance activity.

📊 23. Configure Dashboards

Create dashboards for different audiences.

⚙️ Tomcat Operations

Monitor:

Metric

Availability

Requests

Response time

HTTP errors

Connectors

Thread pools

Applications

🧠 JVM

Monitor:

Metric

Heap

Garbage collection

Threads

CPU

Runtime health

🚤 Application Performance

Monitor:

Metric

Transactions

Exceptions

SQL

External services

Slow code paths

📊 Capacity

Monitor:

Capacity Metric

Threads

Sessions

JDBC connections

Heap

CPU

Memory

Disk

🧑‍💻 User Experience

Monitor:

Metric

User sessions

Interaction performance

Browser errors

Backend transactions

Business processes

Session Replay

✅ 24. Validate the Configuration

After configuration, verify:

  1. Tomcat process and service availability.

  2. HTTP and HTTPS connector status.

  3. Selected JVM metrics.

  4. Selected Tomcat metrics.

  5. Required applications are monitored.

  6. Thread-pool metrics are available when configured.

  7. Session metrics are available when configured.

  8. JDBC-pool metrics are available when configured.

  9. Tomcat and application logs are collected.

  10. Controlled application transactions are captured.

  11. Java transaction tracing works when Code Profiler is deployed.

  12. Browser-to-backend correlation works when RUM JS is deployed.

  13. Synthetic transactions execute correctly.

  14. Alerts work as expected.

  15. Maintenance windows suppress expected alerts.

  16. Approved automated actions work safely.

    Apache Tomcat Monitoring data on Aggregated Dashboard

🚑 Troubleshooting

⛔ No Tomcat Metrics

Verify:

Check

Engine is online.

Tomcat server is reachable.

Monitoring component is enabled.

JMX is available when required.

Credentials are valid.

Required ports are reachable.

Selected monitor is executing.

❌ JMX Connection Fails

Verify:

Check

Details

JMX host

JMX host

Port

Port

Service URL

Service URL

Firewall

Firewall

Authentication

Authentication

TLS

TLS

Credentials

Credentials

Tomcat/JVM JMX configuration

Tomcat/JVM JMX configuration

🔍 Some Metrics Are Missing

The metrics available depend on:

Factor

Details

Tomcat version

Tomcat version

Java version

Java version

Exposed MBeans

Exposed MBeans

Enabled interfaces

Enabled interfaces

Permissions

Permissions

Application architecture

Application architecture

Verify that the expected MBean and metric are exposed by the target environment.

📃 Logs Are Missing

Verify:

Check

Details

Log path

Log path

File permissions

File permissions

Engine access

Engine access

File-monitor configuration

File-monitor configuration

Log rotation behavior

Log rotation behavior

Parser or rule configuration

Parser or rule configuration

🐌 Application Is Slow but Tomcat Metrics Look Normal

Correlate the request with:

Correlation Area

Details

Java transactions

Java transactions

SQL

SQL

Database performance

Database performance

External HTTP calls

External HTTP calls

Messaging

Messaging

JVM

JVM

Infrastructure

Infrastructure

Network

Network

A slow Tomcat-hosted application does not necessarily mean Tomcat itself is the bottleneck.

ℹ️ Get More Information

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

Contact GermainUX Support.

Component: Engine, RUM JS

Feature Availability: 2017.2