<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=521127644762074&amp;ev=PageView&amp;noscript=1">

Building a Kubernetes Platform: What You Need to Monitor in K8s & Why

Monitoring helps your team understand how a Kubernetes cluster and its workloads are behaving, where resources are being used, and what needs attention. You’ll use that information to investigate problems and decide what to change.

The harder question is what to collect. Kubernetes exposes metrics across several layers, so you need to decide which ones will help you understand a problem or take action.

Monitoring and Observability

Monitoring tracks a system’s health and performance over time, giving teams data they can use to investigate changes and trigger alerts when intervention is needed. It overlaps with observability, which is the ability to understand a system’s internal state through its outputs.

Metrics, logs, and traces help teams build that understanding and diagnose problems, including ones they didn’t anticipate.

Specific Challenges in Kubernetes

Pods and nodes can be created and removed as the cluster changes, so monitoring needs to account for more than a fixed set of machines. Workloads also share infrastructure: containers on the same node can compete for CPU and memory, and multi-tenant environments add teams and workloads sharing cluster resources.

Networking adds another area to investigate. Communication between pods, nodes, and Services depends on the cluster’s network implementation, which matters when workloads can’t communicate as expected.

Kubernetes components, add-ons, and applications expose metrics that serve different purposes. The API server and controller manager expose component metrics, while Metrics Server provides CPU and memory resource metrics for autoscaling and basic inspection. Metrics Server doesn’t replace a full monitoring pipeline.

Control Plane Dependencies

The Kubernetes control plane also needs monitoring. Slow API responses or etcd disk writes can delay scheduling and autoscaling operations, even when worker nodes have available CPU and memory. Severe or sustained problems can cause requests to time out and disrupt those operations.

Monitor Across Kubernetes Layers

Monitoring spans the cluster, its nodes, and the workloads running on them:

  • Cluster-Level Monitoring: Track the health and performance of the cluster and its components.
  • Node-Level Monitoring: Track the health and resource use of the nodes running your workloads.
  • Pod- and Container-Level Monitoring: Track workload resource use and lifecycle behavior. Application metrics provide additional information about the service running inside the containers.
  • Storage and Persistent Volume Monitoring: Track capacity usage for persistent volumes alongside node disk usage. Where your storage system exposes them, monitor IOPS and read/write latency to help identify storage constraints affecting stateful workloads.

Some metrics are useful at more than one layer, so keep the scope clear when interpreting them.

Options for Monitoring

Prometheus and Grafana are commonly used together for Kubernetes monitoring: Prometheus collects and stores metrics, and Grafana provides dashboards for exploring them. Commercial platforms such as Datadog are another option.

Whichever tools you use, you’ll need to configure the monitoring pipeline to discover and collect the metrics you need. An exposed metrics endpoint makes data available, but doesn’t mean your monitoring system is collecting it.

The Difference Between Monitoring and Alerting

Much of the data you collect is useful without requiring an immediate response. Dashboards and historical data help teams investigate problems and understand trends.

Alerting adds a decision about when someone needs to act. A page should identify a problem that requires timely human intervention; other findings can wait for review without interrupting the on-call engineer.

What Do You Monitor?

Collecting and retaining more monitoring data can increase storage costs and make useful signals harder to find. As you choose what to collect, consider what each metric will help your team understand or investigate.

Fairwinds recommends covering these areas:

  • Pods and Their Controllers: Monitor whether workloads and their controllers are behaving as expected. Track service errors, latency, and timeouts separately from controller health.
  • CPU and Memory Usage: Track how much CPU and memory your workloads are using.
  • Cluster Health: Track the health and performance of the cluster’s components, including the control plane.
  • Kubernetes Events and Container Status: Review Kubernetes events alongside container status and logs when investigating workload failures. Events provide context about startup and restart problems. Container status can show a termination reason such as OOMKilled or a reason for waiting such as CrashLoopBackOff or ImagePullBackOff.
  • Node Pressure Conditions: Monitor the kubelet-reported MemoryPressure, DiskPressure, and PIDPressure conditions. These indicate resource pressure associated with eviction thresholds and can help explain scheduling restrictions or pod evictions.
  • Workload Costs: Track what it costs to run your clusters and workloads. Use resource usage and rightsizing data to understand how CPU and memory settings affect capacity and spend.

  • Runtime Security: Falco, for example, uses rules to detect suspicious runtime activity from Linux kernel events.
  • Workload Behavior and Performance: Compare observed behavior with what you expect from the workload to help identify changes that need investigation.

Golden Signals

The areas above help you understand infrastructure and workload behavior. To assess service health, Google’s Site Reliability Engineering book describes four golden signals:

  1. Latency: How long does it take to service a request?
  2. Traffic: How much traffic is coming in? How many requests per second or transactions per second are there?
  3. Errors: What proportion of requests fail, including requests that return an apparently successful response but produce an incorrect result?
  4. Saturation: How close is your service to exhausting its most constrained resources? Track available capacity and recognize that performance can degrade before a resource reaches full utilization.

To investigate latency further, traces show how a request moves through services and how much time individual operations take. With appropriate instrumentation and context propagation, tracing through OpenTelemetry can help investigate latency across service boundaries.

Start With the Symptom, Follow the Signals

When a service slows down or requests fail, you need to connect what users are experiencing with what’s happening in the application and the cluster. Service metrics, traces, Kubernetes events, and resource data provide different parts of that picture. Use them together to investigate where the problem is occurring.

For software vendors supporting customer-hosted deployments, that investigation also involves working across application and infrastructure teams. Clear responsibilities between the application team and the team managing Kubernetes help establish who investigates each finding and where they need to collaborate.

Make Alerts Actionable

Reserve paging for conditions that require timely human intervention. These can include problems affecting users and resource constraints that could soon affect service. Route lower-priority findings to a channel where the team can review them during normal working hours.

Each page should give the responder a clear reason to act. Where a problem can be resolved safely through automation, reduce the need for repeated manual intervention.

Need help managing your Kubernetes platform? Explore Fairwinds Managed Kubernetes or talk with our team.

Originally published July 18, 2023. Updated October 22, 2026.