Kepler
Uses eBPF to probe energy related system stats and exports as Prometheus metrics.
https://github.com/sustainable-computing-io/kepler
Category: Consumption
Sub Category: Computation and Communication
Keywords
cloud-native energy-consumption energy-efficiency energy-monitor kubernetes prometheus prometheus-exporter sustainability
Keywords from Contributors
operator ebpf transforms archiving measur conversion observation optimize animals alerting
Last synced: about 17 hours ago
JSON representation
Repository metadata
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.
- Host: GitHub
- URL: https://github.com/sustainable-computing-io/kepler
- Owner: sustainable-computing-io
- Created: 2022-02-01T19:48:56.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-07-11T03:47:44.000Z (5 days ago)
- Last Synced: 2025-07-11T05:34:18.882Z (5 days ago)
- Topics: cloud-native, energy-consumption, energy-efficiency, energy-monitor, kubernetes, prometheus, prometheus-exporter, sustainability
- Language: Go
- Homepage: https://sustainable-computing.io
- Size: 27.8 MB
- Stars: 1,350
- Watchers: 22
- Forks: 206
- Open Issues: 153
- Releases: 48
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSES/Apache-2.0.txt
- Code of conduct: code-of-conduct.md
- Security: SECURITY.md
- Governance: GOVERNANCE.md
README.md
Kepler
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
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
📚 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
- 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.
🤝 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.
Owner metadata
- Name: Sustainable Computing
- Login: sustainable-computing-io
- Email: [email protected]
- Kind: organization
- Description:
- Website: www.sustainable-computing.io
- Location: United States of America
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/91567619?v=4
- Repositories: 11
- Last ynced at: 2023-03-04T04:30:22.299Z
- Profile URL: https://github.com/sustainable-computing-io
GitHub Events
Total
- Create event: 69
- Release event: 13
- Issues event: 103
- Watch event: 197
- Delete event: 47
- Issue comment event: 469
- Push event: 254
- Pull request review comment event: 421
- Pull request review event: 655
- Pull request event: 523
- Fork event: 24
Last Year
- Create event: 69
- Release event: 13
- Issues event: 103
- Watch event: 197
- Delete event: 47
- Issue comment event: 469
- Push event: 254
- Pull request review comment event: 421
- Pull request review event: 655
- Pull request event: 523
- Fork event: 24
Committers metadata
Last synced: 5 days ago
Total Commits: 190
Total Committers: 7
Avg Commits per committer: 27.143
Development Distribution Score (DDS): 0.547
Commits in past year: 190
Committers in past year: 7
Avg Commits per committer in past year: 27.143
Development Distribution Score (DDS) in past year: 0.547
Name | Commits | |
---|---|---|
vprashar2929 | v****9@g****m | 86 |
Sunil Thaha | s****a@r****m | 71 |
Vimal Kumar | v****8@g****m | 24 |
Kaiyi Liu | k****u@r****m | 5 |
SamYuan1990 | y****9@1****m | 2 |
dependabot[bot] | 4****] | 1 |
Sunyanan Choochotkaew | s****1@i****m | 1 |
Committer domains:
- redhat.com: 2
- ibm.com: 1
- 126.com: 1
Issue and Pull Request metadata
Last synced: 3 days ago
Total issues: 592
Total pull requests: 1,544
Average time to close issues: 2 months
Average time to close pull requests: 10 days
Total issue authors: 122
Total pull request authors: 62
Average comments per issue: 4.41
Average comments per pull request: 1.72
Merged pull request: 1,278
Bot issues: 0
Bot pull requests: 193
Past year issues: 121
Past year pull requests: 485
Past year average time to close issues: 19 days
Past year average time to close pull requests: 11 days
Past year issue authors: 37
Past year pull request authors: 21
Past year average comments per issue: 1.29
Past year average comments per pull request: 1.49
Past year merged pull request: 379
Past year bot issues: 0
Past year bot pull requests: 79
Top Issue Authors
- rootfs (88)
- jichenjc (57)
- SamYuan1990 (52)
- sunya-ch (42)
- vprashar2929 (40)
- sthaha (35)
- dave-tucker (27)
- marceloamaral (14)
- jiere (12)
- vimalk78 (10)
- jharriga (10)
- KaiyiLiu1234 (9)
- nikimanoledaki (8)
- husky-parul (8)
- Feelas (7)
Top Pull Request Authors
- rootfs (232)
- dependabot[bot] (187)
- vprashar2929 (184)
- sthaha (150)
- SamYuan1990 (147)
- jichenjc (117)
- marceloamaral (94)
- sunya-ch (84)
- vimalk78 (79)
- dave-tucker (49)
- maryamtahhan (43)
- KaiyiLiu1234 (26)
- husky-parul (18)
- jiere (11)
- sallyom (8)
Top Issue Labels
- kind/bug (177)
- wontfix (126)
- kind/feature (113)
- enhancement (18)
- kind/documentation (17)
- help wanted (11)
- tech-debt (11)
- to be closed (9)
- bug (8)
- discussion (7)
- high-priority (5)
- pinned (5)
- non-k8s environment (4)
- good first issue (4)
- urgent-priority (4)
- documentation (3)
- low-priority (3)
- medium (2)
- metal-ci (2)
- github_actions (1)
- model-server (1)
- model-db (1)
- gh-action (1)
Top Pull Request Labels
- dependencies (192)
- go (96)
- github_actions (86)
- chore (59)
- ci (36)
- feat (28)
- wontfix (19)
- fix (18)
- docs (12)
- enhancement (10)
- bug (9)
- refactor (8)
- test (6)
- requires-manual-test (5)
- kind/feature (5)
- do-not-merge (3)
- high-priority (2)
- urgent-priority (2)
- documentation (1)
- breaking-change (1)
Package metadata
- Total packages: 1
- Total downloads: unknown
- Total docker downloads: 361
- Total dependent packages: 0
- Total dependent repositories: 1
- Total versions: 64
proxy.golang.org: github.com/sustainable-computing-io/kepler
- Homepage: https://github.com/sustainable-computing-io/kepler
- Documentation: https://pkg.go.dev/github.com/sustainable-computing-io/kepler#section-documentation
- Licenses: Apache-2.0
- Latest release: v0.7.12 (published 9 months ago)
- Last Synced: 2024-12-14T10:50:24.449Z (7 months ago)
- Versions: 64
- Dependent Packages: 0
- Dependent Repositories: 1
- Docker Downloads: 361
-
Rankings:
- Docker downloads count: 1.984%
- Stargazers count: 3.177%
- Forks count: 3.353%
- Average: 4.352%
- Dependent repos count: 4.79%
- Dependent packages count: 8.456%
Dependencies
- gsactions/commit-message-checker v2 composite
- actions/checkout v3 composite
- actions/setup-go main composite
- docker/login-action v1 composite
- actions/checkout main composite
- actions/setup-go main composite
- sustainable-computing-io/kepler-action main composite
- actions/checkout v2 composite
- actions/checkout v3 composite
- actions/create-release v1 composite
- actions/github-script v5 composite
- docker/login-action v1 composite
- peterjgrainger/action-create-branch v2.2.0 composite
- actions/checkout v2 composite
- actions/setup-go main composite
- ad-m/github-push-action master composite
- tj-actions/coverage-badge-go v2 composite
- tj-actions/verify-changed-files v11.1 composite
- quay.io/sustainable_computing_io/kepler_base cuda-11.8.0-base-ubi8-bcc-0.24 build
- quay.io/sustainable_computing_io/kepler_builder ubi-8.6-bcc-0.24-go1.18 build
- github.com/NVIDIA/go-nvml v0.11.6-0
- github.com/iovisor/gobpf v0.2.0
- github.com/jszwec/csvutil v1.6.0
- github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369
- github.com/onsi/ginkgo v1.16.5
- github.com/onsi/gomega v1.19.0
- github.com/prometheus/client_golang v1.12.1
- github.com/prometheus/client_model v0.2.0
- github.com/prometheus/common v0.34.0
- github.com/stretchr/testify v1.7.1
- golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6
- k8s.io/api v0.24.0
- 576 dependencies
- actions/checkout v4 composite
- actions/setup-go v3 composite
- actions/checkout v4 composite
- actions/setup-go v3 composite
- actions/setup-go v2 composite
- golangci/golangci-lint-action v3 composite
- actions/checkout v4 composite
- github/codeql-action/upload-sarif v1 composite
- securego/gosec master composite
- actions/checkout v4 composite
- docker/build-push-action v3 composite
- docker/login-action v1 composite
- docker/setup-buildx-action v2 composite
- docker/setup-qemu-action v2 composite
- actions/checkout v4 composite
- docker/build-push-action v4 composite
- docker/login-action v1 composite
- docker/setup-buildx-action v2 composite
- docker/setup-qemu-action v2 composite
- actions/checkout v4 composite
- actions/download-artifact v3 composite
- actions/setup-go v3 composite
- actions/upload-artifact v3 composite
- sustainable-computing-io/kepler-action v0.0.1 composite
- actions/checkout v4 composite
- actions/download-artifact v3 composite
- actions/setup-go v3 composite
- actions/upload-artifact v3 composite
- docker/build-push-action v4 composite
- docker/login-action v1 composite
- docker/setup-buildx-action v2 composite
- docker/setup-qemu-action v2 composite
- sustainable-computing-io/kepler-action v0.0.1 composite
- actions/checkout 93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 composite
- actions/upload-artifact 3cea5372237819ed00197afe530f5a7ea3e805c8 composite
- github/codeql-action/upload-sarif 17573ee1cc1b9d061760f3a006fc4aac4f944fd5 composite
- ossf/scorecard-action e38b1902ae4f44df626f11ba0734b14fb91f8f86 composite
Score: 15.163761872209653