Skip to main content

clinic-py

Non-invasive performance metrics collection for Python applications, inspired by Node.js clinic.

Features

  • Non-invasive monitoring: Collect performance metrics without modifying your code
  • System metrics: CPU usage, memory consumption, I/O operations, context switches
  • Python stack analysis: Categorize frames into application, library, and core code
  • Binary metrics format: Efficient storage and parsing of performance data
  • Web dashboard: Interactive visualization of collected metrics
  • Cross-platform: Supports Linux, macOS, and other Unix-like systems

Installation

pip install clinic-py

Quick Start

Monitor a Python script

python -m clinic_py run your_script.py

This will execute your script and collect performance metrics in the .clinic_py/ directory.

View results in web dashboard

python -m clinic_py serve

Then open http://localhost:8000 in your browser to explore the performance data.

Usage

Command Line Interface

# Run a script under monitoring
python -m clinic_py run [--outdir DIR] script.py

# Serve web dashboard
python -m clinic_py serve [--outdir DIR] [--port PORT]

Options

  • --outdir: Directory where metrics are stored (default: .clinic_py)
  • --port: Port for the web dashboard (default: 8000)

How it Works

clinic-py uses a C extension to periodically sample system resources with minimal overhead:

  1. Resource Sampling: Collects CPU time, memory usage, I/O counters using getrusage()
  2. Stack Sampling: Analyzes Python call stacks to categorize code execution
  3. Binary Storage: Writes metrics to efficient binary format
  4. Web Visualization: Provides interactive charts and summaries

Requirements

  • Python 3.9+
  • Unix-like operating system (Linux, macOS, etc.)
  • C compiler for building the extension

License

MIT License - see LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

Metadata

Release files for clinic-py 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for clinic-py 0.1.0
File Size Uploaded
clinic_py-0.1.0.tar.gz 16.9 kB Details

Release files / clinic_py-0.1.0.tar.gz

Download URL clinic_py-0.1.0.tar.gz
Size 16.9 kB
Tags Source
SHA-256 checksum
How to use checksums
eebae4299b08245592457a1929725d1d8040b49090b96f67b4c4d11d91295be7
BLAKE2b-256 checksum
How to use checksums
066c0ae895aa3645112d9d1ef729d059c7cdd44788265ed734713aabf5971c0b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.5

Release history Release notifications | RSS feed

This release

0.1.0 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page