diff --git a/instrumentation/tomcat/tomcat-7.0/javaagent/build.gradle.kts b/instrumentation/tomcat/tomcat-7.0/javaagent/build.gradle.kts index 372a78b96a5e..7e43aae79a81 100644 --- a/instrumentation/tomcat/tomcat-7.0/javaagent/build.gradle.kts +++ b/instrumentation/tomcat/tomcat-7.0/javaagent/build.gradle.kts @@ -34,7 +34,7 @@ dependencies { } tasks { - withType().configureEach { + test { jvmArgs("-Dotel.instrumentation.servlet.experimental.capture-request-parameters=test-parameter") // required on jdk17 jvmArgs("--add-opens=java.base/java.util=ALL-UNNAMED") diff --git a/instrumentation/tomcat/tomcat-7.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/v7_0/Tomcat7InstrumentationModule.java b/instrumentation/tomcat/tomcat-7.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/v7_0/Tomcat7InstrumentationModule.java index dcf1c5bed3eb..e9b17c8c5119 100644 --- a/instrumentation/tomcat/tomcat-7.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/v7_0/Tomcat7InstrumentationModule.java +++ b/instrumentation/tomcat/tomcat-7.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/tomcat/v7_0/Tomcat7InstrumentationModule.java @@ -51,7 +51,7 @@ public List typeInstrumentations() { @SuppressWarnings("unused") public static class Tomcat7AttachResponseAdvice { - @Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class, inline = false) + @Advice.OnMethodExit(suppress = Throwable.class, inline = false) public static void attachResponse( @Advice.Argument(2) Response response, @Advice.Return boolean success) { diff --git a/instrumentation/tomcat/tomcat-jdbc/metadata.yaml b/instrumentation/tomcat/tomcat-jdbc/metadata.yaml index f5d3efc4b255..decc13f9c51a 100644 --- a/instrumentation/tomcat/tomcat-jdbc/metadata.yaml +++ b/instrumentation/tomcat/tomcat-jdbc/metadata.yaml @@ -5,6 +5,7 @@ semantic_conventions: - DATABASE_POOL_METRICS configurations: - name: otel.semconv-stability.opt-in + declarative_name: general.semconv_stability.opt_in description: > Opt-in to emit stable semantic conventions instead of the old experimental semantic conventions. Accepts a comma-separated list of semantic convention diff --git a/instrumentation/twilio-6.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/twilio/v6_6/TwilioAsyncInstrumentation.java b/instrumentation/twilio-6.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/twilio/v6_6/TwilioAsyncInstrumentation.java index 52ebdf2df77b..91961436180a 100644 --- a/instrumentation/twilio-6.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/twilio/v6_6/TwilioAsyncInstrumentation.java +++ b/instrumentation/twilio-6.6/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/twilio/v6_6/TwilioAsyncInstrumentation.java @@ -8,7 +8,6 @@ import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.extendsClass; import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.hasClassesNamed; import static io.opentelemetry.javaagent.instrumentation.twilio.v6_6.TwilioSingletons.instrumenter; -import static io.opentelemetry.javaagent.instrumentation.twilio.v6_6.TwilioSingletons.spanName; import static net.bytebuddy.matcher.ElementMatchers.isAbstract; import static net.bytebuddy.matcher.ElementMatchers.isPublic; import static net.bytebuddy.matcher.ElementMatchers.named; @@ -83,7 +82,7 @@ private AdviceScope(Context context, Scope scope, String spanName) { @Nullable public static AdviceScope start(Object target, String methodName) { Context parentContext = Context.current(); - String spanName = spanName(target, methodName); + String spanName = TwilioSingletons.spanName(target, methodName); if (!instrumenter().shouldStart(parentContext, spanName)) { return null; } diff --git a/instrumentation/undertow-1.4/bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/undertow/KeyHolder.java b/instrumentation/undertow-1.4/bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/undertow/KeyHolder.java index b076eca94b36..3b6945405f46 100644 --- a/instrumentation/undertow-1.4/bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/undertow/KeyHolder.java +++ b/instrumentation/undertow-1.4/bootstrap/src/main/java/io/opentelemetry/javaagent/bootstrap/undertow/KeyHolder.java @@ -9,6 +9,7 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.function.Supplier; +import javax.annotation.Nullable; /** * Undertow's {@code io.undertow.server.HttpServerExchange} uses {@code @@ -33,6 +34,7 @@ public final class KeyHolder { private static final ConcurrentMap, Object> contextKeys = new ConcurrentHashMap<>(); + @Nullable public static Object get(Class keyType) { return contextKeys.get(keyType); } diff --git a/instrumentation/undertow-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/undertow/v1_4/EndSpanListener.java b/instrumentation/undertow-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/undertow/v1_4/EndSpanListener.java index 3cc6f4d88e9d..9d969726bc80 100644 --- a/instrumentation/undertow-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/undertow/v1_4/EndSpanListener.java +++ b/instrumentation/undertow-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/undertow/v1_4/EndSpanListener.java @@ -11,10 +11,10 @@ import io.undertow.server.ExchangeCompletionListener; import io.undertow.server.HttpServerExchange; -public class EndSpanListener implements ExchangeCompletionListener { +class EndSpanListener implements ExchangeCompletionListener { private final Context context; - public EndSpanListener(Context context) { + EndSpanListener(Context context) { this.context = context; } diff --git a/instrumentation/vertx/vertx-http-client/vertx-http-client-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v3_0/Vertx3HttpAttributesGetter.java b/instrumentation/vertx/vertx-http-client/vertx-http-client-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v3_0/Vertx3HttpAttributesGetter.java index f19ea6a68681..2445f38ea3c9 100644 --- a/instrumentation/vertx/vertx-http-client/vertx-http-client-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v3_0/Vertx3HttpAttributesGetter.java +++ b/instrumentation/vertx/vertx-http-client/vertx-http-client-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v3_0/Vertx3HttpAttributesGetter.java @@ -5,23 +5,21 @@ package io.opentelemetry.javaagent.instrumentation.vertx.httpclient.v3_0; -import io.opentelemetry.instrumentation.api.util.VirtualField; +import static io.opentelemetry.javaagent.instrumentation.vertx.httpclient.v3_0.VertxClientSingletons.REQUEST_INFO; + import io.opentelemetry.javaagent.instrumentation.vertx.httpclient.common.v3_0.AbstractVertxHttpAttributesGetter; import io.vertx.core.http.HttpClientRequest; import javax.annotation.Nullable; final class Vertx3HttpAttributesGetter extends AbstractVertxHttpAttributesGetter { - private static final VirtualField requestInfoField = - VirtualField.find(HttpClientRequest.class, VertxRequestInfo.class); - @Override public String getUrlFull(HttpClientRequest request) { String uri = request.uri(); // Uri should be relative, but it is possible to misuse vert.x api and pass an absolute uri // where relative is expected. if (!isAbsolute(uri)) { - VertxRequestInfo requestInfo = requestInfoField.get(request); + VertxRequestInfo requestInfo = REQUEST_INFO.get(request); if (requestInfo != null) { uri = absoluteUri(requestInfo, uri); } @@ -32,7 +30,7 @@ public String getUrlFull(HttpClientRequest request) { @Nullable @Override public String getServerAddress(HttpClientRequest request) { - VertxRequestInfo requestInfo = requestInfoField.get(request); + VertxRequestInfo requestInfo = REQUEST_INFO.get(request); if (requestInfo == null) { return null; } @@ -42,7 +40,7 @@ public String getServerAddress(HttpClientRequest request) { @Nullable @Override public Integer getServerPort(HttpClientRequest request) { - VertxRequestInfo requestInfo = requestInfoField.get(request); + VertxRequestInfo requestInfo = REQUEST_INFO.get(request); if (requestInfo == null) { return null; } diff --git a/instrumentation/vertx/vertx-http-client/vertx-http-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v4_0/HandlerWrapper.java b/instrumentation/vertx/vertx-http-client/vertx-http-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v4_0/HandlerWrapper.java index 15fbd4dc24ca..40ef891e1806 100644 --- a/instrumentation/vertx/vertx-http-client/vertx-http-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v4_0/HandlerWrapper.java +++ b/instrumentation/vertx/vertx-http-client/vertx-http-client-4.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v4_0/HandlerWrapper.java @@ -30,7 +30,7 @@ public static Handler wrap(@Nullable Handler handler) { @Override public void handle(T t) { - try (Scope ignore = context.makeCurrent()) { + try (Scope ignored = context.makeCurrent()) { delegate.handle(t); } } diff --git a/instrumentation/vertx/vertx-http-client/vertx-http-client-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v5_0/HttpRequestInstrumentation.java b/instrumentation/vertx/vertx-http-client/vertx-http-client-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v5_0/HttpRequestInstrumentation.java index 462d869924c4..be87181d2b6a 100644 --- a/instrumentation/vertx/vertx-http-client/vertx-http-client-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v5_0/HttpRequestInstrumentation.java +++ b/instrumentation/vertx/vertx-http-client/vertx-http-client-5.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v5_0/HttpRequestInstrumentation.java @@ -9,7 +9,6 @@ import static io.opentelemetry.javaagent.extension.matcher.AgentElementMatchers.implementsInterface; import static io.opentelemetry.javaagent.instrumentation.vertx.httpclient.v5_0.VertxClientSingletons.CONTEXTS; import static io.opentelemetry.javaagent.instrumentation.vertx.httpclient.v5_0.VertxClientSingletons.instrumenter; -import static net.bytebuddy.matcher.ElementMatchers.isMethod; import static net.bytebuddy.matcher.ElementMatchers.isPrivate; import static net.bytebuddy.matcher.ElementMatchers.nameStartsWith; import static net.bytebuddy.matcher.ElementMatchers.named; @@ -60,8 +59,7 @@ public ElementMatcher typeMatcher() { @Override public void transform(TypeTransformer transformer) { transformer.applyAdviceToMethod( - isMethod().and(nameStartsWith("end").or(named("sendHead"))), - getClass().getName() + "$EndRequestAdvice"); + nameStartsWith("end").or(named("sendHead")), getClass().getName() + "$EndRequestAdvice"); transformer.applyAdviceToMethod( named("handleException"), getClass().getName() + "$HandleExceptionAdvice"); @@ -72,7 +70,7 @@ public void transform(TypeTransformer transformer) { getClass().getName() + "$HandleResponseAdvice"); transformer.applyAdviceToMethod( - isMethod().and(isPrivate()).and(nameStartsWith("write").or(nameStartsWith("connected"))), + isPrivate().and(nameStartsWith("write").or(nameStartsWith("connected"))), getClass().getName() + "$MountContextAdvice"); transformer.applyAdviceToMethod( diff --git a/instrumentation/vertx/vertx-http-client/vertx-http-client-5.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v5_0/VertxHttpClientTest.java b/instrumentation/vertx/vertx-http-client/vertx-http-client-5.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v5_0/VertxHttpClientTest.java index 605138a18e60..fa00b5784347 100644 --- a/instrumentation/vertx/vertx-http-client/vertx-http-client-5.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v5_0/VertxHttpClientTest.java +++ b/instrumentation/vertx/vertx-http-client/vertx-http-client-5.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/vertx/httpclient/v5_0/VertxHttpClientTest.java @@ -26,6 +26,7 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.CompletableFuture; +import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.condition.OS; import org.junit.jupiter.api.extension.RegisterExtension; @@ -34,15 +35,20 @@ class VertxHttpClientTest extends AbstractHttpClientTest buildRequest( String method, URI uri, Map headers) {