Skip to content

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.

Notifications You must be signed in to change notification settings

sustainable-computing-io/kepler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kepler

GitHub license codecov CI Status Releases

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:

  • 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 or CAP_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

📚 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:

  • 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+.

🚀 Getting Started

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

⚡ Quick Start

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

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

📝 License

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

About

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.

Topics

Resources

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages