resource-tracker is a lightweight, zero-dependency Python package for monitoring CPU, memory, GPU, network, and disk utilization across processes and at the system level, designed for batch jobs (Python/R scripts, Metaflow steps), with decorator-based workflow integration and per-job visualization reports.
The tools below are organized into meaningful categories. No single open-source tool matches all of resource-tracker’s characteristics simultaneously — most are either too narrow (single metric), too heavy (infrastructure daemons), or not batch-job oriented.
(Closest functional analogues)
Tool Notes Details
psutil The foundational building block used by resource-tracker itself. Raw API only, no tracking loop or reports. Linux; no CLI; CPU/Mem/Disk/Net/Process; no batch wrap; no report
memory_profiler Line-by-line memory, @profile decorator, mprof plot. No CPU/GPU/disk/network. Linux; CLI (mprof); Memory; batch wrap (mprof CLI); report (plot)
Scalene High-precision line-level profiler with AI optimization suggestions. No disk/network. Developer profiler. Linux; CLI; CPU/GPU/Mem; batch wrap (CLI); report (web UI)
Memray Bloomberg. Tracks every allocation including C/C++. No CPU/GPU/disk/network. Linux; CLI; Memory; batch wrap (CLI); report (flame graphs)
Fil Peak memory focus for data scientists (NumPy/Pandas). Written in Rust+Python. Linux/macOS only. Linux; CLI; Memory (peak); batch wrap (CLI); report (flame graph)
pyinstrument Context manager + decorator. 1ms sampling. No memory/GPU/disk/network. Linux; CLI; CPU; batch wrap; report
py-spy Written in Rust. Attaches to a running process. No memory/GPU/disk/network. Linux; CLI; CPU; batch wrap (attach); report (flame graph)
Austin Pure C, extremely low overhead CPython frame stack sampler. Linux; CLI; CPU; batch wrap; no report
Glances Full system monitor with REST API, web UI, and exporters. Long-running daemon, not a batch-job wrapper. Linux; CLI; CPU/Mem/Disk/Net/GPU; no batch wrap; no report
nvitop Best GPU process viewer. Has programmatic ResourceMetricCollector API. No CPU/mem/disk/net. Linux; CLI; NVIDIA GPU; no batch wrap; no report
gpustat Simple NVIDIA GPU status CLI. No time-series logging. Linux; CLI; NVIDIA GPU; no batch wrap; no report
pynvml / nvidia-ml-py Python NVML bindings. Building block only. Linux; no CLI; GPU (raw API); no batch wrap; no report
CodeCarbon @track_emissions decorator. CO2/energy focus, not utilization %. No disk/network.Linux; partial CLI; CPU/Mem/GPU energy; batch wrap (decorator); report (CSV + dashboard)
CarbonTracker Predicts carbon footprint, can halt training. ML training specific. Linux; no CLI; CPU/GPU energy; batch wrap; report
pyRAPL Intel RAPL via /sys/class/powercap. Intel CPUs only. Energy joules, not utilization %. Linux only; no CLI; CPU/DRAM energy; batch wrap (decorator); no report
pyJoules Multi-device energy (Intel RAPL + NVML). Context manager and decorator. Linux only; no CLI; CPU/DRAM/GPU energy; batch wrap (decorator); no report
PowerAPI Framework for software-defined power meters. Process/container/VM granularity. Complex setup. Linux only; partial CLI; CPU/Mem power; no batch wrap; no report
eco2AI ML training focused CO2 tracking. Linux; no CLI; CPU/GPU/RAM energy; batch wrap (decorator); report (CSV)
pyperf PSF benchmarking toolkit. --track-memory and --tracemalloc options. Not an operational monitor. Linux; CLI; Memory (benchmarks); batch wrap; report
ClearML Full MLOps platform. Auto-logs system metrics. Requires ClearML server. Linux; CLI; CPU/Mem/GPU/Net; auto batch wrap; report (web UI)
python-resmon Lightweight script outputting CSV. System-level only, no per-process or GPU tracking. Linux; CLI; CPU/Mem/Disk/Net; no batch wrap; report (CSV)
yappi CPU + wall time profiler with multi-thread and async support. Linux; no CLI; CPU; batch wrap; report
line_profiler Line-by-line CPU time. No memory/GPU/disk/network. Linux; CLI (kernprof); CPU; batch wrap (@profile); report
(Real-time visual monitoring; do not produce per-job reports or integrate with batch workflows)
Tool Notes Details
htop Interactive process viewer; no data capture C; Linux; CLI; CPU/Mem/Proc
btop++ Most modern TUI monitor; GPU via plugins C++; Linux; CLI; CPU/Mem/Disk/Net/GPU
bpytop Predecessor to btop++ Python; Linux; CLI; CPU/Mem/Disk/Net
bashtop Predecessor to bpytop Bash; Linux; CLI; CPU/Mem/Disk/Net
atop Writes persistent binary logs; replay mode; strong process-level detail C; Linux only; CLI; CPU/Mem/Disk/Net/Proc
nmon CSV capture mode for offline analysis; primarily Linux/AIX C; Linux; CLI; CPU/Mem/Disk/Net
collectl Wide metric coverage; daemon or one-shot mode Perl; Linux only; CLI; CPU/Mem/Disk/Net
sysstat (sar/pidstat) pidstat for per-process; sadf for JSON/CSV/XML export; schedulable via cronC; Linux only; CLI; CPU/Mem/Disk/Net/Proc
nvtop AMD, Apple, Intel, NVIDIA, Qualcomm support; interactive GPU monitor C; Linux; CLI; GPU (multi-vendor)
vtop Node.js, Unicode charts JS; Linux; CLI; CPU/Mem/Proc
Netdata 76k+ GitHub stars. Per-second metrics, web UI, ML anomaly detection C; Linux; CLI; all (800+ plugins)
(Zero-overhead kernel-level observability; require root + Linux kernel 4.1+)
Tool Notes Details
BCC Toolkit for writing eBPF programs; 70+ ready-made tools C/Python/Lua; Linux only; CLI
bpftrace DTrace-like one-liners for eBPF; ad-hoc analysis C++ DSL; Linux only; CLI
Parca + Parca Agent Continuous eBPF-based CPU profiling; pprof format; <1% overhead Go; Linux only; CLI
Pyroscope (Grafana) Continuous profiling database + eBPF agent; multi-language SDK; Grafana integration Go; Linux only; CLI
Tool Notes Details
perf (Linux perf_events) Foundation for many other tools; hardware counter sampling C (kernel); Linux only; CLI; CPU/kernel events
FlameGraph Visualizes perf/DTrace output as SVG flame graphs Perl; Linux; CLI; visualization
gperftools Google Performance Tools: CPU profiler, heap profiler, TCMalloc C++; Linux; partial CLI (pprof); CPU/Memory
Valgrind / Massif High-overhead instrumentation; Massif=heap profiler; 10–50× slowdown C; Linux; CLI; CPU/Memory
Heaptrack KDE; faster alternative to Valgrind/Massif for heap profiling C++; Linux only; CLI; Memory
Perfetto Google; default Android profiler; SQL-queryable traces; browser UI C++; Linux; CLI; CPU/Mem/GPU/Disk/Sched
async-profiler Low-overhead JVM profiler; flame graphs; JVM only C (JVM agent); Linux; CLI (asprof); CPU/Heap
TAU HPC parallel profiling suite; complex setup C++; Linux; CLI; CPU/GPU/MPI
HPCToolkit HPC sampling profiler; 1–5% overhead; supercomputer use C/C++; Linux; CLI; CPU/GPU
Tool Notes Details
below Facebook/Meta. Time-traveling system monitor with cgroup/PSI support; record+replay mode. System-wide daemon, not a batch-job wrapper. Architecturally most relevant Rust project. Linux only; CLI
samply Sampling CPU profiler; wraps a subprocess (samply record ./program); uses Linux perf events; Firefox Profiler UI. CPU only. Linux; CLI
Bytehound Heap memory profiler; LD_PRELOAD-based; multi-arch (AMD64, ARM, AArch64, MIPS64); web-based GUI. Memory only. Linux only; CLI
pprof-rs CPU profiler for Rust programs using backtrace-rs; pprof output format. Library only. Linux; no CLI
(Not batch-job wrappers; relevant for pipeline integration and metric output targets)
Tool Notes Details
Prometheus node_exporter System-level Prometheus exporter; /proc-based Go; Linux; CLI
Prometheus Pushgateway Allows batch jobs to push metrics to Prometheus; standard solution for short-lived jobs Go; Linux; CLI
process-exporter Per-process-group Prometheus metrics from /proc Go; Linux only; CLI
cAdvisor Container resource usage and performance; Prometheus exporter Go; Linux only; CLI
Telegraf Plugin-driven metrics agent; 300+ inputs; InfluxDB backend Go; Linux; CLI
OpenTelemetry CNCF standard for traces/metrics/logs; structured output for jobs Multi-lang; Linux; CLI (otelcol)
NVIDIA DCGM + dcgm-exporter GPU telemetry for Kubernetes/data center; Prometheus exporter C/Go; Linux only; CLI
kube-state-metrics Kubernetes object state metrics for Prometheus Go; Linux; CLI
Jobstats (HPC) Slurm-compatible per-job efficiency reports (CPU+GPU). Conceptually very close to resource-tracker but Slurm-specific. Python; Linux only; CLI
Tool Notes Details
nethogs Per-process network bandwidth using /proc/net/tcp + libpcap C++; Linux only; CLI
iftop Per-connection (not per-process) bandwidth monitor C; Linux; CLI
iotop Per-process disk I/O using kernel I/O accounting C; Linux only; CLI
dstat System-wide CPU+disk+network+memory with CSV output Python; Linux only; CLI
Tool Notes Details
Weights & Biases Auto-logs GPU, CPU, memory, network during training runs; cloud-first; rich dashboards Linux; CLI (wandb)
ClearML Open-source MLOps platform; auto-logs GPU+CPU+memory+network; requires ClearML server Linux; CLI
MLflow Experiment tracking but no native system resource monitoring Linux; CLI (mlflow)
Tool Notes Details
profvis Interactive R profiling visualization; CPU + memory timeline; used within R session Linux; R session only
bench Benchmarking with memory tracking; used within R session Linux; R session only
microbenchmark Micro-benchmarking tool; used within R session Linux; R session only
profmem Memory allocation tracing for R expressions; used within R session Linux; R session only
Tool Notes Details
cProfile / profile Function-level CPU time; stdlib Linux; CLI (python -m cProfile)
tracemalloc Python memory allocation tracing with tracebacks; stdlib since Python 3.4; used within code Linux; no CLI (used within code)
The table below highlights what makes resource-tracker stand out relative to the landscape:
Feature resource-tracker Most profilers System monitors ML trackers
CPU + Memory + GPU + Disk + Net All 5 Usually 1–2 All 5 CPU+Mem+GPU
Batch-job / script wrapper Yes Yes No (daemons) Yes
Zero runtime dependencies Yes Varies No No
Per-job visual report / card Yes Often No Yes (cloud)
Workflow integration (Metaflow) Yes No No Varies
Cloud instance recommendations Yes No No No
Lightweight process footprint Yes Yes No No
Process-level granularity Yes Yes Partial No
Runs on Linux Yes Yes Yes Yes
CLI invocation Yes Yes (most) Yes Yes