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.

https://github.com/sustainable-computing-io/kepler

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 8 committers (12.5%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.5%) to scientific vocabulary

Keywords

cloud-native energy-consumption energy-efficiency energy-monitor kubernetes prometheus prometheus-exporter sustainability

Keywords from Contributors

projection interactive serializer measurement cycles packaging charts network-simulation archival shellcodes
Last synced: 6 months ago · JSON representation

Repository

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.

Basic Info
Statistics
  • Stars: 1,382
  • Watchers: 21
  • Forks: 214
  • Open Issues: 157
  • Releases: 50
Topics
cloud-native energy-consumption energy-efficiency energy-monitor kubernetes prometheus prometheus-exporter sustainability
Created about 4 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Code of conduct Security Governance Maintainers Dco

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:

```bash

💻 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

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.

Owner

  • Name: Sustainable Computing
  • Login: sustainable-computing-io
  • Kind: organization
  • Email: info@sustainable-computing.io
  • Location: United States of America

GitHub Events

Total
  • Create event: 76
  • Release event: 14
  • Issues event: 125
  • Watch event: 218
  • Delete event: 52
  • Issue comment event: 613
  • Push event: 303
  • Pull request review comment event: 509
  • Pull request review event: 770
  • Pull request event: 583
  • Fork event: 28
Last Year
  • Create event: 76
  • Release event: 14
  • Issues event: 125
  • Watch event: 218
  • Delete event: 52
  • Issue comment event: 613
  • Push event: 303
  • Pull request review comment event: 509
  • Pull request review event: 770
  • Pull request event: 583
  • Fork event: 28

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 218
  • Total Committers: 8
  • Avg Commits per committer: 27.25
  • Development Distribution Score (DDS): 0.55
Past Year
  • Commits: 218
  • Committers: 8
  • Avg Commits per committer: 27.25
  • Development Distribution Score (DDS): 0.55
Top Committers
Name Email Commits
vprashar2929 v****9@g****m 98
Sunil Thaha s****a@r****m 78
Vimal Kumar v****8@g****m 24
Kaiyi Liu k****u@r****m 6
Sunyanan Choochotkaew s****1@i****m 5
SamYuan1990 y****9@1****m 4
Ray Huang b****g@c****w 2
dependabot[bot] 4****] 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 583
  • Total pull requests: 2,259
  • Average time to close issues: 2 months
  • Average time to close pull requests: 9 days
  • Total issue authors: 124
  • Total pull request authors: 64
  • Average comments per issue: 3.88
  • Average comments per pull request: 1.58
  • Merged pull requests: 1,726
  • Bot issues: 1
  • Bot pull requests: 317
Past Year
  • Issues: 103
  • Pull requests: 729
  • Average time to close issues: 4 days
  • Average time to close pull requests: 7 days
  • Issue authors: 34
  • Pull request authors: 21
  • Average comments per issue: 0.62
  • Average comments per pull request: 1.3
  • Merged pull requests: 506
  • Bot issues: 0
  • Bot pull requests: 120
Top Authors
Issue Authors
  • rootfs (88)
  • jichenjc (56)
  • SamYuan1990 (47)
  • sunya-ch (42)
  • vprashar2929 (40)
  • sthaha (36)
  • dave-tucker (26)
  • marceloamaral (14)
  • jharriga (10)
  • jiere (10)
  • KaiyiLiu1234 (10)
  • vimalk78 (9)
  • husky-parul (8)
  • nikimanoledaki (8)
  • williamcaban (7)
Pull Request Authors
  • vprashar2929 (351)
  • dependabot[bot] (305)
  • rootfs (290)
  • sthaha (274)
  • SamYuan1990 (189)
  • vimalk78 (138)
  • jichenjc (115)
  • marceloamaral (100)
  • sunya-ch (97)
  • dave-tucker (93)
  • maryamtahhan (82)
  • KaiyiLiu1234 (47)
  • husky-parul (17)
  • github-actions[bot] (12)
  • jiere (10)
Top Labels
Issue Labels
kind/bug (170) wontfix (123) kind/feature (110) kind/documentation (19) enhancement (18) to be closed (8) help wanted (8) bug (7) discussion (5) urgent-priority (5) high-priority (5) tech-debt (5) non-k8s environment (4) good first issue (4) pinned (4) documentation (3) low-priority (3) kind/nomination (2) github_actions (2) medium (1) dependencies (1)
Pull Request Labels
dependencies (314) go (161) github_actions (137) chore (114) ci (63) feat (45) fix (30) wontfix (27) docs (27) refactor (11) test (9) enhancement (9) requires-manual-test (9) bug (8) kind/feature (5) do-not-merge (4) high-priority (2) documentation (1) urgent-priority (1) breaking-change (1)

Packages

  • 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
  • Versions: 64
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Docker Downloads: 361
Rankings
Docker downloads count: 2.0%
Stargazers count: 3.2%
Forks count: 3.4%
Average: 4.4%
Dependent repos count: 4.8%
Dependent packages count: 8.5%
Last synced: about 1 year ago

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