No description
  • Rust 92.4%
  • Nix 7.6%
Find a file
2026-04-07 00:41:07 +02:00
.forgejo/workflows rename 2026-04-06 22:30:55 +02:00
src multi gpu 2026-04-07 00:41:07 +02:00
.envrc allow disabling mdns 2022-07-12 14:57:24 +02:00
.gitignore allow disabling mdns 2022-07-12 14:57:24 +02:00
Cargo.lock multi gpu 2026-04-07 00:41:07 +02:00
Cargo.toml multi gpu 2026-04-07 00:41:07 +02:00
flake.lock updates 2026-04-06 22:51:28 +02:00
flake.nix updates 2026-04-06 22:51:28 +02:00
module.nix rename 2026-04-06 22:30:55 +02:00
overlay.nix rename 2026-04-06 22:30:55 +02:00
package.nix rename 2026-04-06 22:30:55 +02:00
README.md multi gpu 2026-04-07 00:41:07 +02:00
sidewindow.service rename 2026-04-06 22:30:55 +02:00

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 sidewindow user: 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.rules with

    SUBSYSTEM=="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.