Skip to content
Merged
Original file line number Diff line number Diff line change
Expand Up @@ -29,4 +29,11 @@ public static AsyncHandlerData create(
public abstract Request getRequest();

public abstract Instrumenter<Request, Response> getInstrumenter();

public void end(Response response, Throwable throwable) {
Instrumenter<Request, Response> instrumenter = getInstrumenter();
if (instrumenter != null) {
instrumenter.end(getContext(), getRequest(), response, throwable);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@
import java.util.List;
import javax.annotation.Nullable;

public final class AsyncHttpClientHttpAttributesGetter
final class AsyncHttpClientHttpAttributesGetter
implements HttpClientAttributesGetter<Request, Response> {

private final AsyncHttpClientHelper helper;

public AsyncHttpClientHttpAttributesGetter(AsyncHttpClientHelper helper) {
AsyncHttpClientHttpAttributesGetter(AsyncHttpClientHelper helper) {
this.helper = helper;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/

package io.opentelemetry.javaagent.instrumentation.asynchttpclient.common;

import com.ning.http.client.Request;
import com.ning.http.client.Response;
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.javaagent.bootstrap.internal.JavaagentHttpClientInstrumenters;

public final class AsyncHttpClientInstrumenterFactory {

public static Instrumenter<Request, Response> create(
String instrumentationName, AsyncHttpClientHelper helper) {
AsyncHttpClientHttpAttributesGetter httpAttributesGetter =
new AsyncHttpClientHttpAttributesGetter(helper);
HttpHeaderSetter headerSetter = new HttpHeaderSetter(helper);

return JavaagentHttpClientInstrumenters.create(
instrumentationName, httpAttributesGetter, headerSetter);
}

private AsyncHttpClientInstrumenterFactory() {}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@
import com.ning.http.client.Request;
import io.opentelemetry.context.propagation.TextMapSetter;

public final class HttpHeaderSetter implements TextMapSetter<Request> {
final class HttpHeaderSetter implements TextMapSetter<Request> {

private final AsyncHttpClientHelper helper;

public HttpHeaderSetter(AsyncHttpClientHelper helper) {
HttpHeaderSetter(AsyncHttpClientHelper helper) {
this.helper = helper;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,8 @@
import static net.bytebuddy.matcher.ElementMatchers.takesArgument;

import com.ning.http.client.AsyncCompletionHandler;
import com.ning.http.client.Request;
import com.ning.http.client.Response;
import io.opentelemetry.context.Scope;
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
import net.bytebuddy.asm.Advice;
Expand Down Expand Up @@ -60,10 +58,7 @@ public static Scope onEnter(
}
ASYNC_HANDLER_DATA.set(handler, null);

Instrumenter<Request, Response> instrumenter = data.getInstrumenter();
if (instrumenter != null) {
instrumenter.end(data.getContext(), data.getRequest(), response, null);
}
data.end(response, null);
return data.getParentContext().makeCurrent();
}

Expand All @@ -88,10 +83,7 @@ public static Scope onEnter(
}
ASYNC_HANDLER_DATA.set(handler, null);

Instrumenter<Request, Response> instrumenter = data.getInstrumenter();
if (instrumenter != null) {
instrumenter.end(data.getContext(), data.getRequest(), null, throwable);
}
data.end(null, throwable);
return data.getParentContext().makeCurrent();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ tasks {
jvmArgs("-XX:+IgnoreUnrecognizedVMOptions")

systemProperty("testLatestDeps", findProperty("testLatestDeps") as Boolean)
systemProperty("async.https.skip", "true")

systemProperty("collectMetadata", findProperty("collectMetadata")?.toString() ?: "false")
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,17 @@
import com.ning.http.client.Request;
import com.ning.http.client.Response;
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.javaagent.bootstrap.internal.JavaagentHttpClientInstrumenters;
import io.opentelemetry.javaagent.instrumentation.asynchttpclient.common.AsyncHttpClientHttpAttributesGetter;
import io.opentelemetry.javaagent.instrumentation.asynchttpclient.common.HttpHeaderSetter;
import io.opentelemetry.javaagent.instrumentation.asynchttpclient.common.AsyncHttpClientInstrumenterFactory;

public final class AsyncHttpClientSingletons {
private static final String INSTRUMENTATION_NAME = "io.opentelemetry.async-http-client-1.8";

private static final Instrumenter<Request, Response> INSTRUMENTER;

static {
AsyncHttpClientHttpAttributesGetter httpAttributesGetter =
new AsyncHttpClientHttpAttributesGetter(AsyncHttpClient18Helper.INSTANCE);
HttpHeaderSetter headerSetter = new HttpHeaderSetter(AsyncHttpClient18Helper.INSTANCE);

INSTRUMENTER =
JavaagentHttpClientInstrumenters.create(
INSTRUMENTATION_NAME, httpAttributesGetter, headerSetter);
AsyncHttpClientInstrumenterFactory.create(
INSTRUMENTATION_NAME, AsyncHttpClient18Helper.INSTANCE);
}

public static Instrumenter<Request, Response> instrumenter() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,17 @@
import com.ning.http.client.Request;
import com.ning.http.client.Response;
import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter;
import io.opentelemetry.javaagent.bootstrap.internal.JavaagentHttpClientInstrumenters;
import io.opentelemetry.javaagent.instrumentation.asynchttpclient.common.AsyncHttpClientHttpAttributesGetter;
import io.opentelemetry.javaagent.instrumentation.asynchttpclient.common.HttpHeaderSetter;
import io.opentelemetry.javaagent.instrumentation.asynchttpclient.common.AsyncHttpClientInstrumenterFactory;

public final class AsyncHttpClientSingletons {
private static final String INSTRUMENTATION_NAME = "io.opentelemetry.async-http-client-1.9";

private static final Instrumenter<Request, Response> INSTRUMENTER;

static {
AsyncHttpClientHttpAttributesGetter httpAttributesGetter =
new AsyncHttpClientHttpAttributesGetter(AsyncHttpClient19Helper.INSTANCE);
HttpHeaderSetter headerSetter = new HttpHeaderSetter(AsyncHttpClient19Helper.INSTANCE);

INSTRUMENTER =
JavaagentHttpClientInstrumenters.create(
INSTRUMENTATION_NAME, httpAttributesGetter, headerSetter);
AsyncHttpClientInstrumenterFactory.create(
INSTRUMENTATION_NAME, AsyncHttpClient19Helper.INSTANCE);
}

public static Instrumenter<Request, Response> instrumenter() {
Expand Down
Loading