steamos prometheus
Heavily inspired by Xe's guide to getting tailscale running, this script installs prometheus' node_exporter onto a Steam Deck in a way that should survive system updates.
Usage
Make sure you have sudo access when in desktop mode by setting a password for your deck user.
Copy ./install.sh onto your Deck, either over SSH or by copying it from a browser, then run sudo bash ./install.sh.
If this is the first time you've installed a system extension, run sudo systemd-sysext merge.
If you've already done something like the Tailscale install mentioned above, just sudo systemd-sysext refresh.
To make sure that system extensions are loaded after reboot, run
sudo systemctl enable systemd-sysext
sudo systemctl start systemd-sysext
Then you should be able to just
sudo systemctl enable prometheus-node-exporter
sudo systemctl start prometheus-node-exporter
Installing a collector for the metrics now available on :9100 is left as an exercise for the reader, but I figure if you're devoted to tracking system metrics enough to try and install prometheus on your Steam Deck you've probably already got a setup for that.
Future Incompatabilities
If and when SteamOS is "rebased" onto a newer version of Arch (that is, the VERSION_ID in /etc/os-release is incremented), you'll need to update the VERSION_ID in /var/lib/extensions/prometheus-node-exporter/usr/lib/extension-release.d/extension-release.prometheus-node-exporter to match.