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.
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
|