Skip to content

Releases: natoscott/pyusdt

v0.1.1

20 Oct 06:29

Choose a tag to compare

Changes

  • Add prominent bpftrace example section to README
  • Document all 6 available USDT probes with their arguments
  • Add note about library path differences when using pip install

pyusdt v0.1.0

20 Oct 01:17

Choose a tag to compare

pyusdt v0.1.0

First release of pyusdt - a Python profiler using USDT probes for low-overhead performance monitoring with bpftrace.

Features

  • Zero-overhead when not traced: Dynamic callback registration combined with USDT semaphores means monitoring callbacks are only registered when a tracer is attached
  • sys.monitoring integration: Uses Python 3.12+ sys.monitoring API (PEP 669) for efficient instrumentation
  • 6 probe types: PY_START, PY_RESUME, PY_RETURN, PY_YIELD, CALL, LINE
  • bpftrace integration: Correlate Python execution with kernel events in a single trace session
  • Production-ready: Configurable polling interval (default 100ms) for tracer detection

Supported Platforms

  • Python: 3.12, 3.13, 3.14
  • Architectures: x86_64, aarch64
  • Operating System: Linux with USDT support

Installation

pip install pyusdt

Quick Start

# Run your script with pyusdt
python -m pyusdt your_script.py

# Trace with bpftrace
sudo bpftrace sample.bt -c "python -m pyusdt your_script.py"

Documentation

See the README for full documentation.