diff --git a/README.md b/README.md
index 205fc899dfc9..ce232c97a79a 100644
--- a/README.md
+++ b/README.md
@@ -221,6 +221,7 @@ Because the automatic instrumentation runs in a different classpath than the ins
| [Apache HttpAsyncClient](https://hc.apache.org/index.html) | 4.0+ |
| [Apache HttpClient](https://hc.apache.org/index.html) | 2.0+ |
| [Armeria](https://armeria.dev) | 0.99.8+ |
+| [AsyncHttpClient](https://github.com/AsyncHttpClient/async-http-client) | 1.9+ (not including 2.x yet) |
| [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/java-handler.html) | 1.0+ |
| [AWS SDK](https://aws.amazon.com/sdk-for-java/) | 1.11.x and 2.2.0+ |
| [Cassandra Driver](https://github.com/datastax/java-driver) | 3.0+ |
@@ -232,11 +233,10 @@ Because the automatic instrumentation runs in a different classpath than the ins
| [Geode Client](https://geode.apache.org/) | 1.4+ |
| [Google HTTP Client](https://github.com/googleapis/google-http-java-client) | 1.19+ |
| [Grizzly](https://javaee.github.io/grizzly/httpserverframework.html) | 2.0+ (disabled by default, see below) |
-| [Grizzly Client](https://github.com/javaee/grizzly-ahc) | 1.9+ |
| [gRPC](https://github.com/grpc/grpc-java) | 1.5+ |
| [Hibernate](https://github.com/hibernate/hibernate-orm) | 3.3+ |
| [HttpURLConnection](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/net/HttpURLConnection.html) | Java 7+ |
-| [http4k †](https://www.http4k.org/guide/modules/opentelemetry/) | 3.270.0+ |
+| [http4k †](https://www.http4k.org/guide/modules/opentelemetry/) | 3.270.0+ |
| [Hystrix](https://github.com/Netflix/Hystrix) | 1.4+ |
| [JAX-RS](https://javaee.github.io/javaee-spec/javadocs/javax/ws/rs/package-summary.html) | 0.5+ |
| [JAX-RS Client](https://javaee.github.io/javaee-spec/javadocs/javax/ws/rs/client/package-summary.html) | 2.0+ |
@@ -260,7 +260,7 @@ Because the automatic instrumentation runs in a different classpath than the ins
| [RabbitMQ Client](https://github.com/rabbitmq/rabbitmq-java-client) | 2.7+ |
| [Ratpack](https://github.com/ratpack/ratpack) | 1.4+ |
| [Reactor](https://github.com/reactor/reactor-core) | 3.1+ |
-| [Reactor Netty](https://github.com/reactor/reactor-netty) | 0.9+ (not including 1.0) |
+| [Reactor Netty](https://github.com/reactor/reactor-netty) | 0.9+ (not including 1.0) |
| [Rediscala](https://github.com/etaty/rediscala) | 1.8+ |
| [Redisson](https://github.com/redisson/redisson) | 3.0+ |
| [RMI](https://docs.oracle.com/en/java/javase/11/docs/api/java.rmi/java/rmi/package-summary.html) | Java 7+ |
diff --git a/instrumentation/async-http-client-1.9/async-http-client-1.9.gradle b/instrumentation/async-http-client-1.9/async-http-client-1.9.gradle
new file mode 100644
index 000000000000..23c6e49a2c54
--- /dev/null
+++ b/instrumentation/async-http-client-1.9/async-http-client-1.9.gradle
@@ -0,0 +1,14 @@
+apply from: "$rootDir/gradle/instrumentation.gradle"
+
+muzzle {
+ pass {
+ group = "com.ning"
+ module = "async-http-client"
+ versions = "[1.9.0,)"
+ assertInverse = true
+ }
+}
+
+dependencies {
+ library group: 'com.ning', name: 'async-http-client', version: '1.9.0'
+}
diff --git a/instrumentation/grizzly-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/client/GrizzlyInjectAdapter.java b/instrumentation/async-http-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/AsyncHttpClientInjectAdapter.java
similarity index 55%
rename from instrumentation/grizzly-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/client/GrizzlyInjectAdapter.java
rename to instrumentation/async-http-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/AsyncHttpClientInjectAdapter.java
index 7b89a4825bc9..45c532463cd6 100644
--- a/instrumentation/grizzly-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/client/GrizzlyInjectAdapter.java
+++ b/instrumentation/async-http-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/AsyncHttpClientInjectAdapter.java
@@ -3,14 +3,14 @@
* SPDX-License-Identifier: Apache-2.0
*/
-package io.opentelemetry.javaagent.instrumentation.grizzly.client;
+package io.opentelemetry.javaagent.instrumentation.asynchttpclient;
import com.ning.http.client.Request;
import io.opentelemetry.context.propagation.TextMapPropagator;
-public class GrizzlyInjectAdapter implements TextMapPropagator.Setter {
+public class AsyncHttpClientInjectAdapter implements TextMapPropagator.Setter {
- public static final GrizzlyInjectAdapter SETTER = new GrizzlyInjectAdapter();
+ public static final AsyncHttpClientInjectAdapter SETTER = new AsyncHttpClientInjectAdapter();
@Override
public void set(Request carrier, String key, String value) {
diff --git a/instrumentation/grizzly-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/client/GrizzlyClientInstrumentationModule.java b/instrumentation/async-http-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/AsyncHttpClientInstrumentationModule.java
similarity index 52%
rename from instrumentation/grizzly-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/client/GrizzlyClientInstrumentationModule.java
rename to instrumentation/async-http-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/AsyncHttpClientInstrumentationModule.java
index 452d04c397f5..147a88574fcb 100644
--- a/instrumentation/grizzly-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/client/GrizzlyClientInstrumentationModule.java
+++ b/instrumentation/async-http-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/AsyncHttpClientInstrumentationModule.java
@@ -3,44 +3,38 @@
* SPDX-License-Identifier: Apache-2.0
*/
-package io.opentelemetry.javaagent.instrumentation.grizzly.client;
+package io.opentelemetry.javaagent.instrumentation.asynchttpclient;
import static java.util.Arrays.asList;
import static java.util.Collections.singletonMap;
import com.google.auto.service.AutoService;
import io.opentelemetry.javaagent.instrumentation.api.Pair;
-import io.opentelemetry.javaagent.tooling.InstrumentationModule;
import io.opentelemetry.javaagent.tooling.TypeInstrumentation;
import java.util.List;
import java.util.Map;
-@AutoService(InstrumentationModule.class)
-public class GrizzlyClientInstrumentationModule extends InstrumentationModule {
- public GrizzlyClientInstrumentationModule() {
- super("grizzly-client", "grizzly-client-1.9", "ning");
+@AutoService(io.opentelemetry.javaagent.tooling.InstrumentationModule.class)
+public class AsyncHttpClientInstrumentationModule
+ extends io.opentelemetry.javaagent.tooling.InstrumentationModule {
+ public AsyncHttpClientInstrumentationModule() {
+ super("async-http-client", "async-http-client-1.9");
}
@Override
public String[] helperClassNames() {
return new String[] {
- packageName + ".GrizzlyClientTracer", packageName + ".GrizzlyInjectAdapter"
+ packageName + ".AsyncHttpClientTracer", packageName + ".AsyncHttpClientInjectAdapter"
};
}
@Override
public List typeInstrumentations() {
- return asList(
- new GrizzlyClientRequestInstrumentation(), new GrizzlyClientResponseInstrumentation());
+ return asList(new RequestInstrumentation(), new ResponseInstrumentation());
}
@Override
public Map contextStore() {
return singletonMap("com.ning.http.client.AsyncHandler", Pair.class.getName());
}
-
- @Override
- protected boolean defaultEnabled() {
- return false;
- }
}
diff --git a/instrumentation/grizzly-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/client/GrizzlyClientTracer.java b/instrumentation/async-http-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/AsyncHttpClientTracer.java
similarity index 73%
rename from instrumentation/grizzly-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/client/GrizzlyClientTracer.java
rename to instrumentation/async-http-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/AsyncHttpClientTracer.java
index 1393ffe1785d..48355b6e89c4 100644
--- a/instrumentation/grizzly-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/client/GrizzlyClientTracer.java
+++ b/instrumentation/async-http-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/AsyncHttpClientTracer.java
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/
-package io.opentelemetry.javaagent.instrumentation.grizzly.client;
+package io.opentelemetry.javaagent.instrumentation.asynchttpclient;
import com.ning.http.client.Request;
import com.ning.http.client.Response;
@@ -12,11 +12,11 @@
import java.net.URI;
import java.net.URISyntaxException;
-public class GrizzlyClientTracer extends HttpClientTracer {
+public class AsyncHttpClientTracer extends HttpClientTracer {
- private static final GrizzlyClientTracer TRACER = new GrizzlyClientTracer();
+ private static final AsyncHttpClientTracer TRACER = new AsyncHttpClientTracer();
- public static GrizzlyClientTracer tracer() {
+ public static AsyncHttpClientTracer tracer() {
return TRACER;
}
@@ -47,11 +47,11 @@ protected String responseHeader(Response response, String name) {
@Override
protected Setter getSetter() {
- return GrizzlyInjectAdapter.SETTER;
+ return AsyncHttpClientInjectAdapter.SETTER;
}
@Override
protected String getInstrumentationName() {
- return "io.opentelemetry.javaagent.grizzly-client";
+ return "io.opentelemetry.javaagent.async-http-client";
}
}
diff --git a/instrumentation/grizzly-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/client/GrizzlyClientRequestAdvice.java b/instrumentation/async-http-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/RequestAdvice.java
similarity index 78%
rename from instrumentation/grizzly-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/client/GrizzlyClientRequestAdvice.java
rename to instrumentation/async-http-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/RequestAdvice.java
index 165f77887a04..6d1ae8c5c392 100644
--- a/instrumentation/grizzly-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/client/GrizzlyClientRequestAdvice.java
+++ b/instrumentation/async-http-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/RequestAdvice.java
@@ -3,9 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/
-package io.opentelemetry.javaagent.instrumentation.grizzly.client;
-
-import static io.opentelemetry.javaagent.instrumentation.grizzly.client.GrizzlyClientTracer.tracer;
+package io.opentelemetry.javaagent.instrumentation.asynchttpclient;
import com.ning.http.client.AsyncHandler;
import com.ning.http.client.Request;
@@ -17,17 +15,17 @@
import io.opentelemetry.javaagent.instrumentation.api.Pair;
import net.bytebuddy.asm.Advice;
-public class GrizzlyClientRequestAdvice {
+public class RequestAdvice {
@Advice.OnMethodEnter(suppress = Throwable.class)
public static Scope onEnter(
@Advice.Argument(0) Request request, @Advice.Argument(1) AsyncHandler> handler) {
Context parentContext = Java8BytecodeBridge.currentContext();
- Span span = tracer().startSpan(request);
+ Span span = AsyncHttpClientTracer.tracer().startSpan(request);
InstrumentationContext.get(AsyncHandler.class, Pair.class)
.put(handler, Pair.of(parentContext, span));
- return tracer().startScope(span, request);
+ return AsyncHttpClientTracer.tracer().startScope(span, request);
}
@Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)
diff --git a/instrumentation/grizzly-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/client/GrizzlyClientRequestInstrumentation.java b/instrumentation/async-http-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/RequestInstrumentation.java
similarity index 84%
rename from instrumentation/grizzly-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/client/GrizzlyClientRequestInstrumentation.java
rename to instrumentation/async-http-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/RequestInstrumentation.java
index b1f6bc88e5d7..d616b6374722 100644
--- a/instrumentation/grizzly-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/client/GrizzlyClientRequestInstrumentation.java
+++ b/instrumentation/async-http-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/RequestInstrumentation.java
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/
-package io.opentelemetry.javaagent.instrumentation.grizzly.client;
+package io.opentelemetry.javaagent.instrumentation.asynchttpclient;
import static java.util.Collections.singletonMap;
import static net.bytebuddy.matcher.ElementMatchers.isPublic;
@@ -16,7 +16,7 @@
import net.bytebuddy.description.type.TypeDescription;
import net.bytebuddy.matcher.ElementMatcher;
-final class GrizzlyClientRequestInstrumentation implements TypeInstrumentation {
+final class RequestInstrumentation implements TypeInstrumentation {
@Override
public ElementMatcher super TypeDescription> typeMatcher() {
@@ -30,6 +30,6 @@ public Map extends ElementMatcher super MethodDescription>, String> transfor
.and(takesArgument(0, named("com.ning.http.client.Request")))
.and(takesArgument(1, named("com.ning.http.client.AsyncHandler")))
.and(isPublic()),
- GrizzlyClientRequestAdvice.class.getName());
+ RequestAdvice.class.getName());
}
}
diff --git a/instrumentation/grizzly-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/client/GrizzlyClientResponseAdvice.java b/instrumentation/async-http-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/ResponseAdvice.java
similarity index 84%
rename from instrumentation/grizzly-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/client/GrizzlyClientResponseAdvice.java
rename to instrumentation/async-http-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/ResponseAdvice.java
index 5f81cdb88053..513ffc18deaa 100644
--- a/instrumentation/grizzly-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/client/GrizzlyClientResponseAdvice.java
+++ b/instrumentation/async-http-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/ResponseAdvice.java
@@ -3,9 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/
-package io.opentelemetry.javaagent.instrumentation.grizzly.client;
-
-import static io.opentelemetry.javaagent.instrumentation.grizzly.client.GrizzlyClientTracer.tracer;
+package io.opentelemetry.javaagent.instrumentation.asynchttpclient;
import com.ning.http.client.AsyncCompletionHandler;
import com.ning.http.client.AsyncHandler;
@@ -18,7 +16,7 @@
import io.opentelemetry.javaagent.instrumentation.api.Pair;
import net.bytebuddy.asm.Advice;
-public class GrizzlyClientResponseAdvice {
+public class ResponseAdvice {
@Advice.OnMethodEnter(suppress = Throwable.class)
public static Scope onEnter(
@@ -33,7 +31,7 @@ public static Scope onEnter(
contextStore.put(handler, null);
}
if (spanWithParent.hasRight()) {
- tracer().end(spanWithParent.getRight(), response);
+ AsyncHttpClientTracer.tracer().end(spanWithParent.getRight(), response);
}
return spanWithParent.hasLeft() ? spanWithParent.getLeft().makeCurrent() : null;
}
diff --git a/instrumentation/grizzly-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/client/GrizzlyClientResponseInstrumentation.java b/instrumentation/async-http-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/ResponseInstrumentation.java
similarity index 86%
rename from instrumentation/grizzly-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/client/GrizzlyClientResponseInstrumentation.java
rename to instrumentation/async-http-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/ResponseInstrumentation.java
index 97e0c110d2d3..55e45aeec52a 100644
--- a/instrumentation/grizzly-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/grizzly/client/GrizzlyClientResponseInstrumentation.java
+++ b/instrumentation/async-http-client-1.9/src/main/java/io/opentelemetry/javaagent/instrumentation/asynchttpclient/ResponseInstrumentation.java
@@ -3,7 +3,7 @@
* SPDX-License-Identifier: Apache-2.0
*/
-package io.opentelemetry.javaagent.instrumentation.grizzly.client;
+package io.opentelemetry.javaagent.instrumentation.asynchttpclient;
import static io.opentelemetry.javaagent.tooling.ClassLoaderMatcher.hasClassesNamed;
import static java.util.Collections.singletonMap;
@@ -18,7 +18,7 @@
import net.bytebuddy.description.type.TypeDescription;
import net.bytebuddy.matcher.ElementMatcher;
-final class GrizzlyClientResponseInstrumentation implements TypeInstrumentation {
+final class ResponseInstrumentation implements TypeInstrumentation {
@Override
public ElementMatcher classLoaderMatcher() {
@@ -36,6 +36,6 @@ public Map extends ElementMatcher super MethodDescription>, String> transfor
named("onCompleted")
.and(takesArgument(0, named("com.ning.http.client.Response")))
.and(isPublic()),
- GrizzlyClientResponseAdvice.class.getName());
+ ResponseAdvice.class.getName());
}
}
diff --git a/instrumentation/grizzly-client-1.9/src/test/groovy/GrizzlyAsyncHttpClientTest.groovy b/instrumentation/async-http-client-1.9/src/test/groovy/AsyncHttpClientTest.groovy
similarity index 90%
rename from instrumentation/grizzly-client-1.9/src/test/groovy/GrizzlyAsyncHttpClientTest.groovy
rename to instrumentation/async-http-client-1.9/src/test/groovy/AsyncHttpClientTest.groovy
index 892acb40d289..6fedc3e551fd 100644
--- a/instrumentation/grizzly-client-1.9/src/test/groovy/GrizzlyAsyncHttpClientTest.groovy
+++ b/instrumentation/async-http-client-1.9/src/test/groovy/AsyncHttpClientTest.groovy
@@ -13,11 +13,7 @@ import io.opentelemetry.instrumentation.test.base.HttpClientTest
import spock.lang.AutoCleanup
import spock.lang.Shared
-class GrizzlyAsyncHttpClientTest extends HttpClientTest {
-
- static {
- System.setProperty("otel.instrumentation.grizzly-client.enabled", "true")
- }
+class AsyncHttpClientTest extends HttpClientTest {
@AutoCleanup
@Shared
diff --git a/instrumentation/grizzly-client-1.9/grizzly-client-1.9.gradle b/instrumentation/grizzly-client-1.9/grizzly-client-1.9.gradle
deleted file mode 100644
index f7c1715c6281..000000000000
--- a/instrumentation/grizzly-client-1.9/grizzly-client-1.9.gradle
+++ /dev/null
@@ -1,24 +0,0 @@
-apply from: "$rootDir/gradle/instrumentation.gradle"
-
-muzzle {
- pass {
- group = "org.glassfish.grizzly"
- module = "grizzly-http-client"
- versions = "[1.9,1.16]"
- assertInverse = true
- }
- pass {
- group = "com.ning"
- module = "async-http-client"
- versions = "[1.9.0,)"
- assertInverse = true
- }
-}
-
-dependencies {
- library group: 'org.glassfish.grizzly', name: 'grizzly-http-client', version: '1.9'
- // for some reason, the tests don't *load* until 1.12, but muzzles works as far back as 1.9
- testLibrary group: 'org.glassfish.grizzly', name: 'grizzly-http-client', version: '1.12'
-
- latestDepTestLibrary group: 'org.glassfish.grizzly', name: 'grizzly-http-client', version: '1.16'
-}
diff --git a/settings.gradle b/settings.gradle
index 514fa5ac550e..4fc4704b8e91 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -62,6 +62,7 @@ include ':instrumentation:apache-httpclient:apache-httpclient-4.0'
include ':instrumentation:armeria-1.0:javaagent'
include ':instrumentation:armeria-1.0:library'
include ':instrumentation:armeria-1.0:testing'
+include ':instrumentation:async-http-client-1.9'
include ':instrumentation:aws-lambda-1.0:javaagent'
include ':instrumentation:aws-lambda-1.0:library'
include ':instrumentation:aws-lambda-1.0:testing'
@@ -89,7 +90,6 @@ include ':instrumentation:finatra-2.9'
include ':instrumentation:geode-1.4'
include ':instrumentation:google-http-client-1.19'
include ':instrumentation:grizzly-2.0'
-include ':instrumentation:grizzly-client-1.9'
include ':instrumentation:grpc-1.5:javaagent'
include ':instrumentation:grpc-1.5:library'
include ':instrumentation:grpc-1.5:testing'