Interface ServletFilterSpanDecorator

  • All Known Implementing Classes:
    ServletFilterHeaderSpanDecorator

    public interface ServletFilterSpanDecorator
    SpanDecorator to decorate span at different stages in filter processing (before filterChain.doFilter(), after and if exception is thrown).
    Author:
    Pavol Loffay
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void onError​(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.servlet.http.HttpServletResponse httpServletResponse, Throwable exception, io.opentracing.Span span)
      Decorate span when an exception is thrown during processing in Filter.doFilter(ServletRequest, ServletResponse, FilterChain).
      void onRequest​(jakarta.servlet.http.HttpServletRequest httpServletRequest, io.opentracing.Span span)
      Decorate span before Filter.doFilter(ServletRequest, ServletResponse, FilterChain) is called.
      void onResponse​(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.servlet.http.HttpServletResponse httpServletResponse, io.opentracing.Span span)
      Decorate span after Filter.doFilter(ServletRequest, ServletResponse, FilterChain).
      void onTimeout​(jakarta.servlet.http.HttpServletRequest httpServletRequest, jakarta.servlet.http.HttpServletResponse httpServletResponse, long timeout, io.opentracing.Span span)
      Decorate span on asynchronous request timeout.
    • Field Detail

      • STANDARD_TAGS

        static final ServletFilterSpanDecorator STANDARD_TAGS
        Adds standard tags to span. Tags.HTTP_URL, Tags.HTTP_STATUS, Tags.HTTP_METHOD and Tags.COMPONENT. If an exception during Filter.doFilter(ServletRequest, ServletResponse, FilterChain) is thrown tag Tags.ERROR is added and Tags.HTTP_STATUS not because at this point it is not known.
    • Method Detail

      • onRequest

        void onRequest​(jakarta.servlet.http.HttpServletRequest httpServletRequest,
                       io.opentracing.Span span)
        Decorate span before Filter.doFilter(ServletRequest, ServletResponse, FilterChain) is called. This is called right after span in created. Span is already present in request attributes with name TracingFilter.SERVER_SPAN_CONTEXT.
        Parameters:
        httpServletRequest - request
        span - span to decorate
      • onResponse

        void onResponse​(jakarta.servlet.http.HttpServletRequest httpServletRequest,
                        jakarta.servlet.http.HttpServletResponse httpServletResponse,
                        io.opentracing.Span span)
        Decorate span after Filter.doFilter(ServletRequest, ServletResponse, FilterChain). When it is an async request this will be called in AsyncListener.onComplete(AsyncEvent).
        Parameters:
        httpServletRequest - request
        httpServletResponse - response
        span - span to decorate
      • onError

        void onError​(jakarta.servlet.http.HttpServletRequest httpServletRequest,
                     jakarta.servlet.http.HttpServletResponse httpServletResponse,
                     Throwable exception,
                     io.opentracing.Span span)
        Decorate span when an exception is thrown during processing in Filter.doFilter(ServletRequest, ServletResponse, FilterChain). This is also called in AsyncListener.onError(AsyncEvent).
        Parameters:
        httpServletRequest - request
        exception - exception
        span - span to decorate
      • onTimeout

        void onTimeout​(jakarta.servlet.http.HttpServletRequest httpServletRequest,
                       jakarta.servlet.http.HttpServletResponse httpServletResponse,
                       long timeout,
                       io.opentracing.Span span)
        Decorate span on asynchronous request timeout. It is called in AsyncListener.onTimeout(AsyncEvent).
        Parameters:
        httpServletRequest - request
        httpServletResponse - response
        timeout - timeout
        span - span to decorate