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()-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class
static class
Nested classes/interfaces inherited from interface hudson.ExtensionPoint
ExtensionPoint.LegacyInstancesAreScopedToHudson
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
_doFilter
(javax.servlet.http.HttpServletRequest servletRequest, javax.servlet.http.HttpServletResponse servletResponse, javax.servlet.FilterChain filterChain) void
afterConfiguration
(io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties configProperties) void
destroy()
void
doFilter
(javax.servlet.ServletRequest servletRequest, javax.servlet.ServletResponse servletResponse, javax.servlet.FilterChain filterChain) boolean
int
hashCode()
void
init
(javax.servlet.FilterConfig filterConfig) void
setTracer
(io.jenkins.plugins.opentelemetry.api.ReconfigurableOpenTelemetry openTelemetry) Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface io.jenkins.plugins.opentelemetry.api.OpenTelemetryLifecycleListener
compareTo, ordinal
-
Constructor Details
-
StaplerInstrumentationServletFilter
public StaplerInstrumentationServletFilter()
-
-
Method Details
-
afterConfiguration
public void afterConfiguration(io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties configProperties) - Specified by:
afterConfiguration
in interfaceio.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 interfacejavax.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 interfacejavax.servlet.Filter
-
init
public void init(javax.servlet.FilterConfig filterConfig) throws javax.servlet.ServletException - Specified by:
init
in interfacejavax.servlet.Filter
- Throws:
javax.servlet.ServletException
-
equals
-
hashCode
public int hashCode() -
setTracer
@Inject public void setTracer(io.jenkins.plugins.opentelemetry.api.ReconfigurableOpenTelemetry openTelemetry)
-