# 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](https://codeberg.org/icewind/sidewindow/releases/) and place it at `/usr/local/bin/sidewindow` - Place the [sidewindow.service](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 ```bash sudo groupadd powermonitoring ``` - Create `/etc/udev/rules.d/99-powermonitoring.rules` with ```udev 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 ```bash 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](https://github.com/LibreHardwareMonitor/LibreHardwareMonitor).