Logging

Trace with zipkin or jaegger.

class blacksmith.middleware._async.zipkin.AbstractTraceContext(name: str, kind: str = 'SERVER')

Interface of the trace context for the middleware.

See examples with starlette-zipking for an implementation.

abstractmethod classmethod make_headers() → dict[str, str]

Build headers for the sub requests.

abstractmethod tag(key: str, value: str) → AbstractTraceContext

Tag the span

abstractmethod annotate(value: str | None, ts: float | None = None) → AbstractTraceContext

Annotate the span

abstractmethod __enter__() → AbstractTraceContext

Make the created trace span of the current context the active span.

abstractmethod __exit__(*exc: Any) → None

Ends the created trace span of the context, it parents become the active span.

class blacksmith.middleware._async.zipkin.AsyncZipkinMiddleware(trace: type[AbstractTraceContext])

Zipkin Middleware based on an abstract context manager.

Parameters:

trace – A deferred context manager that manage the trace span stack.

__call__(next: AsyncMiddleware) → AsyncMiddleware

Call self as a function.