When active threads approach maximum threads, Tomcat cannot accept new requests, causing HTTP 503 errors and increased latency. This often manifests during traffic spikes or slow request processing.
Sudden increases in tomcat_error or tomcat_servlet_error indicate application failures, potentially related to recent deployments, configuration changes, or external service degradation. These often correlate with specific HTTP status codes in access logs.
When JVM heap usage exceeds 85-90%, frequent garbage collections occur, consuming CPU and causing request processing delays. This creates a feedback loop where GC pauses prevent request completion, further increasing heap pressure.
Sudden spikes in tomcat_max_time or tomcat_servlet_max_time that don't correlate with increased traffic suggest inefficient code, slow external dependencies, or infrastructure issues affecting specific request paths.
High CPU wait time in apache_cpu_time suggests I/O or network bottlenecks rather than compute limitations. This often indicates slow disk operations, network latency to databases, or issues with external service dependencies.