public class TracingFilter extends Object implements javax.servlet.Filter
ServletContext or initialized via web.xml.
Following code examples show possible initialization:
{
@code
TracingFilter filter = new TracingFilter(tracer);
servletContext.addFilter("tracingFilter", filter);
}
Or include filter in web.xml and:
GlobalTracer.register(tracer);
servletContext.setAttribute({@link TracingFilter#SPAN_DECORATORS}, listOfDecorators); // optional, if no present ServletFilterSpanDecorator.STANDARD_TAGS is applied
Current server span context is accessible via ServletRequest.getAttribute(String) with name
SERVER_SPAN_CONTEXT.| Modifier and Type | Field and Description |
|---|---|
static String |
SERVER_SPAN_CONTEXT
Used as a key of
ServletRequest.setAttribute(String, Object) to inject server span context |
static String |
SKIP_PATTERN
Use as a key of
ServletContext.setAttribute(String, Object) to skip pattern |
static String |
SPAN_DECORATORS
Use as a key of
ServletContext.setAttribute(String, Object) to set span decorators |
protected io.opentracing.Tracer |
tracer |
| Constructor and Description |
|---|
TracingFilter()
Tracer instance has to be registered with
GlobalTracer.register(Tracer). |
TracingFilter(io.opentracing.Tracer tracer) |
TracingFilter(io.opentracing.Tracer tracer,
List<ServletFilterSpanDecorator> spanDecorators,
Pattern skipPattern) |
| Modifier and Type | Method and Description |
|---|---|
void |
destroy() |
void |
doFilter(javax.servlet.ServletRequest servletRequest,
javax.servlet.ServletResponse servletResponse,
javax.servlet.FilterChain chain) |
void |
init(javax.servlet.FilterConfig filterConfig) |
protected boolean |
isTraced(javax.servlet.http.HttpServletRequest httpServletRequest,
javax.servlet.http.HttpServletResponse httpServletResponse)
It checks whether a request should be traced or not.
|
static io.opentracing.SpanContext |
serverSpanContext(javax.servlet.ServletRequest servletRequest)
Get context of server span.
|
public static final String SPAN_DECORATORS
ServletContext.setAttribute(String, Object) to set span decoratorspublic static final String SKIP_PATTERN
ServletContext.setAttribute(String, Object) to skip patternpublic static final String SERVER_SPAN_CONTEXT
ServletRequest.setAttribute(String, Object) to inject server span contextprotected io.opentracing.Tracer tracer
public TracingFilter()
GlobalTracer.register(Tracer).public TracingFilter(io.opentracing.Tracer tracer)
tracer - public TracingFilter(io.opentracing.Tracer tracer,
List<ServletFilterSpanDecorator> spanDecorators,
Pattern skipPattern)
tracer - tracerspanDecorators - decoratorsskipPattern - null or pattern to exclude certain paths from tracing e.g. "/health"public void init(javax.servlet.FilterConfig filterConfig)
throws javax.servlet.ServletException
init in interface javax.servlet.Filterjavax.servlet.ServletExceptionpublic void doFilter(javax.servlet.ServletRequest servletRequest,
javax.servlet.ServletResponse servletResponse,
javax.servlet.FilterChain chain)
throws IOException,
javax.servlet.ServletException
doFilter in interface javax.servlet.FilterIOExceptionjavax.servlet.ServletExceptionpublic void destroy()
destroy in interface javax.servlet.Filterprotected boolean isTraced(javax.servlet.http.HttpServletRequest httpServletRequest,
javax.servlet.http.HttpServletResponse httpServletResponse)
httpServletRequest - requesthttpServletResponse - responsepublic static io.opentracing.SpanContext serverSpanContext(javax.servlet.ServletRequest servletRequest)
servletRequest - requestCopyright © 2018–2022. All rights reserved.