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.
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:
- Dynamic detection of Nodes' RAPL zones - no more hardcoded RAPL zones
- More accurate power attribution based on active CPU usage (no more idle/dynamic for workloads)
- Improved VM, Container, and Pod detection with more meaningful label values
- Significantly reduced resource usage compared to old Kepler
Reduced Security Requirements:
- Requires only readonly access to host
/proc
and/sys
- No more
CAP_SYSADMIN
orCAP_BPF
capabilities required - Much fewer privileges than previous versions
Modern Architecture:
- Service-oriented design with clean separation of concerns
- Thread-safe operations throughout the codebase
- Graceful shutdown handling with proper resource cleanup
- Comprehensive error handling with structured logging
Current Limitations:
- Only supports Baremetal (platform power support in roadmap)
- Supports only RAPL/powercap framework
- No GPU power support yet
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:
- Pin your deployment to version
0.9.0
(final legacy release) - Access the old codebase in the archived branch
- Important: The legacy version (0.9.x and earlier) is now frozen - no bug fixes or feature requests will be accepted for the old version
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
Choose your preferred method:
# 💻 Local Development
make build && sudo ./bin/kepler
# ✨ Docker Compose (with Prometheus & Grafana)
cd compose/dev && docker-compose up -d
# 🐳 Kubernetes
helm install kepler manifests/helm/kepler/ --namespace kepler --create-namespace
- Installation Guide - Detailed installation instructions for all deployment methods
- Configuration Guide - Configuration options and examples
- Metrics Documentation - Available metrics and their descriptions
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.
This project is licensed under the Apache License 2.0 - see the LICENSES for details.