Skip to main content
Cloud DevOps Solutions
Get a quote Talk to an engineer

Kubernetes Monitoring with Prometheus

We deploy and configure full-stack Kubernetes monitoring, kube-prometheus-stack, control plane metrics, workload dashboards, PVC alerts, and capacity planning, giving your team better visibility into cluster health.

Problems we solve

  • No visibility into pod resource usage, OOMKill events discovered after user complaints
  • kube-state-metrics installed but no dashboards or alerts configured around its data
  • Node-level metrics collected but no alerts for DiskPressure, MemoryPressure, or NotReady conditions
  • Control plane metrics not scraped, api-server, etcd, scheduler health invisible
  • No correlation between Kubernetes events (pod restarts, evictions) and application errors

What's included

kube-prometheus-stack deployment (Prometheus Operator, Grafana, Alertmanager, kube-state-metrics, node-exporter)
Control plane metric scraping (API server, etcd, scheduler, controller-manager)
Node-level dashboards: CPU, memory, disk I/O, network, and pressure conditions
Workload dashboards: deployment saturation, pod restart rates, resource efficiency
Namespace-level resource quota and limit range dashboards
PVC usage monitoring with alerts before disks fill
Kubernetes event alerting: CrashLoopBackOff, OOMKill, evictions, failed pulls
Cluster capacity planning dashboard: headroom before node saturation

Our approach

  1. 01

    Observability gap assessment

    We map what is and is not being monitored. Control plane, node, workload, and application layers are each assessed for metric coverage, dashboard quality, and alert effectiveness.

  2. 02

    kube-prometheus-stack deployment

    We deploy the full kube-prometheus-stack via Helm with your retention period, storage class, and remote write configuration (if you use Thanos or Mimir for long-term storage).

  3. 03

    Dashboard configuration

    We configure the standard Kubernetes dashboards (from the kube-prometheus-stack library) and add custom panels for your specific workloads, namespaces, and node pool configuration.

  4. 04

    Alert rule implementation

    We implement the KubeStateMetrics and NodeExporter default alert rules, then tune thresholds for your cluster size and workload patterns. SLO alerts are configured for critical services.

  5. 05

    Capacity planning baseline

    We build a capacity planning dashboard that shows current node headroom, projected time-to-saturation based on trend lines, and PVC growth forecasts. This drives informed scaling decisions.

Tech stack

Prometheus Operatorkube-prometheus-stackkube-state-metricsnode-exporterGrafanaAlertmanagerThanos / Mimir (long-term storage)OpenTelemetry

Results

We publish results only when a client has approved them. See how we publish case studies and a sample report.

FAQ

What is kube-state-metrics?
kube-state-metrics is a service that listens to the Kubernetes API and exposes metrics about the state of objects: deployments, pods, nodes, PVCs, HPA targets, and more. It is the foundation for most Kubernetes monitoring.
What is the difference between kube-state-metrics and metrics-server?
metrics-server provides real-time CPU and memory usage for the HPA and kubectl top commands but does not persist data. kube-state-metrics exposes Kubernetes object state for Prometheus to scrape and store. You need both: metrics-server for autoscaling, kube-state-metrics for monitoring.
How do I monitor the Kubernetes control plane on EKS?
The Kubernetes API server exposes a /metrics endpoint that you can scrape from within the cluster, and AWS also publishes some control plane metrics to CloudWatch. AWS manages etcd, so direct access to etcd metrics may be limited; check the current EKS documentation. We can configure Amazon Managed Service for Prometheus or remote_write to capture what is available.
What is Thanos and do I need it?
Thanos extends Prometheus with long-term object storage, global query across multiple clusters, and high availability. You need it if you want: longer metric retention than the Prometheus default of 15 days, a global view across clusters, or Prometheus HA without data duplication.
How much storage does Prometheus use?
The Prometheus documentation gives the formula: disk space = retention time in seconds x ingested samples per second x bytes per sample, with samples typically taking only a few bytes after compression. The result depends on your node and pod count, scrape interval and labels. We size Prometheus PVCs and retention periods accordingly and add remote_write to object storage for longer retention.

Ready to get started?

Book a free technical consultation. No commitment, just an honest conversation about your goals.

Written by Saddique Khan, AWS & Azure Certified · Last updated October 2025