Amazon EKS — Observability
You can’t fix what you can’t see. EKS observability covers metrics, logs, and traces — the three pillars that give you full visibility into cluster and application health.
Topics Covered
| # | Topic | Description |
|---|---|---|
| 1 | CloudWatch Container Insights | AWS-native metrics and dashboards |
| 2 | Logging with Fluent Bit | Centralized log collection |
| 3 | Prometheus & Grafana | Open-source metrics and visualization |
| 4 | AWS Distro for OpenTelemetry | Unified telemetry collection |
| 5 | AMP & AMG | Managed Prometheus and Grafana |
| 6 | Hands-On Lab | Set up full observability stack |
| 7 | Practice Questions | Test your observability knowledge |
Observability Tools Comparison
| Tool | Type | Managed | Cost | Best For |
|---|---|---|---|---|
| CloudWatch Container Insights | Metrics + Logs | Fully | Per metric/log ingested | AWS-native, low effort |
| Fluent Bit | Log forwarder | Self (DaemonSet) | Free (agent) + destination costs | Flexible log routing |
| Prometheus + Grafana | Metrics + Dashboards | Self | Free (compute costs only) | K8s-native, custom metrics |
| AMP + AMG | Metrics + Dashboards | Fully | Per metric sample ingested | Managed Prometheus at scale |
| ADOT | Telemetry collector | Self (DaemonSet) | Free (agent) + destination costs | Unified metrics + traces + logs |
| X-Ray | Distributed tracing | Fully | Per trace recorded | Application tracing |
EKS Control Plane Logging
Enable control plane logs before anything else:
aws eks update-cluster-config \
--name my-cluster \
--logging '{
"clusterLogging": [{
"types": ["api", "audit", "authenticator", "controllerManager", "scheduler"],
"enabled": true
}]
}'
| Log Type | What It Captures |
|---|---|
api |
API server requests |
audit |
Who did what, when (critical for security) |
authenticator |
IAM authentication events |
controllerManager |
Controller reconciliation events |
scheduler |
Pod scheduling decisions |
Cost tip:
auditandauthenticatorare the most useful. Enable those first; add others as needed.