palantir/README.md
2026-04-07 00:41:07 +02:00

78 lines
2.3 KiB
Markdown

# 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).