Load and metrics
CPU, memory, storage, temperature, per-app usage and more!
The device page's Load card is what a box is doing right now, with the last hour behind each number as a sparkline. The tiny button opens Load history: the same readings over a window you choose.
What the box reports
Every heartbeat (one every 20 seconds, configurable), the agent reads a few small /proc
files.
It also reads the package versions.
| Reading | Where it comes from |
|---|---|
| CPU load | /proc/loadavg, against the box's core count |
| Memory | MemTotal and MemAvailable in /proc/meminfo |
| Storage | /data (the partition an install writes to) |
| Temperature | /sys/class/thermal/thermal_zone* |
| CPU/RAM per app | /proc/<pid>/stat and statm, per tracked app |
| Package versions | dumpsys package <package> |
Per-app usage covers only the tracked packages, summed across every process
an app owns. CPU is a share of a single core, the number top shows.
A reading the box never sent is stored as null and drawn as a gap, never a zero.
Retention
Two configurable knobs in Settings → Tuning:
| Setting | Default | What it does |
|---|---|---|
| Device metrics → Sample every (seconds) | 60 | How often a beat is kept. Floored at the heartbeat. |
| Device metrics → Keep for (days) | 7 | How long readings live. 0 turns recording off and drops what is kept. |
At the defaults a box costs about 1 400 rows a day, plus one per tracked app. The hub prunes hourly in batches, so the delete never locks the table against the heartbeats writing to it.
Nothing recorded in this window yet
Expected on a box that just enrolled, on an agent old enough not to send these fields, and with retention set to 0.