Multiload-qubes: XFCE panel plugin with scrolling charts for CPU, RAM, swap, network, and disk i/o

(Disclaimer: I used AI to help me build this. The design decisions are mine, and I reviewed and tested and edited it extensively)

Hello everyone.

I’m in the process of slowly migrating to Qubes OS, and one of the things that I really miss is the good old multiload-ng panel plugin. The Qubes design requires a completely different approach to implement the same functionality, so I wrote it from scratch, primarily in Rust (with a bit of C and Python where necessary).

multiload-qubes demo

The following charts are available:

  • Whole-machine CPU
  • Per-qube CPU
  • RAM (not just Xen-allocated RAM, but also the amount actually used inside all running Linux qubes)
  • Per-qube RAM
  • Network traffic (collected from sys-net by default; configurable)
  • Per-qube swap
  • Disk IO

Charts can be reordered and enabled/disabled individually; all colors are configurable.

Architecture: the project runs two systemd services and an XFCE panel plugin in dom0. The two-service split is to avoid parsing VM-influenced data in a privileged service.

  • The collector service runs as root in dom0, reads Xen and dom0 statistics, and scrapes metrics from Linux qubes. It stores raw outputs (without parsing them);
  • The parser service runs as a separate unprivileged service (still in dom0), parses the inputs and stores the final snapshot;
  • The XFCE panel plugin reads the final snapshot and draws the charts.

Nothing needs to be installed in the qubes.

The qubes metrics scraping is optional and can be disabled - we can still have most of the charts. Qube scraping is needed to make the data richer: the actual RAM usage (not just xen-allocated amount), swap usage, and network traffic.

See more notes about security on the project page (link below).

For those who want to try it: see installation instructions in the readme. You can either use a prebuilt rpm from the latest release, or build it from source.

Github: dimonomid/multiload-qubes

1 Like