Metadata-Version: 2.4
Name: fastapi-watchtower
Version: 1.0.0
Summary: Request tracing and visualization for FastAPI applications.
Author-email: Hotson Honett <hotsonhonet@gmail.com>
Requires-Python: >=3.13
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: fastapi[all]>=0.135.3
Requires-Dist: numpy>=2.4.4
Requires-Dist: requests>=2.33.1
Requires-Dist: twine>=6.2.0
Requires-Dist: viztracer>=1.1.1
Dynamic: license-file

# WatchTower


WatchTower is a project-aware FastAPI runtime observability tool that maps requests to user-defined classes and functions, helping developers understand request flow and inspect profiling data without framework noise.

### Requirements
- Use `async def` endpoints for best tracing accuracy
- Sync endpoints (`def`) may lead to incomplete or unstable traces


### Example usage

```python


from fastapi import FastAPI
from .api.routes import router
from watchtower import setup_watchtower

app = FastAPI(title="Complex Profiling Demo")

setup_watchtower(
    app,
    source_root="examples",
    output_dir=".watchtower-complex_server",
    enable_ui=True,
    ui_dist_dir="frontend/watchtower-ui/dist",
)
app.include_router(router)

```


### Example of Request Flow animation of a complex server

![Request Flow Animation](assets/request-animation-flow.gif)
