9 releases (5 breaking)

0.6.1 Apr 23, 2026
0.6.0 Apr 22, 2026
0.5.0 Apr 16, 2026
0.4.2 Jul 7, 2025
0.1.0 Jun 3, 2025

#200 in Profiling

GPL-3.0-or-later

620KB
12K SLoC

Rust 10K SLoC // 0.1% comments Python 1.5K SLoC // 0.3% comments Shell 427 SLoC // 0.2% comments C 204 SLoC // 0.2% comments Snakemake 10 SLoC // 0.4% comments

denet: a streaming process monitor

denet /de.net/ v. 1. Turkish: to monitor, to supervise, to audit. 2. to track metrics of a running process.

Denet is a lightweight streaming process monitor. It tracks CPU, memory, I/O, and threads for a running process (and its children), with adaptive sampling and optional GPU / eBPF support.

PyPI version Crates.io codecov Ruff License: GPL v3

Installation

pip install denet    # Python package
cargo install denet  # Rust binary

Optional features for the Rust binary:

cargo install denet --features gpu   # NVIDIA GPU monitoring (requires drivers)
cargo install denet --features ebpf  # eBPF profiling (Linux only, requires clang)

Usage

# Run a command and monitor it
denet run python train.py

# Attach to an existing process
denet attach 1234

# Save metrics as JSONL
denet --json --out metrics.jsonl run python train.py

CPU usage follows the top convention: 100% = one fully utilized core, so a 4-core workload shows 400%.

Sampling starts at 100 ms and ramps up to 1 s after 10 s of runtime (adaptive). Override with -i / -m:

denet -i 50 -m 500 run python train.py

Further reading

Topic Doc
Python API (ProcessMonitor, execute_with_monitoring, analysis) docs/python-api.md
GPU monitoring docs/gpu.md
eBPF profiling (off-CPU, syscall tracking) docs/ebpf.md
Disk I/O metrics and how to interpret them docs/disk-io.md
Output data format docs/data-format.md
Development setup docs/dev.md

License

GPL-3

Acknowledgements

  • sysinfo - Rust library for system information
  • PyO3 - Rust bindings for Python

Dependencies

~9–25MB
~374K SLoC