Class StaplerInstrumentationServletFilter

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

@Extension public class StaplerInstrumentationServletFilter extends Object implements jakarta.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 StaplerRequest2.html#getAncestors()
  • Constructor Details

    • StaplerInstrumentationServletFilter

      public StaplerInstrumentationServletFilter()
  • Method Details

    • postConstruct

      @PostConstruct public void postConstruct()
    • 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(jakarta.servlet.ServletRequest servletRequest, jakarta.servlet.ServletResponse servletResponse, jakarta.servlet.FilterChain filterChain) throws IOException, jakarta.servlet.ServletException
      Specified by:
      doFilter in interface jakarta.servlet.Filter
      Throws:
      IOException
      jakarta.servlet.ServletException
    • _doFilter

      public void _doFilter(jakarta.servlet.http.HttpServletRequest servletRequest, jakarta.servlet.http.HttpServletResponse servletResponse, jakarta.servlet.FilterChain filterChain) throws IOException, jakarta.servlet.ServletException
      Throws:
      IOException
      jakarta.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)