ALUMET

A modular tool that measures energy consumption and performance metrics of CPU and GPU.
https://github.com/alumet-dev/alumet

Category: Consumption
Sub Category: Computation and Communication

Keywords

cloud-computing edge-computing energy-consumption energy-efficiency hpc-systems kubernetes monitoring profiling research-paper rust sustainability wattmeter

Last synced: about 19 hours ago
JSON representation

Repository metadata

Next-gen monitoring with high-frequency energy measurement.

README.md

Adaptive, Lightweight, Unified Metrics.

Alumet is a modular framework for local and distributed measurement.

Overview

Alumet provides a unified interface for gathering measurements with sources (on the left), transforming the data with models (in the middle) and writing the result to various outputs (on the right).
The elements (colored rectangles) are created by plugins, on top of a standard framework.

  • Extensible Framework: Alumet can easily be extended in order to make new research experiments. Leverage existing plugins and only add what you need, without reinventing the wheel. Take advantage of the unified data model and parallel measurement pipeline.
  • Operational Tool: the end result is (or aims to be) a ready-to-use measurement tool that is robust, efficient and scalable.

Learn more on the website.

Use cases

Tools built with Alumet can be used for (non-exhaustive list):

  • measuring the energy consumption of some hardware component (CPU, GPU, etc.) in an accurate and efficient way by using the latest research results[^1]
  • local system monitoring (bare-metal HPC node, cloud VM, etc.)
  • distributed monitoring (datacenters, K8S clusters, etc.)
  • profiling a specific application

[^1]: See the following research paper for a detailed analysis of some common errors in RAPL-based measurement tools: Guillaume Raffin, Denis Trystram. Dissecting the software-based measurement of CPU energy consumption: a comparative analysis. 2024. ⟨hal-04420527v2⟩.

How to use

We provide a standard Alumet agent that you can install on your system(s). For the moment, Linux is the only supported OS. Download the agent from the latest release.

Please read the Alumet User Book to learn how to install and use the Alumet "agent" (the program that performs the measurements).

If you have a question, feel free to ask on the Discussions page.

Extending Alumet

The alumet crate, aka "Alumet core", provides the measurement framework in the form of a library.
This library offers a plugin system that you can use to extend Alumet in the following ways:

  • read new sources of measurements
  • apply arbitrary transformations to the data (such as energy attribution models)
  • export the data to new outputs
  • perform actions on startup and shutdown

Please read the Alumet Developer Book to learn how to make plugins and agents.

Contributing

Alumet is a joint project between the LIG (computer science laboratory of Grenoble) and Eviden (Atos HPC R&D). It is also open to external volunteers like you!

Please go to the contributing guide to get started (work in progress).

License

Copyright 2024 Guillaume Raffin, BULL SAS, CNRS, INRIA, Grenoble INP-UGA.
Licensed under the EUPL-1.2 or later.

You can find more information about the EUPL here. The EUPL is compatible with many other open source licenses and shares some principles with the well-known LGPL.


Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 1 day ago

Total Commits: 938
Total Committers: 15
Avg Commits per committer: 62.533
Development Distribution Score (DDS): 0.359

Commits in past year: 487
Committers in past year: 11
Avg Commits per committer in past year: 44.273
Development Distribution Score (DDS) in past year: 0.507

Name Email Commits
Guillaume Raffin t****l@g****m 601
Cyprien Pelisse-Verdoux c****x@e****m 116
Titouan Jouffray t****y@e****m 68
A809921 g****z@a****t 36
mdacosta d****b@i****r 36
Huret, Antoine a****t@e****m 34
Victory, Eagle v****7@p****m 20
sofiaduqueg s****g@u****o 8
Kelyan Pegeot Selme k****e@e****m 4
Brochier, Aymeric a****r@e****m 4
Emmanuel Zychla e****a@a****t 3
laurent cutting l****g@g****m 2
emmanuel zychla e****a@e****m 2
Cyprien 7****5 2
ARTHUR CHENU (ext) a****l@e****m 2

Committer domains:


Issue and Pull Request metadata

Last synced: 3 days ago

Total issues: 126
Total pull requests: 279
Average time to close issues: about 2 months
Average time to close pull requests: 10 days
Total issue authors: 14
Total pull request authors: 16
Average comments per issue: 0.79
Average comments per pull request: 0.81
Merged pull request: 200
Bot issues: 0
Bot pull requests: 0

Past year issues: 67
Past year pull requests: 181
Past year average time to close issues: about 1 month
Past year average time to close pull requests: 9 days
Past year issue authors: 10
Past year pull request authors: 12
Past year average comments per issue: 1.21
Past year average comments per pull request: 0.68
Past year merged pull request: 118
Past year bot issues: 0
Past year bot pull requests: 0

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

Top Issue Authors

  • TheElectronWill (71)
  • AngeCyp (18)
  • ezychlagre (11)
  • guigomcha (8)
  • titouanj (4)
  • thealanjason (3)
  • khannurien (2)
  • victoryeagle77 (2)
  • millillitre (2)
  • cuttingl (1)
  • bzizou (1)
  • TwilCynder (1)
  • Zeff020 (1)
  • laurent-morin (1)

Top Pull Request Authors

  • TheElectronWill (98)
  • AngeCyp (49)
  • ahuret (42)
  • titouanj (23)
  • victoryeagle77 (20)
  • guigomcha (16)
  • millillitre (6)
  • cuttingl (6)
  • Aymeric-Brochier (4)
  • kelyaenn (4)
  • ezychlagre (3)
  • pessi-v (2)
  • sofiaduqueg (2)
  • YouriRigaud (2)
  • AngeC15 (1)

Top Issue Labels

  • T:bug (38)
  • A:existing-plugin (25)
  • D:easy (18)
  • T:ux (17)
  • A:core ⚙️ (11)
  • A:core (9)
  • A:app-agent (7)
  • D:medium (7)
  • A:repository (7)
  • P:high (6)
  • T:api-improvement (6)
  • T:code-quality (6)
  • T:doc (5)
  • P:low (4)
  • D:hard (4)
  • A:agent (4)
  • good first issue (4)
  • A:new-plugin (3)
  • T:performance (2)
  • A:plugin-cgroup (2)
  • T:core-agent (2)
  • T:core-pipeline (1)
  • S:new-plugin (1)
  • T:core-plugin (1)
  • T:core-test (1)
  • on hold (1)

Top Pull Request Labels

  • A:new-plugin (14)
  • A:existing-plugin (13)
  • T:code-quality (8)
  • A:core (5)
  • A:repository (5)
  • P:high (4)
  • D:easy (3)
  • T:bug (3)
  • D:hard (2)
  • A:app-relay (2)
  • A:core ⚙️ (2)
  • T:ux (1)
  • A:app-agent (1)

Package metadata

proxy.golang.org: github.com/alumet-dev/alumet

  • Homepage:
  • Documentation: https://pkg.go.dev/github.com/alumet-dev/alumet#section-documentation
  • Licenses: eupl-1.2
  • Latest release: v0.9.3 (published 19 days ago)
  • Last Synced: 2026-02-27T10:02:12.532Z (3 days ago)
  • Versions: 18
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent packages count: 5.401%
    • Average: 5.583%
    • Dependent repos count: 5.764%
crates.io: alumet

Modular framework for hardware and software measurement (including energy consumption and more).

  • Homepage: https://alumet.dev
  • Documentation: https://docs.rs/alumet/
  • Licenses: EUPL-1.2
  • Latest release: 0.8.0 (published 11 months ago)
  • Last Synced: 2026-02-27T10:02:11.001Z (3 days ago)
  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 2,895 Total
  • Rankings:
    • Dependent repos count: 25.163%
    • Dependent packages count: 33.369%
    • Average: 51.611%
    • Downloads: 96.301%
  • Maintainers (1)

Dependencies

Cargo.toml cargo
plugins/aggregation/Cargo.toml cargo
  • time 0.3 development
  • futures 0.3.31
  • tokio-util 0.7.10
plugins/energy-attribution/Cargo.toml cargo
  • env_logger 0.11.8 development
  • pretty_assertions 1.4.1 development
  • time 0.3.41 development
  • toml 0.8.23 development
  • evalexpr 11.3
  • serde_json 1.0
plugins/relay/Cargo.toml cargo
plugins/nvidia-nvml/Cargo.toml cargo
  • nvml-wrapper 0.10.0
  • nvml-wrapper-sys 0.8.0
plugins/kwollect-input/Cargo.toml cargo
Cargo.lock cargo
  • 494 dependencies
.github/workflows/check_doc.yaml actions
  • DavidAnson/markdownlint-cli2-action v19 composite
  • actions/checkout v4 composite
  • streetsidesoftware/cspell-action v6 composite
.github/workflows/check_git.yaml actions
  • actions/checkout v4 composite
.github/workflows/release.yaml actions
  • actions/checkout v4 composite
  • actions/download-artifact v4 composite
  • actions/github-script v6 composite
  • docker/login-action v3 composite
  • softprops/action-gh-release v2 composite
plugins/rapl/Cargo.toml cargo
  • nix 0.30.1 development
  • enum-map 2.7.3
  • indoc 2.0.5
  • once_cell 1.21.3
  • perf-event-open-sys2 5.0.6
  • regex 1.10.6
plugins/cgroups/k8s/Cargo.toml cargo
  • mockito 1.7.0 development
  • base64 0.22.1
  • hostname 0.4.0
  • regex 1.11.1
  • serde_json 1.0.141
  • util-cgroups 0.1.0
  • util-cgroups-plugins 0.1.0
plugins/cgroups/oar/Cargo.toml cargo
  • serial_test 3.2.0 development
  • regex 1.11.1
  • util-cgroups 0.1.0
  • util-cgroups-plugins 0.1.0
agent/Cargo.toml cargo
  • assert_cmd 2.0.16 development
  • indoc 2.0.5 development
  • libc 0.2.159 development
  • clap 4.5.17
  • humantime 2.3.0
  • log 0.4
core/alumet/Cargo.toml cargo
  • console-subscriber 0.5.0 development
  • pretty_assertions 1.4.1 development
  • serial_test 3.2.0 development
  • futures 0.3.30
  • indexmap 2.13.0
  • indoc 2.0.5
  • libc 0.2.158
  • nc 0.9
  • num_enum 0.7.3
  • ordered-float 4.6.0
  • pin-project-lite 0.2.16
  • smallvec 1.13.2
  • tokio-stream 0.1.17
  • tokio-util 0.7.17
core/alumet-ffi/Cargo.toml cargo
plugins/cgroups/raw/Cargo.toml cargo
  • regex 1.11.1
  • util-cgroups 0.1.0
  • util-cgroups-plugins 0.1.0
plugins/cgroups/slurm/Cargo.toml cargo
  • regex 1.11.1
  • util-cgroups 0.1.0
  • util-cgroups-plugins 0.1.0
plugins/kwollect-output/Cargo.toml cargo
  • mockito 1.7.0 development
  • base64 0.22.1
  • hostname 0.4.0
  • serde_json 1.0.140
  • tokio 1.45.1
plugins/cgroups/util-cgroups/Cargo.toml cargo
  • criterion 0.6.0 development
  • mio 1.0.4
  • mount-watcher 0.5.0
  • nix 0.30.1
  • serde 1.0.219
  • walkdir 2.5.0
plugins/cgroups/util-cgroups-plugins/Cargo.toml cargo
  • expecting 0.6.0 development
  • regex 1.11.1
plugins/csv/Cargo.toml cargo
  • indoc 2.0.6 development
  • time 0.3.36
plugins/mongodb/Cargo.toml cargo
plugins/elasticsearch/Cargo.toml cargo
  • indoc 2.0.6 development
  • mockito 1.7.0 development
  • time 0.3 development
  • base64 0.22.1
  • serde_json 1.0.140
  • time 0.3.41
plugins/energy-estimation-tdp/Cargo.toml cargo
plugins/quarch/Cargo.toml cargo
plugins/socket-control/Cargo.toml cargo
  • regex 1.11.1 development
  • humantime 2.3.0
  • tokio-util 0.7.12
plugins/grace-hopper/Cargo.toml cargo
  • enum-map 2.7.3
plugins/influxdb/Cargo.toml cargo
  • mockito 1.7.0 development
  • itertools 0.14.0
plugins/nvidia-jetson/Cargo.toml cargo
  • regex 1.11.1
  • walkdir 2.5.0
plugins/opentelemetry/Cargo.toml cargo
  • opentelemetry *
  • opentelemetry-otlp *
  • opentelemetry_sdk *
plugins/perf/Cargo.toml cargo
plugins/process-to-cgroup-bridge/Cargo.toml cargo
  • lazy_static 1.5.0 development
plugins/procfs/Cargo.toml cargo
  • procfs 0.16.0
  • regex 1.10.6
  • rlimit 0.10.2
plugins/prometheus-exporter/Cargo.toml cargo
  • hyper 0.14
  • prometheus-client 0.21
  • time 0.3.36
separate-tests/test-dynamic-plugins/Cargo.toml cargo

Score: 15.284306140595909