A curated list of open technology projects to sustain a stable climate, energy supply, biodiversity and natural resources.

PowerAPI

A middleware toolkit for building software-defined power meters.
https://github.com/powerapi-ng/powerapi

Category: Consumption
Sub Category: Computation and Communication

Keywords

energy energy-monitoring green-computing inria power-meter python

Keywords from Contributors

power powerapi measur transforms archiving rapl spiral observation generic conversion

Last synced: about 20 hours ago
JSON representation

Repository metadata

PowerAPI is a Python framework for building software-defined power meters.

README.md

License: BSD 3
GitHub Workflow Status
PyPI
Codecov
Zenodo
JOSS paper

PowerAPI is a middleware toolkit for building software-defined power meters.
Software-defined power meters are configurable software libraries that can estimate the power consumption of software in real-time.
PowerAPI supports the acquisition of raw metrics from a wide diversity of sensors (eg., physical meters, processor interfaces, hardware counters, OS counters) and the delivery of power consumptions via different channels (including file system, network, web, graphical).
As a middleware toolkit, PowerAPI offers the capability of assembling power meters «à la carte» to accommodate user requirements.

About

PowerAPI is an open-source project developed by the Spirals project-team, a joint research group between the University of Lille and Inria.

The documentation of the project is available here.

Mailing list

You can follow the latest news and asks questions by subscribing to our mailing list.

Contributing

If you would like to contribute code you can do so through GitHub by forking the repository and sending a pull request.

When submitting code, please make every effort to follow existing conventions and style in order to keep the code as readable as possible.

Publications

Use Cases

PowerAPI is used in a variety of projects to address key challenges of GreenIT:

  • SmartWatts is a self-adaptive power meter that can estimate the energy consumption of software containers in real-time.
  • GenPack provides a container scheduling strategy to minimize the energy footprint of cloud infrastructures.
  • VirtualWatts provides process-level power estimation of applications running in virtual machines.
  • Web Energy Archive ranks popular websites based on the energy footpring they imposes to browsers.
  • Greenspector optimises the power consumption of software by identifying potential energy leaks in the source code.

Research Projects

Currently, PowerAPI is used in two research projects:

License

PowerAPI is licensed under the BSD-3-Clause License. See the LICENSE file for details.

FOSSA Status

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite our article in the Journal of Open Source Software."
title: "PowerAPI: A Python framework for building software-defined power meters"
license: "BSD-3-Clause"
type: software
url: "https://powerapi.org"
repository-code: "https://github.com/powerapi-ng/powerapi"
doi: 10.5281/zenodo.11453194
keywords:
  - powerapi
  - energy
  - green-computing
  - python-framework
authors:
  - given-names: "Guillaume"
    family-names: "Fieni"
    affiliation: "Inria"
    orcid: "https://orcid.org/0000-0002-0165-6824"
  - given-names: "Daniel"
    family-names: "Romero Acero"
    affiliation: "Inria"
    orcid: "https://orcid.org/0000-0002-5317-2610"
  - given-names: "Pierre"
    family-names: "Rust"
    affiliation: "Orange Labs"
    orcid: "https://orcid.org/0000-0002-2761-4702"
  - given-names: "Romain"
    family-names: "Rouvoy"
    affiliation: "University of Lille"
    orcid: "https://orcid.org/0000-0003-1771-8791"
preferred-citation:
  authors:
    - given-names: "Guillaume"
      family-names: "Fieni"
      orcid: "https://orcid.org/0000-0002-0165-6824"
    - given-names: "Daniel"
      family-names: "Romero Acero"
      orcid: "https://orcid.org/0000-0002-5317-2610"
    - given-names: "Pierre"
      family-names: "Rust"
      orcid: "https://orcid.org/0000-0002-2761-4702"
    - given-names: "Romain"
      family-names: "Rouvoy"
      orcid: "https://orcid.org/0000-0003-1771-8791"
  date-published: 2024-06-04
  doi: 10.21105/joss.06670
  issn: 2475-9066
  issue: 98
  journal: Journal of Open Source Software
  publisher:
    name: Open Journals
  start: 6670
  title: "PowerAPI: A Python framework for building software-defined power meters"
  type: article
  url: "https://joss.theoj.org/papers/10.21105/joss.06670"
  volume: 9


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 4 days ago

Total Commits: 1,685
Total Committers: 15
Avg Commits per committer: 112.333
Development Distribution Score (DDS): 0.736

Commits in past year: 318
Committers in past year: 5
Avg Commits per committer in past year: 63.6
Development Distribution Score (DDS) in past year: 0.374

Name Email Commits
Arthur d'Azémar a****r@i****r 445
Guillaume Fieni g****i@i****r 397
dependabot[bot] 4****] 303
Jordan Bouchoucha j****a@p****m 241
daniel d****o@u****r 113
daniel d****o@i****r 111
Lauric Desauw l****w@i****r 48
Romain Rouvoy r****y@u****r 10
Pierre Rust p****t@o****m 9
TomeMD t****a@u****s 2
Jordan j****a@g****m 2
Lars Schellhas l****s@o****m 1
Dimitri Saingre d****e@d****r 1
Benjamin DANGLOT b****t@g****m 1
root r****t@n****u 1

Committer domains:


Issue and Pull Request metadata

Last synced: 2 days ago

Total issues: 87
Total pull requests: 523
Average time to close issues: 6 months
Average time to close pull requests: 3 days
Total issue authors: 25
Total pull request authors: 18
Average comments per issue: 1.09
Average comments per pull request: 0.94
Merged pull request: 493
Bot issues: 0
Bot pull requests: 339

Past year issues: 10
Past year pull requests: 273
Past year average time to close issues: 30 days
Past year average time to close pull requests: about 23 hours
Past year issue authors: 6
Past year pull request authors: 8
Past year average comments per issue: 0.7
Past year average comments per pull request: 1.15
Past year merged pull request: 259
Past year bot issues: 0
Past year bot pull requests: 219

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/powerapi-ng/powerapi

Top Issue Authors

  • altor (27)
  • roda82 (16)
  • PierreRustOrange (5)
  • Kayoku (5)
  • tibosmn (4)
  • gfieni (4)
  • danglotb (3)
  • chakib-belgaid (2)
  • TomeMD (2)
  • Thommil (2)
  • varshaprasad96 (2)
  • dsaingre (2)
  • sirAnone (1)
  • henriquedavid (1)
  • Urhengulas (1)

Top Pull Request Authors

  • dependabot[bot] (339)
  • gfieni (77)
  • altor (47)
  • roda82 (21)
  • Kayoku (14)
  • PierreRustOrange (9)
  • danielskatz (2)
  • jorgermurillo (2)
  • rouvoy (2)
  • TomeMD (2)
  • dsaingre (1)
  • fossabot (1)
  • Thommil (1)
  • larsschellhas (1)
  • KellianL (1)

Top Issue Labels

  • enhancement (26)
  • bug (14)
  • refactoring (10)
  • doc (6)
  • test (5)
  • question (2)
  • consortium (2)
  • help wanted (1)

Top Pull Request Labels

  • dependencies (339)
  • enhancement (44)
  • refactoring (41)
  • bug (23)
  • doc (7)
  • consortium (3)
  • test (1)

Package metadata

pypi.org: powerapi

PowerAPI is a middleware toolkit for building software-defined power meters.

  • Homepage:
  • Documentation: https://powerapi.readthedocs.io/
  • Licenses: BSD-3-Clause
  • Latest release: 2.10.0 (published about 1 month ago)
  • Last Synced: 2025-04-25T13:05:21.816Z (2 days ago)
  • Versions: 55
  • Dependent Packages: 0
  • Dependent Repositories: 4
  • Downloads: 2,510 Last month
  • Docker Downloads: 49
  • Rankings:
    • Docker downloads count: 3.196%
    • Dependent repos count: 7.478%
    • Average: 8.243%
    • Dependent packages count: 10.141%
    • Downloads: 12.156%
  • Maintainers (1)

Dependencies

docs/requirements.txt pypi
  • sphinxcontrib-apidoc *
.github/workflows/build.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
  • codecov/codecov-action eaaf4bedf32dbdc6b720b63067d99c4d77d6047d composite
.github/workflows/codeql.yml actions
  • actions/checkout v4 composite
  • github/codeql-action/analyze v2 composite
  • github/codeql-action/autobuild v2 composite
  • github/codeql-action/init v2 composite
.github/workflows/release.yml actions
  • actions/checkout v4 composite
  • actions/setup-python v4 composite
  • docker/build-push-action 0565240e2d4ab88bba5387d719585280857ece09 composite
  • docker/login-action 343f7c4344506bcbf9b4de18042ae17996df046d composite
  • docker/metadata-action 96383f45573cb7f253c731d3b3ab81c87ef81934 composite
  • docker/setup-buildx-action f95db51fddba0c2d1ec667646a06c2ce06100226 composite
  • pypa/gh-action-pypi-publish b7f401de30cb6434a1e19f805ff006643653240e composite
  • softprops/action-gh-release de2c0eb89ae2a093876385947365aca7b0e5f844 composite
Dockerfile docker
  • python 3-slim@sha256 build
pyproject.toml pypi
  • pyzmq >= 18.1.0
  • setproctitle >= 1.1.8

Score: 15.964935730167198