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.

README.md

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.


Owner metadata


GitHub Events

Total
Last Year

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


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

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/sustainable-computing-io/kepler

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

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

.github/workflows/commitMsg.yml actions
  • gsactions/commit-message-checker v2 composite
.github/workflows/image.yml actions
  • actions/checkout v3 composite
  • actions/setup-go main composite
  • docker/login-action v1 composite
.github/workflows/integration_test.yml actions
  • actions/checkout main composite
  • actions/setup-go main composite
  • sustainable-computing-io/kepler-action main composite
.github/workflows/release.yml actions
  • 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
.github/workflows/unit_test.yml actions
  • 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
build/Dockerfile docker
  • 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
go.mod go
  • 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
go.sum go
  • 576 dependencies
.github/workflows/daily.yml actions
.github/workflows/developer_local.yml actions
  • actions/checkout v4 composite
  • actions/setup-go v3 composite
.github/workflows/golang.yml actions
  • actions/checkout v4 composite
  • actions/setup-go v3 composite
  • actions/setup-go v2 composite
  • golangci/golangci-lint-action v3 composite
.github/workflows/gosec.yml actions
  • actions/checkout v4 composite
  • github/codeql-action/upload-sarif v1 composite
  • securego/gosec master composite
.github/workflows/image_base.yml actions
  • 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
.github/workflows/image_pr.yml actions
  • 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
.github/workflows/integration_test_libbpf.yml actions
  • 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
.github/workflows/platform-validation.yml actions
  • 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
.github/workflows/pull_request.yml actions
.github/workflows/push.yml actions
.github/workflows/scorecard.yml actions
  • actions/checkout 93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 composite
  • actions/upload-artifact 3cea5372237819ed00197afe530f5a7ea3e805c8 composite
  • github/codeql-action/upload-sarif 17573ee1cc1b9d061760f3a006fc4aac4f944fd5 composite
  • ossf/scorecard-action e38b1902ae4f44df626f11ba0734b14fb91f8f86 composite

Score: 15.163761872209653