Releases: alumet-dev/alumet
Alumet v0.6.1
Bugfixes
- Refactor and fix the way that CLI arguments are handled by @TheElectronWill in #51
- core: Make threading::use_realtime_scheduling work with musl by @TheElectronWill in #57
- fix(plugin_k8s): don't explore folder which don't end with .slice by @AngeCyp in #61
Minor changes
- docs(README): Add some badges by @titouanj in #47
- docs(README): Add link to crates.io to the badge by @titouanj in #48
Pre-compiled binaries
You can find below pre-compiled binaries of the Alumet agents. They are compiled on Ubuntu 22.04 LTS and will work on any system with a glibc version >= 2.35. They include a set of plugins, but not all. Refer to the docs to build your custom Alumet agent and choose the measurement plugins that you want to deploy.
Full Changelog: v0.6.0...v0.6.1
Alumet v0.6.0
What's new in the core
- Big refactoring of Alumet's core library.
- Better error handling and recovery.
- Cleaner builders for pipeline and agent.
- Alumet now supports
async
outputs. - Global metric registry: the metrics can now be accessed from any element of the pipeline (see #19)
- The configuration can now disable individual plugins
- Environment variables can now be used in the config
- More possibilities of control
- More tests
- Bugfixes
Plugin changes
- New plugin: first version (alpha) of the energy attribution plugin, tested on K8S clusters at 1Hz.
- New plugin: system and processes monitoring via
/proc
- The output of the relay client now uses a buffer for better performance.
- The
k8s
plugin has been generalized to acgroupv2
plugin. - The
k8s
plugin handles API tokens a little better. - More config options
Details
- feat/Add a config field for the relay server plugin address by @titouanj in #26
- Feature/Add some configurations possibility by @titouanj in #27
- Pipeline rework: global metric registry, simplified tasks and better control by @TheElectronWill in #19
- Stricter CI checks by @TheElectronWill in #29
- fix(plugin-influxdb): Skip empty MeasurementBuffers in
write
by @titouanj in #31 - feat(alumet): Add environment variable interpolation for config files by @titouanj in #32
- Feature/system and processes monitoring by @TheElectronWill in #33
- Summer core improvements by @TheElectronWill in #35
- Allow the config file to disable individual plugins by @TheElectronWill in #37
- Merge the agents in a single crate by @TheElectronWill in #38
- Refactor/split k8s from cgroupv2 by @AngeCyp in #36
- Improvements for the relay mode by @TheElectronWill in #39
- Fixes for the exec mode by @TheElectronWill in #41
- doc: Rewrite the readme and add a contributing guide by @TheElectronWill in #43
- Feature: Add the first implementation of the k8s energy attribution by @titouanj in #44
- fix(plugin-energy-attribution): Change the cgroup metric name in the pre_pipeline_start by @titouanj in #45
- Last features and fixes for v0.6 by @TheElectronWill in #46
New Contributors
Full Changelog: v0.5.0...v0.6.0
ALUMET v0.5.0
This new release features the support of Kubernetes clusters and OAR2 clusters.
Plugin changes
- Discovering folders for pods by @AngeCyp in #3
- Watch new pods created during measures by @AngeCyp in #5
- Retrieve K8S pods names by @AngeCyp in #17
- Cgroups v1 and OAR2 Plugin by @sofiaduqueg in #12
- Improved error messages and RAPL hints by @TheElectronWill
New Contributors
- @sofiaduqueg made their first contribution in #12
Full Changelog: v0.4.0...v0.5.0
ALUMET v0.4.0
Core changes
- It is now possible to add new measurement sources at runtime, after the pipeline has been built.
- Event handlers now return a
Result
to handle errors more gracefully. - The pipeline now waits for the sources, transforms and outputs to finish before stopping. This allows all the plugins to flush their buffers, avoiding data loss.
- Errors that occur in pipeline elements are handled more effectively.
- Improved ergonomics and robustness of the pipeline builder.
MeasurementBuffer
now implementsIntoIterator
.- Other improvements to the plugin API, including more documentation ✍️
The aforementioned improvements have enabled the creation of two new plugins and one agent feature! (see below) 🎉
Plugin changes
- New:
perf
plugin (#2) for perf_events monitoring and profiling (hardware, software and cache events are supported) - New:
influx
plugin to send measurements to InfluxDB v2 - More options for the
csv
plugin - More options for the
nvidia
plugin - Bug fixes for the
rapl
plugin: it is now more robust to unexpected situations (such as kernel modules not being loaded)
Agent changes
- The
app-agent
crate (that producesalumet-agent
) has a new "exec mode" that spawns and observes a single process. - Both the "normal" alumet agent and the relay agent now suggest to regenerate the configuration file if it is invalid.
- Other improvements to the textual output of the agents.
Full Changelog: v0.3.0...v0.4.0
ALUMET v0.3.0
Core changes
- Support for anonymous sources
- Configurable command latency guarantee
- Configuration management: 1 config per app ("global config") + 1 config per plugin, from TOML files (can be overriden by CLI arguments)
- Graceful shutdown on SIGTERM
- Other improvements to the plugin API
- Beginning of the
EventBus
for inter-plugin communication - First "good" version of the API for dynamic plugins (still very much WIP)
Plugin changes
The aforementioned improvements have enabled the creation of new plugins! 🎉
- K8S plugin (#1) thanks to @AngeC15
- Relay plugin with two parts (client + server) thanks to @TheElectronWill
- Draft of the "perf events" plugin
Relay plugin
The relay plugin, used by app-relay-collector
, enables Alumet to work in "relay" mode, where each compute node runs an agent that pushes the metrics to a "collector".
ALUMET v0.2.0
Core changes
- More documentation!
- Plugins written in Rust are now created by implementing the
rust::AlumetPlugin
instead ofPlugin
. This allows the name and version of static plugins to be available before the initialization phase. - Agent creation is now easier than ever, thanks to
agent::Agent
andagent::AgentBuilder
- Plugins can now register custom units.
- Units can now be prefixed, for example
PrefixedUnit::milli(Ampere)
- More work on configuration files.
Plugin changes
plugin-nvidia
now supports NVIDIA Jetson devices running NVIDIA Jetpack versions 4.x, 5.x and 6.xplugin-rapl
is now more robust to errors and gives actionable solutions to common permission issues