Class StaplerInstrumentationServletFilter

java.lang.Object
io.jenkins.plugins.opentelemetry.servlet.StaplerInstrumentationServletFilter
All Implemented Interfaces:
ExtensionPoint, io.jenkins.plugins.opentelemetry.api.OpenTelemetryLifecycleListener, Comparable<io.jenkins.plugins.opentelemetry.api.OpenTelemetryLifecycleListener>, javax.servlet.Filter

@Extension public class StaplerInstrumentationServletFilter extends Object implements javax.servlet.Filter, io.jenkins.plugins.opentelemetry.api.OpenTelemetryLifecycleListener
Instrumentation of the Stapler MVC framework. Must be a Filter rather than a HttpServletFilter because it must wrap the invocation of the FilterChain to create a Span. TODO find a smarter way to instrument each HTTP request path. It should rely on instrumenting the Stapler framework TODO adopt StaplerRequest.html#getAncestors()
  • Constructor Details

    • StaplerInstrumentationServletFilter

      public StaplerInstrumentationServletFilter()
  • Method Details

    • afterConfiguration

      public void afterConfiguration(io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties configProperties)
      Specified by:
      afterConfiguration in interface io.jenkins.plugins.opentelemetry.api.OpenTelemetryLifecycleListener
    • doFilter

      public void doFilter(javax.servlet.ServletRequest servletRequest, javax.servlet.ServletResponse servletResponse, javax.servlet.FilterChain filterChain) throws IOException, javax.servlet.ServletException
      Specified by:
      doFilter in interface javax.servlet.Filter
      Throws:
      IOException
      javax.servlet.ServletException
    • _doFilter

      public void _doFilter(javax.servlet.http.HttpServletRequest servletRequest, javax.servlet.http.HttpServletResponse servletResponse, javax.servlet.FilterChain filterChain) throws IOException, javax.servlet.ServletException
      Throws:
      IOException
      javax.servlet.ServletException
    • destroy

      public void destroy()
      Specified by:
      destroy in interface javax.servlet.Filter
    • init

      public void init(javax.servlet.FilterConfig filterConfig) throws javax.servlet.ServletException
      Specified by:
      init in interface javax.servlet.Filter
      Throws:
      javax.servlet.ServletException
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • setTracer

      @Inject public void setTracer(io.jenkins.plugins.opentelemetry.api.ReconfigurableOpenTelemetry openTelemetry)