From 8a3d07760084d502103f81af4505bd626efe947f Mon Sep 17 00:00:00 2001 From: Lauri Tulmin Date: Mon, 15 Feb 2021 18:45:58 +0200 Subject: [PATCH] enable jetty instrumentation for all handlers --- .../jetty/JettyInstrumentationModule.java | 15 +-------------- .../opentelemetry/smoketest/JettySmokeTest.groovy | 2 +- 2 files changed, 2 insertions(+), 15 deletions(-) diff --git a/instrumentation/jetty-8.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jetty/JettyInstrumentationModule.java b/instrumentation/jetty-8.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jetty/JettyInstrumentationModule.java index 3767bc817c..e683a8fa3f 100644 --- a/instrumentation/jetty-8.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jetty/JettyInstrumentationModule.java +++ b/instrumentation/jetty-8.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/jetty/JettyInstrumentationModule.java @@ -11,7 +11,6 @@ import static java.util.Arrays.asList; import static java.util.Collections.singletonMap; import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.named; -import static net.bytebuddy.matcher.ElementMatchers.not; import static net.bytebuddy.matcher.ElementMatchers.takesArgument; import static net.bytebuddy.matcher.ElementMatchers.takesArguments; @@ -57,25 +56,13 @@ public class JettyInstrumentationModule extends InstrumentationModule { @Override public ElementMatcher typeMatcher() { - // skipping built-in handlers, so that for servlets there will be no span started by jetty. - // this is so that the servlet instrumentation will capture contextPath and servletPath - // normally, which the jetty instrumentation does not capture since jetty doesn't populate - // contextPath and servletPath until right before calling the servlet - // (another option is to instrument ServletHolder.handle() to capture those fields) - return not(named("org.eclipse.jetty.server.handler.HandlerWrapper")) - .and(not(named("org.eclipse.jetty.server.handler.ScopedHandler"))) - .and(not(named("org.eclipse.jetty.server.handler.ContextHandler"))) - .and(not(named("org.eclipse.jetty.servlet.ServletHandler"))) - .and(implementsInterface(named("org.eclipse.jetty.server.Handler"))); + return implementsInterface(named("org.eclipse.jetty.server.Handler")); } @Override public Map, String> transformers() { return singletonMap( named("handle") - // need to capture doHandle() for handlers that extend built-in handlers excluded - // above - .or(named("doHandle")) .and(takesArgument(0, named("java.lang.String"))) .and(takesArgument(1, named("org.eclipse.jetty.server.Request"))) .and(takesArgument(2, named("javax.servlet.http.HttpServletRequest"))) diff --git a/smoke-tests/src/test/groovy/io/opentelemetry/smoketest/JettySmokeTest.groovy b/smoke-tests/src/test/groovy/io/opentelemetry/smoketest/JettySmokeTest.groovy index f0dd02d67c..d35f84084f 100644 --- a/smoke-tests/src/test/groovy/io/opentelemetry/smoketest/JettySmokeTest.groovy +++ b/smoke-tests/src/test/groovy/io/opentelemetry/smoketest/JettySmokeTest.groovy @@ -16,7 +16,7 @@ class JettySmokeTest extends AppServerTest { } def getJettySpanName() { - return serverVersion.startsWith("10.") ? "HandlerList.handle" : "HandlerCollection.handle" + "HandlerWrapper.handle" } @Override