Skip to main content

Anonymous System Resource Monitor

This is a host-level Ubuntu monitor for group servers. It samples aggregate CPU, memory, load, GPU power/utilization/memory/temperature, and best-effort CPU package power. It does not record PID, username, command line, Docker container, image, or compose service information.

Install from PyPI

Recommended with pipx:

sudo apt update
sudo apt install -y pipx
pipx ensurepath
pipx install system-resource-monitor

sudo "$(command -v system-resource-monitor)" install-systemd

Upgrade an existing install:

pipx upgrade system-resource-monitor

Then check the timer:

systemctl list-timers system-resource-monitor.timer
sudo "$(command -v system-resource-monitor)" status

Safety Contract

The collect, watch, and report commands are read-only with respect to running workloads:

  • They do not call docker, kill, pkill, os.kill, signal APIs, terminate(), or kill().

  • They do not enumerate /proc/<pid> and do not inspect per-process metadata.

  • The only external command used by collect and watch is:

    nvidia-smi --query-gpu=index,uuid,name,power.draw,utilization.gpu,utilization.memory,memory.used,memory.total,temperature.gpu --format=csv,noheader,nounits
    
  • The install-systemd, uninstall-systemd, and status commands may call systemctl, but only to manage system-resource-monitor.service and system-resource-monitor.timer.

  • The systemd unit also drops CAP_KILL and denies common signal-sending syscalls, so even accidental future signal-sending code should fail under the timer service.

Install from Source

cd system-resource-monitor

sudo mkdir -p /opt/system-resource-monitor /var/lib/system-resource-monitor
sudo install -m 0755 system_resource_monitor.py /opt/system-resource-monitor/system_resource_monitor.py
sudo install -m 0644 README.md /opt/system-resource-monitor/README.md
sudo install -m 0644 system-resource-monitor.service /etc/systemd/system/system-resource-monitor.service
sudo install -m 0644 system-resource-monitor.timer /etc/systemd/system/system-resource-monitor.timer
sudo chmod 0750 /var/lib/system-resource-monitor

sudo systemctl daemon-reload
sudo systemctl enable --now system-resource-monitor.timer

If installed as a Python package, prefer:

sudo "$(command -v system-resource-monitor)" install-systemd

Check Status

systemctl list-timers system-resource-monitor.timer
sudo systemctl status system-resource-monitor.service
journalctl -u system-resource-monitor.service -n 50

Collect Once

sudo "$(command -v system-resource-monitor)" collect

Watch Live Metrics

Refresh the terminal every 5 seconds and automatically save samples from this watch session to /tmp/system_resource_watch_<timestamp>.csv:

sudo "$(command -v system-resource-monitor)" watch

Use a custom interval and CSV path:

sudo "$(command -v system-resource-monitor)" watch \
  --interval-sec 2 \
  --csv /tmp/locus_gpu_watch.csv

Stop with Ctrl-C. The CSV contains one host row per sample and one gpu row per GPU per sample. It does not contain PID, username, command line, Docker container, image, or compose service information.

Export Reports

Recent 24 hours:

sudo "$(command -v system-resource-monitor)" report \
  --since-hours 24 \
  --out /tmp/system_resource_report_24h.csv

Recent 7 days:

sudo "$(command -v system-resource-monitor)" report \
  --since-hours 168 \
  --out /tmp/system_resource_report_7d.csv

Notes

  • GPU metrics use nvidia-smi --query-gpu, so NVIDIA drivers must be installed for GPU rows to appear.
  • CPU package power is read from /sys/class/powercap/intel-rapl:* when the kernel exposes it. If unavailable, it is stored as empty/NULL.
  • Energy estimates use power_w * interval_sec; first samples and samples after long gaps are not counted toward kWh estimates.
  • Data older than 90 days is deleted during each collection.

Metadata

Release files for system-resource-monitor 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for system-resource-monitor 0.2.0
File Size Uploaded Provenance
system_resource_monitor-0.2.0.tar.gz 11.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for system-resource-monitor 0.2.0
File Interpreter ABI Platform
system_resource_monitor-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 24.2 kB

Release files / system_resource_monitor-0.2.0.tar.gz

Download URL system_resource_monitor-0.2.0.tar.gz
Size 11.9 kB
Tags Source
SHA-256 checksum
How to use checksums
da17ec3b2f6d99611812e04088ee502d245eddc80b01484b7aab71cb838ba8ff
BLAKE2b-256 checksum
How to use checksums
ff84291e217f54268e9e553c8fe65c543690910031cdc96d52c549ec54f9c8a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Release files / system_resource_monitor-0.2.0-py3-none-any.whl

Download URL system_resource_monitor-0.2.0-py3-none-any.whl
Size 12.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
43119d9998e07f28806bfbf48c199aefa25f9920388c3d826fbc4695e43419f5
BLAKE2b-256 checksum
How to use checksums
a34a264f12cb6f63bea00b127788e9675675ac293f056d2265b0b768969987bf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.6

Security for system-resource-monitor 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page