io.pedestal.interceptor.trace

default-span-postprocess

(default-span-postprocess context span)

default-span-resolver

(default-span-resolver context)(default-span-resolver context servlet-class)

headers->span-context

(headers->span-context tracer headers)

tracing-interceptor

(tracing-interceptor)(tracing-interceptor opts)

Return an Interceptor for automatically initiating a distributed trace span on every request, which is finished on leave.

Spans are automatically populated with relevant tags: http.method, http.status_code, http.uri, span.kind

If on leave there is an :error in the context, this interceptor with log the error with the span.

Possible options: :span-resolver - a single-arg function that is given the context and returns a started and activated span, resolving any propagated or parent span. The default resolver is io.pedestal.interceptor.trace.default-span-resolver which resolves (in order; first resolution wins): 1. Pedestal tracing values in the Context 2. OpenTracing Servlet values (if the Servlet API class is detected) 3. OpenTracing Header values 4. Nothing found - A new span is created :trace-filter - a single-arg function that is given the context and returns true if a span should be created for this request. If not set or set to nil, spans are created for every request :uri-as-span-operation? - Boolean; True if the request URI should be used as the default span name - defaults to true :default-span-operation - A string or keyword to use as the default span name if URI isn’t found or :uri-as-span-operation? is false. Defaults to ‘PedestalSpan’ :span-postprocess - A function given the context and the span, performs any necessary span cleanup tasks and returns the context

If the trace-filter or the span-resolver return something falsey, the context is forwarded without an active span