Drop-in ASGI/WSGI middleware for endpoint timing with Server-Timing headers.
pip install philiprehberger-api-timerfrom fastapi import FastAPI
from philiprehberger_api_timer import ASGITimerMiddleware
app = FastAPI()
app.add_middleware(ASGITimerMiddleware, slow_threshold_ms=500)from flask import Flask
from philiprehberger_api_timer import WSGITimerMiddleware
app = Flask(__name__)
app.wsgi_app = WSGITimerMiddleware(app.wsgi_app, slow_threshold_ms=500)import logging
from philiprehberger_api_timer import ASGITimerMiddleware
logger = logging.getLogger("my_api")
app.add_middleware(ASGITimerMiddleware, logger=logger, include_header=False)- Adds
Server-Timingheader to every response (e.g.,Server-Timing: total;dur=42.5) - Logs a WARNING for requests exceeding the slow threshold
- Zero configuration required — just add the middleware
| Function / Class | Description |
|---|---|
ASGITimerMiddleware(app, logger=None, slow_threshold_ms=500, include_header=True) |
ASGI middleware |
WSGITimerMiddleware(app, logger=None, slow_threshold_ms=500, include_header=True) |
WSGI middleware |
pip install -e .
python -m pytest tests/ -vMIT