Kepler (Kubernetes-based Efficient Power Level Exporter) is a Prometheus exporter that measures energy consumption at the Kubernetes Pod and Node level. It reads hardware sensors, attributes power to containers, and gives per-workload visibility into where energy goes. Let's make every watt matter.
See the codeKepler (Kubernetes-based Efficient Power Level Exporter) is a Prometheus exporter that measures energy consumption metrics at the container, pod, and node level in Kubernetes clusters.
Important Notice: Starting with version 0.10.0, Kepler has undergone a complete ground-up rewrite. This represents a significant architectural improvement while maintaining the core mission of accurate energy consumption monitoring for cloud-native workloads.
📢 Read the full announcement: CNCF Slack Announcement
Enhanced Performance & Accuracy:
Reduced Security Requirements:
/proc and /sysCAP_SYSADMIN or CAP_BPF capabilities requiredModern Architecture:
Current Limitations:
For New Users: Use the current version (0.10.0+) for the best experience and latest features.
For Existing Users: If you need to continue using the old version:
0.9.0 (final legacy release)Migration Note: Please review the new configuration format and deployment methods below when upgrading to 0.10.0+.
📖 For comprehensive installation instructions, troubleshooting, and advanced deployment options, see our Installation Guide
# 1. Install Kepler using Helm from OCI registry
helm install kepler oci://quay.io/sustainable_computing_io/charts/kepler \
--namespace kepler \
--create-namespace
# Wait for Kepler pods to be running
kubectl wait --for=condition=ready --timeout=120s pod -n kepler --all
# 2. Verify installation
kubectl get pods -n kepler
# 3. Access metrics (port-forward)
kubectl port-forward -n kepler svc/kepler 28282:28282
# Test metrics endpoint
curl http://localhost:28282/metrics | grep kepler_node_cpu_watts
📋 For Production Deployments: Consider using the Kepler Operator for advanced lifecycle management and operational capabilities.
Next Steps:
To ensure Kepler is working correctly and to visualize the metrics:
Need Help?
Choose your preferred method:
# 💻 Local Development
make build && sudo ./bin/kepler
# ✨ Docker Compose (with Prometheus & Grafana)
cd compose/dev && docker compose up -d
# 🐳 Kubernetes with Kustomize
git clone https://github.com/sustainable-computing-io/kepler.git
cd kepler && git checkout v0.11.4 # pin to a release tag, see note below
kubectl kustomize manifests/k8s | \
sed -e "s|<KEPLER_IMAGE>|quay.io/sustainable_computing_io/kepler:v0.11.4|g" | \
kubectl apply --server-side --force-conflicts -f -
⚠️ Important: Always check out a matching release tag (rather than
main) before applying manifests frommanifests/k8s, and set<KEPLER_IMAGE>to that same version. Manifests onmaincan reference features not yet present in the last published image (for example, the/probe/livezand/probe/readyzendpoints added for liveness/readiness probes) — mixing amainmanifest with an older image can make the container fail its liveness probe and crash-loop. See the Releases page for available tags.
For more detailed documentation, please visit the official Kepler documentation.
Contributions are welcome! Please feel free to submit a Pull Request. For more detailed information about contributing to this project, please refer to our CONTRIBUTING.md file.
Our project adheres to the Linux Foundation's Generative AI Policy, which can be viewed at https://www.linuxfoundation.org/legal/generative-ai.
This project is licensed under the Apache License 2.0 - see the LICENSES for details.
Overall
Maintained
Code review
Contributors
Latest release
Releases this year
(top 24 of 34)
3,910 followers · starred May 2024
3,931 followers · starred Apr 2023
1,115 followers · starred Aug 2025
5,204 followers · starred Apr 2023
Kepler (Kubernetes-based Efficient Power Level Exporter) is a Prometheus exporter that measures energy consumption at the Kubernetes Pod and Node level. It reads hardware sensors, attributes power to containers, and gives per-workload visibility into where energy goes. Let's make every watt matter.
See the codeKepler (Kubernetes-based Efficient Power Level Exporter) is a Prometheus exporter that measures energy consumption metrics at the container, pod, and node level in Kubernetes clusters.
Important Notice: Starting with version 0.10.0, Kepler has undergone a complete ground-up rewrite. This represents a significant architectural improvement while maintaining the core mission of accurate energy consumption monitoring for cloud-native workloads.
📢 Read the full announcement: CNCF Slack Announcement
Enhanced Performance & Accuracy:
Reduced Security Requirements:
/proc and /sysCAP_SYSADMIN or CAP_BPF capabilities requiredModern Architecture:
Current Limitations:
For New Users: Use the current version (0.10.0+) for the best experience and latest features.
For Existing Users: If you need to continue using the old version:
0.9.0 (final legacy release)Migration Note: Please review the new configuration format and deployment methods below when upgrading to 0.10.0+.
📖 For comprehensive installation instructions, troubleshooting, and advanced deployment options, see our Installation Guide
# 1. Install Kepler using Helm from OCI registry
helm install kepler oci://quay.io/sustainable_computing_io/charts/kepler \
--namespace kepler \
--create-namespace
# Wait for Kepler pods to be running
kubectl wait --for=condition=ready --timeout=120s pod -n kepler --all
# 2. Verify installation
kubectl get pods -n kepler
# 3. Access metrics (port-forward)
kubectl port-forward -n kepler svc/kepler 28282:28282
# Test metrics endpoint
curl http://localhost:28282/metrics | grep kepler_node_cpu_watts
📋 For Production Deployments: Consider using the Kepler Operator for advanced lifecycle management and operational capabilities.
Next Steps:
To ensure Kepler is working correctly and to visualize the metrics:
Need Help?
Choose your preferred method:
# 💻 Local Development
make build && sudo ./bin/kepler
# ✨ Docker Compose (with Prometheus & Grafana)
cd compose/dev && docker compose up -d
# 🐳 Kubernetes with Kustomize
git clone https://github.com/sustainable-computing-io/kepler.git
cd kepler && git checkout v0.11.4 # pin to a release tag, see note below
kubectl kustomize manifests/k8s | \
sed -e "s|<KEPLER_IMAGE>|quay.io/sustainable_computing_io/kepler:v0.11.4|g" | \
kubectl apply --server-side --force-conflicts -f -
⚠️ Important: Always check out a matching release tag (rather than
main) before applying manifests frommanifests/k8s, and set<KEPLER_IMAGE>to that same version. Manifests onmaincan reference features not yet present in the last published image (for example, the/probe/livezand/probe/readyzendpoints added for liveness/readiness probes) — mixing amainmanifest with an older image can make the container fail its liveness probe and crash-loop. See the Releases page for available tags.
For more detailed documentation, please visit the official Kepler documentation.
Contributions are welcome! Please feel free to submit a Pull Request. For more detailed information about contributing to this project, please refer to our CONTRIBUTING.md file.
Our project adheres to the Linux Foundation's Generative AI Policy, which can be viewed at https://www.linuxfoundation.org/legal/generative-ai.
This project is licensed under the Apache License 2.0 - see the LICENSES for details.
Overall
Maintained
Code review
Contributors
Latest release
Releases this year
(top 24 of 34)
3,910 followers · starred May 2024
3,931 followers · starred Apr 2023
1,115 followers · starred Aug 2025
5,204 followers · starred Apr 2023