PowerAPI

PowerAPI: A Python framework for building software-defined power meters - Published in JOSS (2024)

https://github.com/powerapi-ng/powerapi

Science Score: 100.0%

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

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 5 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org, zenodo.org
  • Committers with academic emails
    6 of 15 committers (40.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
    Published in Journal of Open Source Software

Keywords

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

Keywords from Contributors

mesh
Last synced: 4 months ago · JSON representation ·

Repository

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

Basic Info
  • Host: GitHub
  • Owner: powerapi-ng
  • License: bsd-3-clause
  • Language: Python
  • Default Branch: master
  • Homepage: https://powerapi.org
  • Size: 7.65 MB
Statistics
  • Stars: 227
  • Watchers: 9
  • Forks: 43
  • Open Issues: 4
  • Releases: 48
Topics
energy energy-monitoring green-computing inria power-meter python
Created almost 7 years ago · Last pushed 4 months ago
Metadata Files
Readme Contributing License Citation Codeowners Security

README.md

Powerapi

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

Owner

  • Name: PowerAPI
  • Login: powerapi-ng
  • Kind: organization
  • Email: contact@powerapi.org
  • Location: Lille, France

Software-Defined Power Meters

JOSS Publication

PowerAPI: A Python framework for building software-defined power meters
Published
June 04, 2024
Volume 9, Issue 98, Page 6670
Authors
Guillaume Fieni ORCID
Inria, France
Daniel Romero Acero ORCID
Inria, France
Pierre Rust ORCID
Orange Labs, France
Romain Rouvoy ORCID
Inria, France, University of Lille, France
Editor
Daniel S. Katz ORCID
Tags
C energy comsuption green computing

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

GitHub Events

Total
  • Create event: 183
  • Release event: 2
  • Issues event: 4
  • Watch event: 27
  • Delete event: 183
  • Issue comment event: 231
  • Push event: 237
  • Pull request review event: 129
  • Pull request event: 360
  • Fork event: 8
Last Year
  • Create event: 183
  • Release event: 2
  • Issues event: 4
  • Watch event: 27
  • Delete event: 184
  • Issue comment event: 232
  • Push event: 238
  • Pull request review event: 129
  • Pull request event: 360
  • Fork event: 8

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 1,751
  • Total Committers: 15
  • Avg Commits per committer: 116.733
  • Development Distribution Score (DDS): 0.746
Past Year
  • Commits: 282
  • Committers: 4
  • Avg Commits per committer: 70.5
  • Development Distribution Score (DDS): 0.362
Top Committers
Name Email Commits
Arthur d'Azémar a****r@i****r 445
Guillaume Fieni g****i@i****r 420
dependabot[bot] 4****] 346
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 (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 86
  • Total pull requests: 880
  • Average time to close issues: 6 months
  • Average time to close pull requests: 2 days
  • Total issue authors: 27
  • Total pull request authors: 18
  • Average comments per issue: 1.12
  • Average comments per pull request: 0.96
  • Merged pull requests: 778
  • Bot issues: 1
  • Bot pull requests: 591
Past Year
  • Issues: 5
  • Pull requests: 415
  • Average time to close issues: about 1 hour
  • Average time to close pull requests: about 18 hours
  • Issue authors: 5
  • Pull request authors: 5
  • Average comments per issue: 0.8
  • Average comments per pull request: 1.06
  • Merged pull requests: 367
  • Bot issues: 1
  • Bot pull requests: 309
Top Authors
Issue Authors
  • altor (27)
  • roda82 (14)
  • PierreRustOrange (5)
  • Kayoku (5)
  • gfieni (4)
  • tibosmn (3)
  • danglotb (3)
  • TomeMD (2)
  • chakib-belgaid (2)
  • varshaprasad96 (2)
  • Thommil (2)
  • dsaingre (2)
  • sirAnone (1)
  • henriquedavid (1)
  • Urhengulas (1)
Pull Request Authors
  • dependabot[bot] (591)
  • gfieni (170)
  • altor (47)
  • roda82 (25)
  • Kayoku (14)
  • PierreRustOrange (9)
  • danielskatz (4)
  • TomeMD (4)
  • rouvoy (4)
  • KellianL (2)
  • jorgermurillo (2)
  • Thommil (2)
  • larsschellhas (1)
  • EmileCadorel (1)
  • fossabot (1)
Top Labels
Issue Labels
enhancement (25) bug (14) refactoring (10) doc (6) test (5) question (2) help wanted (1) consortium (1) dependencies (1)
Pull Request Labels
dependencies (591) refactoring (95) enhancement (72) bug (31) doc (8) consortium (6) test (2)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 243 last-month
  • Total docker downloads: 49
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 4
    (may contain duplicates)
  • Total versions: 112
  • Total maintainers: 1
proxy.golang.org: github.com/powerapi-ng/powerapi
  • Versions: 57
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.4%
Average: 5.6%
Dependent repos count: 5.8%
Last synced: 4 months ago
pypi.org: powerapi

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

  • Versions: 55
  • Dependent Packages: 0
  • Dependent Repositories: 4
  • Downloads: 243 Last month
  • Docker Downloads: 49
Rankings
Docker downloads count: 3.2%
Dependent repos count: 7.5%
Average: 8.2%
Dependent packages count: 10.1%
Downloads: 12.2%
Maintainers (1)
Last synced: 4 months ago

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