EKS Java Application Monitoring
Overview
Instrument Java/JVM applications running on Amazon EKS with CloudWatch Application Signals for automatic service map generation, latency tracking, and error rate monitoring — with zero code changes.
Application Signals uses the OpenTelemetry Java agent auto-instrumentation to capture:
- HTTP request/response metrics (latency, error rate, throughput)
- Downstream dependency calls (databases, other services, AWS SDKs)
- Distributed traces correlated with metrics
- JVM runtime metrics (heap, GC, threads)
Application Signals correlates telemetry across metrics, traces, logs, real-user monitoring, and synthetic monitoring, providing a standardized dashboard of the most critical metrics — volume, availability, latency, faults, and errors — for each instrumented service without custom dashboard work.
A key capability is Service Level Objective (SLO) management. After instrumentation, you define SLOs for availability and latency directly in the CloudWatch console. Application Signals tracks performance against these objectives and raises alarms when an SLO is at risk, giving you a clear view of whether services meet their business-level commitments.
Auto-instrumentation injects the OpenTelemetry agent into application pods at startup via the OpenTelemetry Operator's Instrumentation custom resource — no code changes, no rebuild, no redeployment of your application image. While this guide focuses on Java/JVM workloads (including Kotlin and other JVM languages), Application Signals supports Python, .NET, and Node.js as well, each with a corresponding language annotation.
For containerized environments, Application Signals integrates with Container Insights to correlate application-level metrics with infrastructure signals such as pod CPU, memory pressure, and node capacity, letting you determine whether a latency spike originates from application logic or infrastructure resource contention.