A desktop observability tool like this can be really useful because “idle” from the user’s perspective doesn’t necessarily mean the system is doing nothing. Background services, Electron processes, updates, indexing, and other applications can still consume resources.
For an Electron implementation, I’d focus on collecting a small set of metrics consistently rather than polling everything too frequently. CPU usage, memory, disk activity, active processes, and timestamps usually give enough context to explain most spikes.
It’s also worth separating data collection from the UI layer. Keeping the monitoring work in the main process and sending only the required data to the renderer can help keep the interface responsive.
If a particular metric looks incorrect, the exact collection code and a sample of the reported values would be useful to determine whether the issue is with the OS API, sampling interval, or how the values are being calculated.