An opinionated system metrics exporter for prometheus
- Rust 92.4%
- Nix 7.6%
|
Robin Appelman
47b6e9a287
All checks were successful
Release / publish (push) Successful in 54s
CI / build (, i686-unknown-linux-musl) (push) Successful in 43s
CI / build (.exe, x86_64-pc-windows-gnu) (push) Successful in 41s
CI / checks (push) Successful in 55s
CI / build (, aarch64-unknown-linux-musl) (push) Successful in 40s
CI / build (, armv7-unknown-linux-musleabihf) (push) Successful in 45s
CI / build (, x86_64-unknown-linux-musl) (push) Successful in 44s
|
||
|---|---|---|
| .forgejo/workflows | release ci | |
| src | multi gpu | |
| .envrc | allow disabling mdns | |
| .gitignore | allow disabling mdns | |
| Cargo.lock | multi gpu | |
| Cargo.toml | multi gpu | |
| flake.lock | updates | |
| flake.nix | updates | |
| module.nix | rename | |
| overlay.nix | rename | |
| package.nix | rename | |
| README.md | multi gpu | |
| sidewindow.service | rename | |
Sidewindow
Opinionated system metrics exporter for prometheus
Exported metrics
- cpu, memory, gpu memory, io, network and disk usage stats
- zfs pool usage and arc stats
- cpu and gpu temperature
- cpu and gpu power usage on modern amd and intel platforms
- docker per-container cpu, memory and network stats
- per-process memory usage for processes with a memory usage of over 1%
Usage
- Download the binary for your architecture from the
releases and place it at
/usr/local/bin/sidewindow - Place the sidewindow.service file in
/etc/systemd/system/ - Create the
sidewindowuser:sudo useradd -m sidewindow - Start enable enable the server:
sudo systemctl enable --now sidewindow - Metrics will be available at
localhost:5665/metrics
Some stats require additional permissions described below.
Power monitoring permissions
In recent kernel versions, precise power monitoring is only accessible to root
users to prevent using it as a side-channel attack. In order to get the power
monitoring output you'll need to give the sidewindow user access to this data
using the following steps.
-
Create a group using
sudo groupadd powermonitoring -
Create
/etc/udev/rules.d/99-powermonitoring.ruleswithSUBSYSTEM=="powercap", ACTION=="add", RUN+="/bin/chgrp -R powermonitoring /sys%p", RUN+="/bin/chmod -R g=u /sys%p" SUBSYSTEM=="powercap", ACTION=="change", ENV{TRIGGER}!="none", RUN+="/bin/chgrp -R powermonitoring /sys%p", RUN+="/bin/chmod -R g=u /sys%p" -
Apply the udev rules
sudo udevadm control --reload-rules && sudo udevadm trigger -
Add your user to the group
sudo usermod -a -G powermonitoring sidewindow -
Verify that you can read energy usage
sudo su - sidewindow -c 'cat /sys/class/powercap/intel-rapl:0:0/energy_uj'
Docker monitoring permissions
To enable monitoring of docker containers, add the sidewindow user to the
docker group
sudo usermod -a -G docker sidewindow
Windows support
Sidewindow has limited windows support out of the box, additional sensors can be enabled by running LibreHardwareMonitor.