Skip to content
sustainable-computing-ioPublic

About

Kepler is CNCF Sandbox project to attribute the energy use of Kubernetes workloads. Let's make every watt matter. ⚡

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1.6k stars

Watchers

22 watching

Forks

Latest commit

 

History

837 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Kepler

GitHub license codecov CI Status Releases zread OpenSSF Best Practices OpenSSF ScorecardCLOMonitor

Kepler (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.

🌟 Star the Kepler repository to help others find it!

🚀 Getting Started

📖 For comprehensive installation instructions, troubleshooting, and advanced deployment options, see our Installation Guide

⚡ Quick Start (Kubernetes with Helm)

# 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?

🔧 Other Installation Methods

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.12.0 # pin to a release tag, see note below
kubectl kustomize manifests/k8s | \
  sed -e "s|<KEPLER_IMAGE>|quay.io/sustainable_computing_io/kepler:v0.12.0|g" | \
  kubectl apply --server-side --force-conflicts -f -

⚠️ Important: Always check out a matching release tag (rather than main) before applying manifests from manifests/k8s, and set <KEPLER_IMAGE> to that same version. Manifests on main can reference features not yet present in the last published image (for example, the /probe/livez and /probe/readyz endpoints added for liveness/readiness probes) — mixing a main manifest with an older image can make the container fail its liveness probe and crash-loop. See the Releases page for available tags.

📖 Documentation

User Documentation

Developer Documentation

For more detailed documentation, please visit the official Kepler documentation.

🤝 Contributing

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.

Roadmap

See the Kepler Roadmap for planned and in-progress work.

Code of Conduct

Kepler follows the CNCF Code of Conduct.

Gen AI policy

Our project adheres to the Linux Foundation's Generative AI Policy, which can be viewed at https://www.linuxfoundation.org/legal/generative-ai.

⭐ Star History

Star History Chart

📝 License

This project is licensed under the Apache License 2.0 - see the LICENSES for details.

About

Kepler is CNCF Sandbox project to attribute the energy use of Kubernetes workloads. Let's make every watt matter. ⚡

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1.6k stars

Watchers

22 watching

Forks

Releases

Packages

Used by

Contributors

Languages