# Kepler Sandbox Application
Please refer to the Sandbox application form
https://github.com/cncf/sandbox/issues/new?assignees=&labels=New&template=application.yml&title=%5BSandbox%5D+%3CProject+Name%3E
And a sample submission
https://github.com/cncf/sandbox/issues/17
## Application contact emails
`Provide the email address(es) of individuals who should be contacted regarding this application. If more than one email is provided, please comma separate them.`
hchen@redhat.com, chen.wang1@ibm.com, niki@weave.works
## Project Summary
`Provide a very brief, single line summary of the project.`
Kepler is a lightweight Pod level power consumption metrics exporter.
## One-line summary of the project
#### Project Description
`Provide a brief, 100-300 word description of the project that explains what it does and why its needed.`
Kepler (Kubernetes-based Efficient Power Level Exporter) uses eBPF to probe CPU performance counters and Linux kernel tracepoints. These data and stats from cgroup and sysfs are fed into ML models to estimate power consumption by Pods. The power consumption stats are then presented as Prometheus metrics and telemetry that can be used for Pod scheduling or scaling, energy consumption reporting and visulization, or can be extended with carbon intensity metrics to report on carbon footprint of Cloud Native workload.
## Describe what it does and why it's needed.
Global emissions Cloud computing accounts for 2.5% to 3.7% of all global greenhouse gas emissions [1]. Both Cloud operators and end users are increasingly eager to measure and manage carbon footprint from the infrastructure and workload.
Kepler aims to help the CNCF to measure how much power that are consumed the Cloud Native workload. It uses eBPF to reduce the runtime overhead and scientific methods to improve measurement accuracy.
Kepler can measure workload that run on private and Public cloud, physical or virtual machines, CPU or GPU. It strives to support all environments that CNCF projects are deployed.
1. https://theshiftproject.org/en/article/lean-ict-our-new-report/
## Org repo URL
`Provide the URL of GitHub or Gitlab organization of the project. If no organization, provide "N/A".`
https://github.com/sustainable-computing-io
## Project repo URL
`Provide the URL of the primary source code for the project. If no primary repo exists, provide "N/A" and enumerate repos in the next question.`
https://github.com/sustainable-computing-io/kepler
## Add code repo URL here
https://github.com/sustainable-computing-io/kepler
## Additional repos
`Provide the URL any additional repos for this project if appropriate.`
To clarify the confusion that was introduced in the first application, Kepler project has multiple GitHub repo, all of them are donated to CNCF.
Kepler develops its own online ML trainer and model server (kepler-model-server), inference server (kepler-estimator). The models are developed by using code in the workload repo(energy-measure-data). The docuementation repo (kepler-doc) and deployment repos (kepler-operator and kepler-helm-chart) as well as GitHub CI artifacts (kepler-ci-artifacts) are all part of the Kepler sandbox application package.
In addition, the Kepler community has explored to integrate Kepler metrics with Kubernetes Scheduler (in repo peaks) and VPA (in repo clever). These exploration projects are also donated to CNCF to help the CNCF community get insight of how to integrate Kepler into their own use cases.
These repos are:
https://github.com/sustainable-computing-io/kepler-model-server
https://github.com/sustainable-computing-io/kepler-estimator
https://github.com/sustainable-computing-io/energy-measurement-data
https://github.com/sustainable-computing-io/kepler-doc
https://github.com/sustainable-computing-io/kepler-operator
https://github.com/sustainable-computing-io/kepler-helm-chart
https://github.com/sustainable-computing-io/kepler-ci-artifacts/
https://github.com/sustainable-computing-io/peaks/
https://github.com/sustainable-computing-io/clever/
## Add additional repo URLs here
## Website URL
`Provide the URL of the project's website. If the project has no website, please provide the primary repo URL again.`
https://sustainable-computing.io/
## Roadmap
`Provide the URL of the project's roadmap.`
https://github.com/sustainable-computing-io/kepler/wiki/Roadmap
##### Roadmap context
`You may optionally provide any details of the roadmap you feel are required for clarity.`
## Contributing Guide
`Provide the URL of the project's contribution guide. If the guide is embedded in another file, please deep link to the correct header.`
https://github.com/sustainable-computing-io/kepler/blob/main/CONTRIBUTING.md
## Code of Conduct (CoC)
##### Provide the URL of the project's code of conduct.
## Adopters
##### Provide the URL of the project's Adopters file. If no file exists, move on to the next question.
## Add Adopters URL here
##### Contributing or Sponsoring Org
###### Provide the URL of the project's contributing or sponsoring company/organization. If no such company/organization exists move on to the next question.
## Add sponsoring company or org URL here
https://www.ibm.com/
https://www.redhat.com/
**to confirm with Intel and WeaveWorks
## Maintainers file
##### Provide the URL of the project's maintainers file.
https://github.com/sustainable-computing-io/kepler/blob/main/Contributors.md
## IP Policy
##### By submitting this issue, you understand that if accepted, the project will be required to follow the CNCF IP Policy located at https://github.com/cncf/foundation/blob/master/charter.md#11-ip-policy
If the project is accepted, I agree the project will follow the CNCF IP Policy *
Trademark and accounts
By submitting this issue, you understand that if accepted, all project trademarks and accounts will be donated to the CNCF
If the project is accepted, I agree to donate all project trademarks and accounts to the CNCF *
## Why CNCF?
##### Why do you want to contribute the project to the CNCF? ##### What value does being part of the CNCF provide the project?
## The CNCF can provide the project with...
##### Benefit to the Landscape
##### How will adding this project benefit the CNCF landscape?
Global emissions Cloud computing accounts for 2.5% to 3.7% of all global greenhouse gas emissions [1]. Both Cloud operators and end users are increasingly eager to measure and manage carbon footprint from the infrastructure and workload.
Kepler aims to work with the CNCF community to measure how much power that are consumed the Cloud Native workload. It uses eBPF to reduce the runtime overhead and scientific methods to improve measurement accuracy. Kepler can measure workload that run on private and Public cloud, physical or virtual machines, CPU or GPU. It strives to support all environments that CNCF projects are deployed.
This project will help the newly Environmental Sustainability TAG to provide fact based evidence for research, investigation, and improvement.
1. https://theshiftproject.org/en/article/lean-ict-our-new-report/
## This project benefits the landscape by...
##### Cloud Native 'Fit'
###### Please explain where you see the project "fitting" in the Cloud Native landscape.
## This project...
##### Cloud Native 'Integration'
##### What CNCF projects does this project complement or depend on, and how?
Kepler is a Cloud Native power meter to measure Kubernetes Pod energy consumption. By exporting energy and CO2 metrics and integrating with other Cloud Native services, Kepler plugs the gaps that are critical in Sustainability and Green Computing.
Getting Kepler into the CNCF landscape raises CNCF's prospects on Sustainability, quantifies the Sustainability metrics of CNCF projects, enables more fact driven CO2 reduction by integrating Kepler metrics with CNCF projects.
Kepler project is contributed by Red Hat, IBM, Intel and WeaveWorks. CNCF ecosystem inclusion will promote Kepler project's community engagement.
## Cloud Native Overlap
##### What CNCF projects does this project overlap with, and how?
## Similar projects
##### Please list similar projects in the CNCF or elsewhere. If none exist, provide "N/A".
**TODO to explain these projects
1. Scaphandre, https://github.com/hubblo-org/scaphandre
2. PowerAPI, https://github.com/powerapi-ng/powerapi
## Product or Service to Project separation
##### If this project is closely related to one or more products or services for the sponsoring company/organization(s), how do you plan to separate this project from any products in terms of organization and development? If it is not related to a product or service, just provide "N/A".
N/A
## Project presentations
###### Has your project been presented to any TAG? If so, please link meeting notes and/or recordings as applicable.
## Project champions
##### Please list any people who are part of CNCF leadership (TOC, TAGS, etc.) who can endorse or answer questions about your project.
## Additional information
##### Any additional information you would like the TOC to consider when evaluating this project?