fastapi_contrib.tracing package¶
Submodules¶
fastapi_contrib.tracing.middlewares module¶
- class fastapi_contrib.tracing.middlewares.OpentracingMiddleware(app: Callable[[MutableMapping[str, Any], Callable[], Awaitable[MutableMapping[str, Any]]], Callable[[MutableMapping[str, Any]], Awaitable[None]]], Awaitable[None]], dispatch: Optional[Callable[[starlette.requests.Request, Callable[[starlette.requests.Request], Awaitable[starlette.responses.Response]]], Awaitable[starlette.responses.Response]]] = None)[source]¶
Bases:
starlette.middleware.base.BaseHTTPMiddleware
- static before_request(request: starlette.requests.Request, tracer)[source]¶
Gather various info about the request and start new span with the data.
- async dispatch(request: starlette.requests.Request, call_next: Any) → starlette.responses.Response[source]¶
Store span in some request.state storage using Tracer.scope_manager, using the returned Scope as Context Manager to ensure Span will be cleared and (in this case) Span.finish() be called.
- Parameters
request – Starlette’s Request object
call_next – Next callable Middleware in chain or final view
- Returns
Starlette’s Response object
fastapi_contrib.tracing.utils module¶
- fastapi_contrib.tracing.utils.setup_opentracing(app)[source]¶
Helper function to setup opentracing with Jaeger client during setup. Use during app startup as follows:
app = FastAPI() @app.on_event('startup') async def startup(): setup_opentracing(app)
- Parameters
app – app object, instance of FastAPI
- Returns
None