Kubernetes Monitoring: A Practical Guide for Production Teams
Learn how to monitor Kubernetes in production across clusters, workloads, applications, networks, logs, traces, events, and alerts.
Kubernetes monitoring is the system you use to know whether your clusters, workloads, and applications are healthy right now. In production, that means more than watching CPU graphs. You need to know whether pods are ready, nodes have capacity, services are returning errors, DNS is failing, dependencies are slow, and recent Kubernetes changes line up with customer-impacting symptoms.
This guide is for teams building or improving production Kubernetes monitoring. It focuses on what to monitor, how the pieces fit together, and where eBPF, OpenTelemetry, logs, traces, events, and AI-assisted investigation fit into a practical workflow.
If you want the broader mental model behind metrics, logs, traces, profiles, Kubernetes state, and events, read the Kubernetes observability guide. If you are comparing vendors, start with best Kubernetes observability tools.
flowchart TB
subgraph Cluster["Kubernetes cluster"]
CP["Control plane and API"]
Nodes["Nodes"]
Pods["Pods and containers"]
Apps["Applications"]
Deps["Databases, queues, DNS, external APIs"]
end
CP --> Events["Events and resource state"]
Nodes --> InfraMetrics["Node and container metrics"]
Pods --> Logs["Logs"]
Apps --> AppTelemetry["RED metrics and traces"]
Deps --> NetworkTelemetry["Network and dependency telemetry"]
Events --> Backend["Monitoring and observability backend"]
InfraMetrics --> Backend
Logs --> Backend
AppTelemetry --> Backend
NetworkTelemetry --> Backend
Backend --> Dashboards["Dashboards"]
Backend --> Alerts["Alerts"]
Backend --> RCA["Incident investigation"]
Backend --> Deploys["Deployment verification"]What Kubernetes Monitoring Means in Production
Kubernetes monitoring is the continuous collection and evaluation of signals from your cluster and the applications running on it. A useful setup answers four questions quickly:
- Is the platform healthy? Nodes, control plane, networking, storage, quotas, and autoscaling are working.
- Are workloads healthy? Pods are scheduled, ready, within resource limits, and not restarting unexpectedly.
- Are services healthy for users? Requests are fast enough, errors are controlled, and traffic is flowing through expected dependencies.
- What changed? Deployments, ConfigMaps, Secrets, autoscaler decisions, node churn, and Kubernetes events are available when something breaks.
The mistake many teams make is treating Kubernetes monitoring as infrastructure monitoring only. Node CPU and memory matter, but they rarely explain the whole incident. A production monitoring system has to connect cluster symptoms to application symptoms and then to the change or dependency that caused them.
Monitoring vs Observability
Monitoring is the part of the system that watches known failure modes. It powers dashboards, SLOs, alerts, health checks, and on-call notification.
Observability is the broader ability to ask new questions when the known dashboards are not enough. It combines metrics, logs, traces, profiles, Kubernetes events, resource state, and deployment history so you can investigate unknown failure modes.
The two are not opposites. Good Kubernetes observability makes monitoring better because alerts carry context, dashboards show relationships, and responders can pivot from a symptom to the evidence behind it.
Kubernetes Monitoring Checklist
Use this as a practical checklist for production coverage.
| Layer | Monitor | Why it matters |
|---|---|---|
| Cluster | API server health, node readiness, allocatable capacity, storage, DNS, quotas, autoscaling | Platform issues can look like application issues until you see the cluster context |
| Workloads | Pod phase, readiness, restarts, probe failures, rollout status, replica availability, OOM kills | Pods are ephemeral, so current state alone is not enough during incidents |
| Applications | Request rate, error rate, latency, saturation, custom business metrics | User impact is usually visible at the service boundary before it is obvious in infrastructure graphs |
| Network | Service-to-service calls, DNS failures, external dependencies, ingress and egress latency, connection errors | Kubernetes incidents often hide in dependency paths rather than a single container |
| Logs | Application logs, structured error fields, container stdout/stderr, selected control plane logs | Logs explain what happened inside the process when metrics show a symptom |
| Traces | Request paths, span latency, downstream calls, failed spans, queue and database timings | Traces show where time and errors were introduced across services |
| Events and changes | Deployments, scaling events, scheduling failures, image pulls, ConfigMap changes, node changes | A timeline of changes is often the fastest route to root cause |
| Alerts | SLO burn, high error rate, latency regression, capacity risk, repeated restarts, failed rollouts | Alerts should page on user impact or imminent risk, not every noisy low-level condition |
Cluster Monitoring
Start with the platform layer. If the cluster cannot schedule pods, pull images, resolve DNS, attach volumes, or keep nodes healthy, application monitoring will show symptoms but not the underlying cause.
For Kubernetes cluster monitoring, cover these areas:
- Node health:
Readystatus, kubelet health, node pressure conditions, CPU, memory, disk, filesystem, and network saturation. - Capacity: allocatable CPU and memory, requested vs used resources, overcommitted namespaces, pod density, and headroom by node pool.
- Scheduling: pending pods, unschedulable pods, taints, tolerations, affinity rules, topology constraints, and resource quota failures.
- Storage: persistent volume claims, volume attach errors, disk pressure, storage latency, and filesystem growth.
- DNS and service discovery: CoreDNS health, DNS latency, NXDOMAIN spikes, service endpoint changes, and lookup failures from workloads.
- Control plane: API server latency and error rates, etcd health, scheduler and controller manager behavior where available.
Managed Kubernetes services often hide parts of the control plane. That is normal. Monitor the signals you can access, and make sure your application and workload telemetry still carries enough Kubernetes metadata to show when a managed control plane event affected your workloads.
Workload and Pod Monitoring
Pods are disposable by design. That makes Kubernetes resilient, but it also means incidents can disappear from the current state before responders open the dashboard. Your monitoring system should preserve workload history, not just show what exists at the moment.
Monitor these workload signals:
- Pod lifecycle: pending, running, succeeded, failed, unknown, and terminating states.
- Readiness and availability: ready replicas, unavailable replicas, readiness probe failures, and deployment progress.
- Container restarts: restart count changes, CrashLoopBackOff, ImagePullBackOff, ErrImagePull, and completed jobs that should not repeat.
- Resource pressure: CPU throttling, memory working set, memory limit usage, OOMKilled events, disk pressure, and network saturation.
- Rollouts: deployment start time, image tag, rollout duration, replica set changes, rollback events, and degraded post-deploy behavior.
- Autoscaling: HPA target metrics, scale-up and scale-down decisions, replica limits, and autoscaler lag.
The goal is not to alert on every restart. Short-lived restarts happen in real clusters. The useful alert is the one that says a workload is unavailable, repeatedly crashing, violating an SLO, or regressing after a deploy.
Application Monitoring
Cluster health does not guarantee user health. A perfectly healthy node can run a service that is returning 500s, timing out database calls, or silently dropping work from a queue.
For Kubernetes application monitoring, start with RED metrics for each service:
- Rate: requests per second, job throughput, queue consumption rate, and traffic by route or operation.
- Errors: 5xx responses, failed jobs, failed spans, rejected requests, dependency errors, and application-level exceptions.
- Duration: p50, p90, p95, and p99 latency by service, route, dependency, and customer-critical operation.
Then add saturation and domain metrics:
- CPU throttling, heap usage, garbage collection, thread pools, connection pools, queue depth, worker lag, and open file descriptors.
- Business indicators such as checkout failures, payment authorization errors, import lag, search timeouts, or signup failures.
The most valuable Kubernetes application monitoring connects these service-level signals to Kubernetes context. When latency rises, you should be able to see the deployment, pod, namespace, node, container image, resource limit, and downstream dependency involved.
Metoro Kubernetes APM is built around that workflow: request telemetry, traces, service maps, Kubernetes state, and runtime context in one place.
Network and Dependency Monitoring
Kubernetes failures often appear between services. A deployment can be healthy, its pods can be ready, and the real issue can still be DNS, an overloaded database, a network policy change, or a slow external API.
Kubernetes network monitoring should cover:
- Service-to-service traffic: request volume, latency, errors, retries, and unexpected dependency paths.
- DNS: CoreDNS saturation, lookup latency, failed lookups, and sudden query shape changes.
- Ingress: status codes, TLS errors, request latency, load balancer health, and route-level failures.
- Egress: third-party APIs, databases, queues, caches, payment providers, and cloud services.
- Network policy and connectivity: refused connections, timeouts, dropped traffic, and dependency reachability.
Service maps are useful here because they show topology as a monitoring surface, not only as a diagram. If one service suddenly calls a new dependency after a deploy, or if database latency is only affecting one namespace, the topology view can shorten the investigation.
Logs, Traces, and Events
Metrics are the best alerting signal for many production failures, but they are rarely enough by themselves. Once an alert fires, responders need the supporting evidence.
Use logs for process-level detail. Good Kubernetes logging captures container stdout and stderr, preserves Kubernetes metadata, supports structured fields, and lets responders pivot from a pod, service, trace, deployment, or time window into the relevant logs.
Use traces for request flow. Distributed traces show which service, database, queue, or external API added latency or returned an error. They are especially useful in microservice systems where a single user request crosses several workloads.
Use Kubernetes events and resource history for change context. Events such as failed scheduling, image pull errors, probe failures, OOM kills, volume mount failures, and scaling decisions can explain symptoms that do not appear in application logs. Because events are short-lived in many clusters, production monitoring should persist them long enough for incident review.
Alerting Without On-Call Noise
Kubernetes can generate a lot of signals. That does not mean every signal deserves a page.
Use these rules for production alerting:
- Page on user impact: sustained error rate, latency SLO burn, failed critical jobs, or unavailable customer-facing services.
- Page on imminent risk: cluster capacity exhaustion, repeated OOM kills, disk pressure, broken DNS, or failed rollouts that will affect availability soon.
- Ticket or notify on hygiene: occasional pod restarts, non-critical image pull retries, noisy logs, and resource usage trends that need cleanup.
- Attach context: namespace, service, deployment, pod, node, image, recent deploys, relevant events, traces, and logs.
- Prefer multi-signal alerts: a restart plus an SLO regression is more actionable than a restart alone.
Alerting should lead responders to a hypothesis.
An alert that says "p95 latency is high for checkout, starting after deployment checkout-api:2026.04.26, with new PostgreSQL latency and HPA scale-up lag" is much more useful than "CPU > 80 percent".
Metoro's AI root cause analysis, AI deployment verification, and AI SRE workflows use this idea directly: alerts and regressions are investigated with telemetry, Kubernetes state, deployment history, and code context instead of being handed to engineers as isolated graphs.
Implementation Options
Most teams choose one of three approaches.
| Approach | Good fit | Tradeoffs |
|---|---|---|
| DIY Prometheus and Grafana stack | Teams with strong platform engineering capacity and metrics-first needs | You own exporters, dashboards, storage, alert rules, logs, traces, events, retention, upgrades, and cardinality control |
| General observability platform | Teams that need one platform across Kubernetes, VMs, cloud services, serverless, and frontend apps | Kubernetes context can require extra setup, and pricing may be driven by hosts, custom metrics, logs, spans, and add-ons |
| Kubernetes-native platform | Teams mostly running Kubernetes that want faster setup, resource context, and correlated telemetry | May be less relevant for non-Kubernetes workloads, and eBPF-based systems need compatible cluster permissions |
Prometheus is still a strong metrics foundation. OpenTelemetry is the right standard for custom traces, metrics, logs, and vendor-neutral pipelines. The question is not whether those projects are useful. The question is whether your team wants to operate and assemble the full monitoring workflow itself.
If you want a product comparison, use the Kubernetes observability tools guide. If cost is the main filter, see affordable Kubernetes monitoring.
Where eBPF Helps
eBPF is useful for Kubernetes monitoring because it can collect runtime and network telemetry from the Linux kernel without adding SDKs to every service. That gives teams baseline coverage for HTTP calls, database calls, service dependencies, network activity, and profiling even when some workloads are third-party containers or were never instrumented.
The practical benefits are:
- Faster initial coverage after installing a node-level agent.
- Fewer blind spots from uninstrumented services.
- Better dependency visibility for service maps and traces.
- Useful runtime evidence for incidents involving networking, latency, and resource saturation.
eBPF does not remove the need for application context. You still want OpenTelemetry or custom metrics for business-specific attributes, domain events, and internal operations that the kernel cannot infer. The best setup usually combines automatic eBPF coverage with explicit application telemetry where it matters.
For more detail, read how Metoro uses eBPF.
A Practical Rollout Plan
If you are starting from scratch, do not try to design the perfect monitoring system in one pass. Roll it out in layers:
- Install collection: Deploy your monitoring agent, OpenTelemetry Collector, Prometheus stack, or Kubernetes-native platform to every cluster.
- Attach Kubernetes metadata: Make sure every metric, log, trace, and event can be filtered by cluster, namespace, workload, pod, container, node, and service.
- Create service health views: Build dashboards around request rate, error rate, latency, saturation, and dependency health for critical services.
- Add cluster and workload views: Track nodes, capacity, pod readiness, restarts, OOM kills, rollout status, DNS, and storage.
- Persist events and changes: Keep deployment history, Kubernetes events, resource changes, and image changes available for incident timelines.
- Tune alerts: Start with SLO and availability alerts, then add capacity and rollout alerts. Remove alerts that do not change responder behavior.
- Practice investigations: Use a real deploy, a synthetic failure, or a recent incident review to confirm that responders can move from alert to root cause quickly.
The output should be a monitoring system that helps engineers answer: what is broken, who is affected, when did it start, what changed, and what evidence supports the likely root cause.
Conclusion
Kubernetes monitoring works best when it is treated as a production workflow, not a dashboard collection. You need cluster health, workload state, application telemetry, network dependencies, logs, traces, Kubernetes events, deployment history, and alerting rules that point to action.
For Kubernetes teams, the biggest wins usually come from better correlation. Connect user-facing symptoms to pods, deployments, resource limits, service dependencies, and recent changes. Then use observability data to investigate the unknowns that monitoring cannot predict in advance.
Metoro is built for that operating model: Kubernetes dashboards and metrics, APM, logs, traces, profiling, events, eBPF telemetry, and AI SRE investigation in one Kubernetes-native workflow.
FAQ
What is Kubernetes monitoring?
Kubernetes monitoring is the process of collecting, visualizing, and alerting on signals from Kubernetes clusters and the applications running in them. A production setup monitors nodes, pods, workloads, services, network dependencies, logs, traces, Kubernetes events, deployments, and user-facing service health.
What should I monitor in Kubernetes?
Start with node health, pod readiness, restart loops, deployment status, CPU and memory saturation, disk pressure, DNS health, request rate, error rate, latency, dependency performance, Kubernetes events, and recent changes. Then add service-specific metrics that map to user impact, such as failed payments, queue lag, or checkout errors.
What is the difference between Kubernetes monitoring and Kubernetes observability?
Kubernetes monitoring watches known failure modes with dashboards, alerts, and SLOs. Kubernetes observability is broader: it lets you investigate unknown failure modes by querying and correlating metrics, logs, traces, profiles, events, resource state, and deployment history. Monitoring tells you something is wrong; observability helps explain why.
Is Prometheus enough for Kubernetes monitoring?
Prometheus can be enough for metrics collection and metrics-based alerting, especially for teams with strong PromQL and platform engineering experience. It is not a complete monitoring workflow by itself because teams still need logs, traces, event retention, dashboards, long-term storage, alert routing, deployment context, and incident investigation workflows.
How do you monitor Kubernetes applications?
Monitor Kubernetes applications with RED metrics: request rate, error rate, and duration. Add saturation metrics such as CPU throttling, memory pressure, queue depth, connection pools, and dependency latency. For incident response, correlate those signals with traces, logs, pod status, deployments, Kubernetes events, and service maps.
What is Kubernetes network monitoring?
Kubernetes network monitoring tracks traffic and dependency behavior between services, pods, DNS, ingress, egress, databases, queues, and external APIs. It should show latency, errors, refused connections, timeouts, DNS failures, and unexpected dependency paths so teams can debug issues that are not visible from pod health alone.
Does eBPF help with Kubernetes monitoring?
Yes. eBPF can collect runtime, network, tracing, and profiling telemetry without manually instrumenting every service. That is useful for Kubernetes because pods are ephemeral, services are numerous, and third-party containers may not expose the telemetry you need. eBPF is best combined with OpenTelemetry or custom metrics for business-specific context.
How should Kubernetes alerts be designed?
Kubernetes alerts should prioritize user impact and imminent risk. Page on sustained error rate, latency SLO burn, unavailable services, failed critical jobs, broken DNS, capacity exhaustion, repeated OOM kills, and failed rollouts. Avoid paging on every low-level event unless it is tied to service impact or requires immediate human action.
Related reading
More Metoro articles that deepen the same topic from another angle.
Kubernetes Observability: The Complete Guide
Learn what Kubernetes observability is and how to implement effective observability for your k8s clusters.
Read article →7 Best Kubernetes Observability Tools in 2026 (Tested & Compared)
Discover the top Kubernetes observability tools in 2026. Compare their up-to-date features (including AI) and find the best fit for your needs.
Read article →How Metoro Uses eBPF for Zero-Instrumentation Observability
A technical deep-dive into how Metoro captures L7 protocol traffic and intercepts TLS-encrypted data using eBPF, enabling automatic observability without code changes
Read article →