A dubugging & profiling toolkit for production Python microservices
Project description
Hawk: Debug & Profile
A lightweight debugging & profiling toolkit
for production 🐍 Python microservices
🦅 Hawk gives you more control over how your Python microservices run in production with little overhead by bringing a set of internal API to help you to profile and debug your services.
[!NOTE]
🚧 This project is under active development and not ready for production use yet. 🚧
Hawk is inspired by Go's net/http/pprof
& expvars
packages and
OpenTelemetry Collector's ZPages which are in turn stemmed from Google's internal practices around
debugging production services.
[!IMPORTANT]
Be sure to start this project and watch it if you find it helpful ⭐️
Features
- ⏱️ Memory Profiling via the
tracemalloc
stdlib - ⏱️ CPU Profiling (incl. Asyncio services) via
pyinstrument
&cProfile
(soon) - 🙋♀️ Activate profiling on demand in real environments
- 🎨 Render your profiles right from your browser
- ⬇️ Download your profiles for the further investigation
- 🔭 Expose internal state of your service via debug vars (🚧soon)
- 🔧 Create custom debug pages (a.k.a.
ZPages
) in a simplified way - 🔧 Controlled via environment variables, no codebase modifications needed to enable/disable functionality completely
- 🔓 No elevated permissions needed (
CAP_PTRACE
, etc.) - 🔭 OpenTelemetry-aware (🚧soon)
Integrated With:
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
Built Distribution
Hashes for hawk_debug-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9b32ce7e25d23e55c5ac9aad528ca0ed078f2ea646c99cecfa496f7bc63aacd6 |
|
MD5 | a610c54d3e454a304c8db1d8cde446c1 |
|
BLAKE2b-256 | 9ed6b589266599f82ae333986508c0e2d503385f5991b92cebdc01c351ee918f |