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
620KB
12K
SLoC
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.
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
Dependencies
~9–25MB
~374K SLoC