Skip to main content

A streaming process monitoring tool

Project description

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

Or install the conda package from the almost-conductor channel:

# pixi
pixi workspace channel add https://prefix.dev/almost-conductor
pixi add denet
# conda
conda install -c https://prefix.dev/almost-conductor denet

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
  • aya - Rust library for eBPF programs

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

denet-0.7.0.tar.gz (334.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

denet-0.7.0-cp312-cp312-manylinux_2_39_x86_64.whl (555.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ x86-64

File details

Details for the file denet-0.7.0.tar.gz.

File metadata

  • Download URL: denet-0.7.0.tar.gz
  • Upload date:
  • Size: 334.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.8.6

File hashes

Hashes for denet-0.7.0.tar.gz
Algorithm Hash digest
SHA256 887e37e44b9a0920d28d65654d58054b5cd7889fb05bc7bead46d9a4e099cdb7
MD5 6fc616eac1a60e656e4b4b0d2ea75c9a
BLAKE2b-256 574df3c387af5ae910dbed6d0678a4bd17d35fd36cbf5df0e8e041793267483e

See more details on using hashes here.

File details

Details for the file denet-0.7.0-cp312-cp312-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for denet-0.7.0-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 7aa91a4a608121892761640e425ccf2f2f97ec518ee31777565216bd5e222c3a
MD5 174f5d103e11b6cc66e9bea5a917f98f
BLAKE2b-256 a19a7e16ef22ffdd527b7d79a9d33ce7d8f1b99b11ee03f738789c56f7642b6e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page