diff --git a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/DataSourceDecorator.java b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/DataSourceDecorator.java index d4e75e1455..baee43cde0 100644 --- a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/DataSourceDecorator.java +++ b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/DataSourceDecorator.java @@ -7,7 +7,7 @@ public class DataSourceDecorator extends BaseDecorator { @Override protected String[] instrumentationNames() { - return new String[] {"jdbc-beta", "jdbc-datasource"}; + return new String[] {"jdbc-datasource"}; } @Override diff --git a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/DataSourceInstrumentation.java b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/DataSourceInstrumentation.java index 43091ae449..e5930375c8 100644 --- a/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/DataSourceInstrumentation.java +++ b/dd-java-agent/instrumentation/jdbc/src/main/java/datadog/trace/instrumentation/jdbc/DataSourceInstrumentation.java @@ -25,7 +25,7 @@ import net.bytebuddy.matcher.ElementMatcher; @AutoService(Instrumenter.class) public final class DataSourceInstrumentation extends Instrumenter.Default { public DataSourceInstrumentation() { - super("jdbc-beta", "jdbc-datasource"); + super("jdbc-datasource"); } @Override diff --git a/dd-java-agent/instrumentation/jdbc/src/test/groovy/JDBCInstrumentationTest.groovy b/dd-java-agent/instrumentation/jdbc/src/test/groovy/JDBCInstrumentationTest.groovy index 0560e5ec0c..c1d2a9fc25 100644 --- a/dd-java-agent/instrumentation/jdbc/src/test/groovy/JDBCInstrumentationTest.groovy +++ b/dd-java-agent/instrumentation/jdbc/src/test/groovy/JDBCInstrumentationTest.groovy @@ -5,7 +5,6 @@ import datadog.trace.agent.test.AgentTestRunner import datadog.trace.api.Config import datadog.trace.api.DDSpanTypes import datadog.trace.instrumentation.api.Tags -import javax.sql.DataSource import org.apache.derby.jdbc.EmbeddedDataSource import org.apache.derby.jdbc.EmbeddedDriver import org.h2.Driver @@ -29,7 +28,7 @@ import static datadog.trace.agent.test.utils.TraceUtils.runUnderTrace class JDBCInstrumentationTest extends AgentTestRunner { static { - System.setProperty("dd.integration.jdbc-beta.enabled", "true") + System.setProperty("dd.integration.jdbc-datasource.enabled", "true") } @Shared diff --git a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/RequestDispatcherDecorator.java b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/RequestDispatcherDecorator.java index 1e0550cfbe..b20f3c19e7 100644 --- a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/RequestDispatcherDecorator.java +++ b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/RequestDispatcherDecorator.java @@ -7,7 +7,7 @@ public class RequestDispatcherDecorator extends BaseDecorator { @Override protected String[] instrumentationNames() { - return new String[] {"servlet-beta", "servlet-dispatcher"}; + return new String[] {"servlet", "servlet-dispatcher"}; } @Override diff --git a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/RequestDispatcherInstrumentation.java b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/RequestDispatcherInstrumentation.java index 662ddc629b..86ddbd3c69 100644 --- a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/RequestDispatcherInstrumentation.java +++ b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/dispatcher/RequestDispatcherInstrumentation.java @@ -1,5 +1,6 @@ package datadog.trace.instrumentation.servlet.dispatcher; +import static datadog.trace.agent.decorator.HttpServerDecorator.DD_SPAN_ATTRIBUTE; import static datadog.trace.agent.tooling.ByteBuddyElementMatchers.safeHasSuperType; import static datadog.trace.instrumentation.api.AgentTracer.activateSpan; import static datadog.trace.instrumentation.api.AgentTracer.activeSpan; @@ -31,12 +32,7 @@ import net.bytebuddy.matcher.ElementMatcher; @AutoService(Instrumenter.class) public final class RequestDispatcherInstrumentation extends Instrumenter.Default { public RequestDispatcherInstrumentation() { - super("servlet-beta", "servlet-dispatcher"); - } - - @Override - public boolean defaultEnabled() { - return false; + super("servlet", "servlet-dispatcher"); } @Override @@ -91,15 +87,24 @@ public final class RequestDispatcherInstrumentation extends Instrumenter.Default // In case we lose context, inject trace into to the request. propagate().inject(span, request, SETTER); + // temporarily remove from request to avoid spring resource name bubbling up: + request.removeAttribute(DD_SPAN_ATTRIBUTE); + return activateSpan(span, true).setAsyncPropagation(true); } @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class) public static void stop( - @Advice.Enter final AgentScope scope, @Advice.Thrown final Throwable throwable) { + @Advice.Enter final AgentScope scope, + @Advice.Argument(0) final ServletRequest request, + @Advice.Thrown final Throwable throwable) { if (scope == null) { return; } + + // now add it back... + request.setAttribute(DD_SPAN_ATTRIBUTE, scope.span()); + DECORATE.onError(scope, throwable); DECORATE.beforeFinish(scope); scope.close(); diff --git a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/filter/FilterDecorator.java b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/filter/FilterDecorator.java index c5dfc98f19..576fbe8e09 100644 --- a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/filter/FilterDecorator.java +++ b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/filter/FilterDecorator.java @@ -7,7 +7,7 @@ public class FilterDecorator extends BaseDecorator { @Override protected String[] instrumentationNames() { - return new String[] {"servlet-beta", "servlet-filter"}; + return new String[] {"servlet-filter"}; } @Override diff --git a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/filter/FilterInstrumentation.java b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/filter/FilterInstrumentation.java index f94814b908..6a5a98be45 100644 --- a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/filter/FilterInstrumentation.java +++ b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/filter/FilterInstrumentation.java @@ -27,7 +27,7 @@ import net.bytebuddy.matcher.ElementMatcher; @AutoService(Instrumenter.class) public final class FilterInstrumentation extends Instrumenter.Default { public FilterInstrumentation() { - super("servlet-beta", "servlet-filter"); + super("servlet-filter"); } @Override diff --git a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletDecorator.java b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletDecorator.java index b4a8d93324..f81a4a91d5 100644 --- a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletDecorator.java +++ b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletDecorator.java @@ -7,7 +7,7 @@ public class HttpServletDecorator extends BaseDecorator { @Override protected String[] instrumentationNames() { - return new String[] {"servlet-beta", "servlet-service"}; + return new String[] {"servlet-service"}; } @Override diff --git a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletInstrumentation.java b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletInstrumentation.java index faba631452..ad4c7a3190 100644 --- a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletInstrumentation.java +++ b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletInstrumentation.java @@ -32,7 +32,7 @@ import net.bytebuddy.matcher.ElementMatcher; @AutoService(Instrumenter.class) public final class HttpServletInstrumentation extends Instrumenter.Default { public HttpServletInstrumentation() { - super("servlet-beta", "servlet-service"); + super("servlet-service"); } @Override diff --git a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletResponseDecorator.java b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletResponseDecorator.java index 782aa99247..be986c1ad3 100644 --- a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletResponseDecorator.java +++ b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletResponseDecorator.java @@ -7,7 +7,7 @@ public class HttpServletResponseDecorator extends BaseDecorator { @Override protected String[] instrumentationNames() { - return new String[] {"servlet-beta", "servlet-response"}; + return new String[] {"servlet", "servlet-response"}; } @Override diff --git a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletResponseInstrumentation.java b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletResponseInstrumentation.java index 68ae6400b0..8f8c9717ec 100644 --- a/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletResponseInstrumentation.java +++ b/dd-java-agent/instrumentation/servlet/src/main/java/datadog/trace/instrumentation/servlet/http/HttpServletResponseInstrumentation.java @@ -29,12 +29,7 @@ import net.bytebuddy.matcher.ElementMatcher; @AutoService(Instrumenter.class) public final class HttpServletResponseInstrumentation extends Instrumenter.Default { public HttpServletResponseInstrumentation() { - super("servlet-beta", "servlet-response"); - } - - @Override - public boolean defaultEnabled() { - return false; + super("servlet", "servlet-response"); } @Override diff --git a/dd-java-agent/instrumentation/servlet/src/test/groovy/FilterTest.groovy b/dd-java-agent/instrumentation/servlet/src/test/groovy/FilterTest.groovy index fc7ccb5aa5..9a6b53ab2a 100644 --- a/dd-java-agent/instrumentation/servlet/src/test/groovy/FilterTest.groovy +++ b/dd-java-agent/instrumentation/servlet/src/test/groovy/FilterTest.groovy @@ -1,4 +1,5 @@ import datadog.trace.agent.test.AgentTestRunner + import javax.servlet.Filter import javax.servlet.FilterChain import javax.servlet.FilterConfig @@ -11,7 +12,7 @@ import static datadog.trace.agent.test.utils.TraceUtils.runUnderTrace class FilterTest extends AgentTestRunner { static { - System.setProperty("dd.integration.servlet-beta.enabled", "true") + System.setProperty("dd.integration.servlet-filter.enabled", "true") } def "test doFilter no-parent"() { diff --git a/dd-java-agent/instrumentation/servlet/src/test/groovy/HttpServletResponseTest.groovy b/dd-java-agent/instrumentation/servlet/src/test/groovy/HttpServletResponseTest.groovy index 9073a8044b..1bc6f2612e 100644 --- a/dd-java-agent/instrumentation/servlet/src/test/groovy/HttpServletResponseTest.groovy +++ b/dd-java-agent/instrumentation/servlet/src/test/groovy/HttpServletResponseTest.groovy @@ -1,18 +1,16 @@ import datadog.trace.agent.test.AgentTestRunner import groovy.servlet.AbstractHttpServlet +import spock.lang.Subject + import javax.servlet.ServletOutputStream import javax.servlet.http.Cookie import javax.servlet.http.HttpServletRequest import javax.servlet.http.HttpServletResponse -import spock.lang.Subject import static datadog.trace.agent.test.utils.TraceUtils.basicSpan import static datadog.trace.agent.test.utils.TraceUtils.runUnderTrace class HttpServletResponseTest extends AgentTestRunner { - static { - System.setProperty("dd.integration.servlet-beta.enabled", "true") - } @Subject def response = new TestResponse() diff --git a/dd-java-agent/instrumentation/servlet/src/test/groovy/HttpServletTest.groovy b/dd-java-agent/instrumentation/servlet/src/test/groovy/HttpServletTest.groovy index 1c5251509a..6df40c49a5 100644 --- a/dd-java-agent/instrumentation/servlet/src/test/groovy/HttpServletTest.groovy +++ b/dd-java-agent/instrumentation/servlet/src/test/groovy/HttpServletTest.groovy @@ -1,5 +1,6 @@ import datadog.trace.agent.test.AgentTestRunner import groovy.servlet.AbstractHttpServlet + import javax.servlet.http.HttpServletRequest import javax.servlet.http.HttpServletResponse @@ -8,7 +9,7 @@ import static datadog.trace.agent.test.utils.TraceUtils.runUnderTrace class HttpServletTest extends AgentTestRunner { static { - System.setProperty("dd.integration.servlet-beta.enabled", "true") + System.setProperty("dd.integration.servlet-service.enabled", "true") } def req = Mock(HttpServletRequest) { diff --git a/dd-java-agent/instrumentation/servlet/src/test/groovy/RequestDispatcherTest.groovy b/dd-java-agent/instrumentation/servlet/src/test/groovy/RequestDispatcherTest.groovy index b5a5e0f3c6..f352051753 100644 --- a/dd-java-agent/instrumentation/servlet/src/test/groovy/RequestDispatcherTest.groovy +++ b/dd-java-agent/instrumentation/servlet/src/test/groovy/RequestDispatcherTest.groovy @@ -1,4 +1,5 @@ import datadog.trace.agent.test.AgentTestRunner + import javax.servlet.ServletException import javax.servlet.http.HttpServletRequest import javax.servlet.http.HttpServletResponse @@ -7,9 +8,6 @@ import static datadog.trace.agent.test.utils.TraceUtils.basicSpan import static datadog.trace.agent.test.utils.TraceUtils.runUnderTrace class RequestDispatcherTest extends AgentTestRunner { - static { - System.setProperty("dd.integration.servlet-beta.enabled", "true") - } def dispatcher = new RequestDispatcherUtils(Mock(HttpServletRequest), Mock(HttpServletResponse))