Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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

Awesome Lists containing this project

README

        


Hawk Debug Toolkit For Python

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:



FastAPI Logo
Starlette Logo
Flask Logo