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 wathch 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.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5727d93d5bd4a2b2ec2c712587c13de720e0a232d6b202403ca25a39c6206529 |
|
MD5 | e031051c8b55c3bb56a82072695c583f |
|
BLAKE2b-256 | ec1469b26cab26aca5048c4182710230df3b316f55727ba2214842790fcff503 |