io.pedestal.interceptor.trace
default-span-resolver
(default-span-resolver context)
(default-span-resolver context servlet-class)
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