Skip to content

Commit

Permalink
[pinpoint-apm#8557] add http client 4 support
Browse files Browse the repository at this point in the history
  • Loading branch information
yjqg6666 committed Dec 30, 2021
1 parent 5c63bad commit 41e3104
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,13 @@
import com.navercorp.pinpoint.bootstrap.async.AsyncContextAccessor;
import com.navercorp.pinpoint.bootstrap.config.HttpDumpConfig;
import com.navercorp.pinpoint.bootstrap.context.AsyncContext;
import com.navercorp.pinpoint.bootstrap.plugin.request.ApplicationInfoSender;
import com.navercorp.pinpoint.bootstrap.plugin.request.ClientHeaderAdaptor;
import com.navercorp.pinpoint.bootstrap.plugin.request.ClientRequestAdaptor;
import com.navercorp.pinpoint.bootstrap.plugin.request.ClientRequestRecorder;
import com.navercorp.pinpoint.bootstrap.plugin.request.ClientRequestWrapper;
import com.navercorp.pinpoint.bootstrap.plugin.request.ClientRequestWrapperAdaptor;
import com.navercorp.pinpoint.bootstrap.plugin.request.DefaultApplicationInfoSender;
import com.navercorp.pinpoint.bootstrap.plugin.request.DefaultRequestTraceWriter;
import com.navercorp.pinpoint.bootstrap.plugin.request.RequestTraceWriter;
import com.navercorp.pinpoint.bootstrap.plugin.request.util.CookieExtractor;
Expand Down Expand Up @@ -71,6 +73,7 @@ public class DefaultClientExchangeHandlerImplStartMethodInterceptor implements A
private final EntityRecorder<HttpRequest> entityRecorder;

private final RequestTraceWriter<HttpRequest> requestTraceWriter;
private final ApplicationInfoSender<HttpRequest> applicationInfoSender;

public DefaultClientExchangeHandlerImplStartMethodInterceptor(TraceContext traceContext, MethodDescriptor methodDescriptor) {
this.traceContext = traceContext;
Expand All @@ -91,6 +94,7 @@ public DefaultClientExchangeHandlerImplStartMethodInterceptor(TraceContext trace

ClientHeaderAdaptor<HttpRequest> clientHeaderAdaptor = new HttpRequest4ClientHeaderAdaptor();
this.requestTraceWriter = new DefaultRequestTraceWriter<>(clientHeaderAdaptor, traceContext);
this.applicationInfoSender = new DefaultApplicationInfoSender<>(clientHeaderAdaptor, traceContext);
}

@Override
Expand All @@ -105,6 +109,8 @@ public void before(Object target, Object[] args) {
}

final HttpRequest httpRequest = getHttpRequest(target);
this.applicationInfoSender.sendCallerApplicationName(httpRequest);

final NameIntValuePair<String> host = getHost(target);
final boolean sampling = trace.canSampled();
if (!sampling) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,13 @@
import com.navercorp.pinpoint.bootstrap.context.AttributeRecorder;
import com.navercorp.pinpoint.bootstrap.interceptor.scope.InterceptorScope;
import com.navercorp.pinpoint.bootstrap.interceptor.scope.InterceptorScopeInvocation;
import com.navercorp.pinpoint.bootstrap.plugin.request.ApplicationInfoSender;
import com.navercorp.pinpoint.bootstrap.plugin.request.ClientHeaderAdaptor;
import com.navercorp.pinpoint.bootstrap.plugin.request.ClientRequestAdaptor;
import com.navercorp.pinpoint.bootstrap.plugin.request.ClientRequestRecorder;
import com.navercorp.pinpoint.bootstrap.plugin.request.ClientRequestWrapper;
import com.navercorp.pinpoint.bootstrap.plugin.request.ClientRequestWrapperAdaptor;
import com.navercorp.pinpoint.bootstrap.plugin.request.DefaultApplicationInfoSender;
import com.navercorp.pinpoint.bootstrap.plugin.request.DefaultRequestTraceWriter;
import com.navercorp.pinpoint.bootstrap.plugin.request.RequestTraceWriter;
import com.navercorp.pinpoint.bootstrap.plugin.request.util.CookieExtractor;
Expand Down Expand Up @@ -75,6 +77,7 @@ public class HttpRequestExecutorExecuteMethodInterceptor implements AroundInterc
private final ServerResponseHeaderRecorder<HttpResponse> responseHeaderRecorder;
private final CookieRecorder<HttpRequest> cookieRecorder;
private final RequestTraceWriter<HttpRequest> requestTraceWriter;
private final ApplicationInfoSender<HttpRequest> applicationInfoSender;

public HttpRequestExecutorExecuteMethodInterceptor(TraceContext traceContext, MethodDescriptor methodDescriptor, InterceptorScope interceptorScope) {
this.traceContext = traceContext;
Expand All @@ -93,6 +96,7 @@ public HttpRequestExecutorExecuteMethodInterceptor(TraceContext traceContext, Me
this.io = profilerConfig.isIo();
ClientHeaderAdaptor<HttpRequest> clientHeaderAdaptor = new HttpRequest4ClientHeaderAdaptor();
this.requestTraceWriter = new DefaultRequestTraceWriter<>(clientHeaderAdaptor, traceContext);
this.applicationInfoSender = new DefaultApplicationInfoSender<>(clientHeaderAdaptor, traceContext);

this.responseHeaderRecorder = ResponseHeaderRecorderFactory.newResponseHeaderRecorder(traceContext.getProfilerConfig(), new HttpResponse4ClientHeaderAdaptor());
}
Expand All @@ -102,12 +106,15 @@ public void before(Object target, Object[] args) {
if (isDebug) {
logger.beforeInterceptor(target, args);
}

final Trace trace = traceContext.currentRawTraceObject();
if (trace == null) {
return;
}

final HttpRequest httpRequest = getHttpRequest(args);
applicationInfoSender.sendCallerApplicationName(httpRequest);

final NameIntValuePair<String> host = getHost();
final boolean sampling = trace.canSampled();
if (!sampling) {
Expand Down

0 comments on commit 41e3104

Please sign in to comment.