Class TracingFilter
- java.lang.Object
-
- io.smallrye.opentracing.contrib.web.servlet.filter.TracingFilter
-
- All Implemented Interfaces:
jakarta.servlet.Filter
public class TracingFilter extends Object implements jakarta.servlet.Filter
Tracing servlet filter. Filter can be programmatically added toServletContextor 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:
Current server span context is accessible viaGlobalTracer.register(tracer); servletContext.setAttribute({@link TracingFilter#SPAN_DECORATORS}, listOfDecorators); // optional, if no present ServletFilterSpanDecorator.STANDARD_TAGS is appliedServletRequest.getAttribute(String)with nameSERVER_SPAN_CONTEXT.- Author:
- Pavol Loffay
-
-
Field Summary
Fields Modifier and Type Field Description static StringSERVER_SPAN_CONTEXTUsed as a key ofServletRequest.setAttribute(String, Object)to inject server span contextstatic StringSKIP_PATTERNUse as a key ofServletContext.setAttribute(String, Object)to skip patternstatic StringSPAN_DECORATORSUse as a key ofServletContext.setAttribute(String, Object)to set span decoratorsprotected io.opentracing.Tracertracer
-
Constructor Summary
Constructors Constructor Description TracingFilter()Tracer instance has to be registered withGlobalTracer.register(Tracer).TracingFilter(io.opentracing.Tracer tracer)TracingFilter(io.opentracing.Tracer tracer, List<ServletFilterSpanDecorator> spanDecorators, Pattern skipPattern)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voiddestroy()voiddoFilter(jakarta.servlet.ServletRequest servletRequest, jakarta.servlet.ServletResponse servletResponse, jakarta.servlet.FilterChain chain)voidinit(jakarta.servlet.FilterConfig filterConfig)protected booleanisTraced(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.servlet.http.HttpServletResponse httpServletResponse)It checks whether a request should be traced or not.static io.opentracing.SpanContextserverSpanContext(jakarta.servlet.ServletRequest servletRequest)Get context of server span.
-
-
-
Field Detail
-
SPAN_DECORATORS
public static final String SPAN_DECORATORS
Use as a key ofServletContext.setAttribute(String, Object)to set span decorators
-
SKIP_PATTERN
public static final String SKIP_PATTERN
Use as a key ofServletContext.setAttribute(String, Object)to skip pattern
-
SERVER_SPAN_CONTEXT
public static final String SERVER_SPAN_CONTEXT
Used as a key ofServletRequest.setAttribute(String, Object)to inject server span context
-
tracer
protected io.opentracing.Tracer tracer
-
-
Constructor Detail
-
TracingFilter
public TracingFilter()
Tracer instance has to be registered withGlobalTracer.register(Tracer).
-
TracingFilter
public TracingFilter(io.opentracing.Tracer tracer)
- Parameters:
tracer-
-
TracingFilter
public TracingFilter(io.opentracing.Tracer tracer, List<ServletFilterSpanDecorator> spanDecorators, Pattern skipPattern)- Parameters:
tracer- tracerspanDecorators- decoratorsskipPattern- null or pattern to exclude certain paths from tracing e.g. "/health"
-
-
Method Detail
-
init
public void init(jakarta.servlet.FilterConfig filterConfig) throws jakarta.servlet.ServletException- Specified by:
initin interfacejakarta.servlet.Filter- Throws:
jakarta.servlet.ServletException
-
doFilter
public void doFilter(jakarta.servlet.ServletRequest servletRequest, jakarta.servlet.ServletResponse servletResponse, jakarta.servlet.FilterChain chain) throws IOException, jakarta.servlet.ServletException- Specified by:
doFilterin interfacejakarta.servlet.Filter- Throws:
IOExceptionjakarta.servlet.ServletException
-
destroy
public void destroy()
- Specified by:
destroyin interfacejakarta.servlet.Filter
-
isTraced
protected boolean isTraced(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.servlet.http.HttpServletResponse httpServletResponse)It checks whether a request should be traced or not.- Parameters:
httpServletRequest- requesthttpServletResponse- response- Returns:
- whether request should be traced or not
-
serverSpanContext
public static io.opentracing.SpanContext serverSpanContext(jakarta.servlet.ServletRequest servletRequest)
Get context of server span.- Parameters:
servletRequest- request- Returns:
- server span context
-
-