Non‑invasive performance metrics collection for Python
Project description
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:
- Resource Sampling: Collects CPU time, memory usage, I/O counters using
getrusage() - Stack Sampling: Analyzes Python call stacks to categorize code execution
- Binary Storage: Writes metrics to efficient binary format
- 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
clinic_py-0.1.0.tar.gz
(16.9 kB
view details)
File details
Details for the file clinic_py-0.1.0.tar.gz.
File metadata
- Download URL: clinic_py-0.1.0.tar.gz
- Upload date:
- Size: 16.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eebae4299b08245592457a1929725d1d8040b49090b96f67b4c4d11d91295be7
|
|
| MD5 |
0422ff8e8f0e4c653927adff6776ef68
|
|
| BLAKE2b-256 |
066c0ae895aa3645112d9d1ef729d059c7cdd44788265ed734713aabf5971c0b
|