GitHub - sustainable-computing-io/kepler: Kepler (Kubernetes-based Efficient Power Level Exporter) is a Prometheus exporter that measures energy consumption metrics at the container, pod, and node levels in Kubernetes clusters. (original) (raw)

Kepler

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

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.

🚀 Major Rewrite: Kepler (0.10.0 and above)

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

✨ What's New in the Rewrite

Enhanced Performance & Accuracy:

Reduced Security Requirements:

Modern Architecture:

Current Limitations:

📚 Migration & Legacy Support

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:

Migration Note: Please review the new configuration format and deployment methods below when upgrading to 0.10.0+.

🚀 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

kubectl kustomize manifests/k8s |
sed -e "s||quay.io/sustainable_computing_io/kepler:latest|g" |
kubectl apply --server-side --force-conflicts -f -

📖 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.

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.