Application Server Monitoring

Application server monitoring tracks the health, performance, and resource utilization of the application server that hosts and runs your business logic. It helps ensure optimal throughput, identify bottlenecks in application components, and maintain stability under load.

Why do we monitor Application Server?
  • To ensure application server can handle expected concurrent users.
  • To identify performance bottlenecks in threads, memory, sessions, and pools.
  • To detect errors, slow transactions, and application issues early.
  • To validate scalability, stability, and reliability of the application.
What do we monitor?
JVM &
Memory
Threads
Sessions
Connection
Pools
Transactions
Errors &
Exceptions
Garbage &
Uptime

Application Server Architecture (Under Test)

Monitoring the application server within the overall system.

Clients
Web / Mobile Users
Load Balancer
Nginx / HAProxy
Web Server
IIS / Nginx
Application Server
WebLogic / JBoss / WebSphere
Tomcat / WildFly
Application (WAR / EAR)
Database Server
Oracle / MySQL /
SQL Server
External Services
APIs / Third Party
Monitoring Agents
Collect metrics, logs and health from application server

Key Application Server Metrics

JVM Heap Usage (Used %)
58.6 %
Threshold: < 80%
JVM Non-Heap Usage (Used %)
32.4 %
Threshold: < 70%
Active Threads
215
Threshold: < 500
Active Sessions
1,250
Threshold: < 5,000
Response Time (Avg)
285 ms
Threshold: < 1000 ms

Important Counters

Deployed
Applications
12
Total Applications
Running
Applications
12
Applications in Running State
Datasource
Pools
8
Configured Data Sources
JDBC
Connections (In Use)
45 / 200
In Use / Max
Thread Pool (In
Use)
215 / 500
In Use / Max
Error Rate
0.35 %
Errors in Last 5 Min

Detailed Application Server Metrics

Category Metric Description Why it Matters Threshold /
Recommendation
JVM & Memory
Heap Memory Usage Used heap memory percentage High usage can cause
OutOfMemoryError
< 80%
Non-Heap Memory Usage Used non-heap memory percentage Includes metaspace, code cache, etc. < 70%
GC Time (%) Time spent in Garbage Collection High GC time impacts performance < 10%
GC Count Number of garbage collection events Frequent GC can impact throughput Monitor trend
Threads
Active Threads Currently executing threads High threads may cause contention < 80% of Max
Peak Threads Highest number of threads used Indicates load handling capacity Monitor trend
Thread Pool Queue Length Threads waiting in queue High queue length increases response time < 20
Sessions
Active Sessions Currently active user sessions High sessions consume memory Based on capacity
Session Creation Rate Sessions created per second High rate may impact resources Monitor trend
Expired/Invalid Sessions Expired or invalid sessions count Indicates configuration or usage issue Monitor trend
Connection Pools
JDBC Connections (In Use) Currently used DB connections High usage can exhaust connections < 80% of Max
JDBC Connections (Idle) Idle connections in pool Too high may waste resources Monitor trend
Pool Wait Time (Avg) Average time to get connection High wait time slows application < 100 ms
Transactions
Transactions / Sec Number of transactions per second Indicates application throughput Based on baseline
Long Running Transactions Transactions running > threshold Can lock resources and degrade performance 0
Transaction Response Time (Avg) Average time to complete transaction High response time impacts users < 1000 ms
Errors & Exceptions
Application Errors Total application errors Indicates issues in business logic 0
HTTP Error Rate 4xx and 5xx error percentage High rate affects user experience < 1%
Deployment & Uptime
Server Uptime Application server running time Indicates stability High uptime expected
Application Uptime Application running time Ensures application availability High uptime expected
Deployment Count Number of deployments Frequent deployments may cause issues Monitor trend

Alert Thresholds (Examples)

Metric Warning Critical Action
Heap Memory Usage 70% 80% Investigate memory usage
Active Threads 70% of Max 85% of Max Thread dump & Analysis
JDBC Connections (In Use) 70% of Max 85% of Max Check DB & Pool config
Response Time (Avg) 800 ms 1000 ms Investigate slow
transactions
Error Rate 1% 2% Check logs & errors
Transaction Time (Avg) 1000 ms 2000 ms Optimize slow queries

Best Practices

Set realistic thresholds based on capacity and historical data.

Monitor trends, not just single values.

Correlate with Server, Database, and Network metrics.

Use alerts to detect issues early and act proactively.

Regularly review logs and thread dumps.

Effective application server monitoring ensures high availability, optimal performance, and a better end-user experience.