How to Monitor Amazon EKS Using Prometheus and Grafana (Without Helm)
Source: Dev.to
Why Monitoring Is Important
- Check cluster health
- Monitor node and pod resource usage
- Find issues early
- Improve system stability and security
Tools Used
- Amazon EKS
- Prometheus
- Grafana
- kube-state-metrics
- node-exporter
Helm is not used in this setup.
Simple Architecture
- Prometheus collects metrics from the EKS cluster
- Node Exporter collects node metrics
- kube-state-metrics provides Kubernetes object data
- Grafana displays metrics in dashboards
Step 1: Create Monitoring Namespace
(Create the namespace with your preferred kubectl command.)
Step 2: Deploy kube-state-metrics
Components deployed
- Pods
- Namespaces
- Nodes
- Deployments
Verify deployment
kubectl get pods -n monitoring
Step 3: Deploy Node Exporter
Collects
- CPU
- Memory
- Disk metrics
Check status with your usual kubectl commands.
Step 4: Configure Prometheus
Update Prometheus scrape configuration to collect metrics from:
- Kubernetes nodes
- Pods
- kube-state-metrics
- kubelet metrics
Relevant labels for Grafana filtering
clusternodenamespacepod
Step 5: Connect Grafana to Prometheus
- Open Grafana
- Add Prometheus as a data source
- Save and test the connection
Step 6: Import Dashboards
Import Kubernetes dashboards to view:
- Cluster metrics
- Node usage
- Pod usage
You can filter by:
- Cluster
- Node
- Namespace
- Pod
What You Can Monitor
- Cluster health
- Node CPU and memory
- Pod resource usage
- Pod restarts
What I Learned
- Monitoring is essential for Kubernetes
- Prometheus and Grafana work well without Helm
- Labels are very useful for filtering metrics
- Good monitoring supports DevSecOps practices
Conclusion
This is a simple and effective way to monitor Amazon EKS without Helm. It’s a great starting point for anyone learning Kubernetes monitoring.
Thanks for reading!