Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/roma-glushko/hawk
π¦
A debugging & profiling toolkit for production Python microservices
https://github.com/roma-glushko/hawk
debug fastapi flask microservices observability opentelemetry profiling python starlette tracemalloc
Last synced: 29 days ago
JSON representation
π¦ A debugging & profiling toolkit for production Python microservices
- Host: GitHub
- URL: https://github.com/roma-glushko/hawk
- Owner: roma-glushko
- License: apache-2.0
- Created: 2024-07-26T16:12:26.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-09-19T20:40:15.000Z (about 2 months ago)
- Last Synced: 2024-09-27T06:42:50.622Z (about 1 month ago)
- Topics: debug, fastapi, flask, microservices, observability, opentelemetry, profiling, python, starlette, tracemalloc
- Language: Python
- Homepage:
- Size: 2 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
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: