Search in sources :

Example 51 with Subsegment

use of com.amazonaws.xray.entities.Subsegment in project aws-xray-sdk-java by aws.

the class TracedResponseHandler method handleResponse.

@Override
public T handleResponse(HttpResponse response) throws ClientProtocolException, IOException {
    T handled = wrappedHandler.handleResponse(response);
    Subsegment currentSubsegment = AWSXRay.getCurrentSubsegment();
    if (null != currentSubsegment) {
        TracedResponseHandler.addResponseInformation(currentSubsegment, response);
    }
    return handled;
}
Also used : Subsegment(com.amazonaws.xray.entities.Subsegment)

Example 52 with Subsegment

use of com.amazonaws.xray.entities.Subsegment in project aws-xray-sdk-java by aws.

the class TracedHttpClientTest method normalPropagation.

@Test
public void normalPropagation() throws Exception {
    stubFor(any(anyUrl()).willReturn(ok()));
    TraceID traceID = TraceID.fromString("1-67891233-abcdef012345678912345678");
    Segment segment = AWSXRay.beginSegment("test", traceID, null);
    client.execute(new HttpGet(server.baseUrl())).close();
    AWSXRay.endSegment();
    Subsegment subsegment = segment.getSubsegments().get(0);
    verify(getRequestedFor(urlPathEqualTo("/")).withHeader(TraceHeader.HEADER_KEY, equalTo("Root=1-67891233-abcdef012345678912345678;Parent=" + subsegment.getId() + ";Sampled=1")));
}
Also used : HttpGet(org.apache.http.client.methods.HttpGet) TraceID(com.amazonaws.xray.entities.TraceID) Subsegment(com.amazonaws.xray.entities.Subsegment) Segment(com.amazonaws.xray.entities.Segment) Test(org.junit.Test)

Example 53 with Subsegment

use of com.amazonaws.xray.entities.Subsegment in project aws-xray-sdk-java by aws.

the class DefaultHttpClient method execute.

@Override
public CloseableHttpResponse execute(HttpHost target, HttpRequest request, HttpContext context) throws IOException, ClientProtocolException {
    Subsegment subsegment = getRecorder().beginSubsegment(target.getHostName());
    try {
        TracedHttpClient.addRequestInformation(subsegment, request, TracedHttpClient.getUrl(target, request));
        CloseableHttpResponse response = super.execute(target, request, context);
        TracedResponseHandler.addResponseInformation(subsegment, response);
        return response;
    } catch (Exception e) {
        subsegment.addException(e);
        throw e;
    } finally {
        getRecorder().endSubsegment();
    }
}
Also used : CloseableHttpResponse(org.apache.http.client.methods.CloseableHttpResponse) Subsegment(com.amazonaws.xray.entities.Subsegment) ClientProtocolException(org.apache.http.client.ClientProtocolException) IOException(java.io.IOException)

Example 54 with Subsegment

use of com.amazonaws.xray.entities.Subsegment in project aws-xray-sdk-java by aws.

the class DefaultHttpClient method execute.

@Override
public CloseableHttpResponse execute(HttpHost target, HttpRequest request) throws IOException, ClientProtocolException {
    Subsegment subsegment = getRecorder().beginSubsegment(target.getHostName());
    try {
        TracedHttpClient.addRequestInformation(subsegment, request, TracedHttpClient.getUrl(target, request));
        CloseableHttpResponse response = super.execute(target, request);
        TracedResponseHandler.addResponseInformation(subsegment, response);
        return response;
    } catch (Exception e) {
        subsegment.addException(e);
        throw e;
    } finally {
        getRecorder().endSubsegment();
    }
}
Also used : CloseableHttpResponse(org.apache.http.client.methods.CloseableHttpResponse) Subsegment(com.amazonaws.xray.entities.Subsegment) ClientProtocolException(org.apache.http.client.ClientProtocolException) IOException(java.io.IOException)

Example 55 with Subsegment

use of com.amazonaws.xray.entities.Subsegment in project aws-xray-sdk-java by aws.

the class DefaultHttpClient method execute.

@Override
public CloseableHttpResponse execute(HttpUriRequest request, HttpContext context) throws IOException, ClientProtocolException {
    Subsegment subsegment = getRecorder().beginSubsegment(TracedHttpClient.determineTarget(request).getHostName());
    try {
        TracedHttpClient.addRequestInformation(subsegment, request, TracedHttpClient.getUrl(request));
        CloseableHttpResponse response = super.execute(request, context);
        TracedResponseHandler.addResponseInformation(subsegment, response);
        return response;
    } catch (Exception e) {
        subsegment.addException(e);
        throw e;
    } finally {
        getRecorder().endSubsegment();
    }
}
Also used : CloseableHttpResponse(org.apache.http.client.methods.CloseableHttpResponse) Subsegment(com.amazonaws.xray.entities.Subsegment) ClientProtocolException(org.apache.http.client.ClientProtocolException) IOException(java.io.IOException)

Aggregations

Subsegment (com.amazonaws.xray.entities.Subsegment)81 Test (org.junit.Test)35 Segment (com.amazonaws.xray.entities.Segment)31 SubsegmentImpl (com.amazonaws.xray.entities.SubsegmentImpl)14 Test (org.junit.jupiter.api.Test)13 PrepareForTest (org.powermock.core.classloader.annotations.PrepareForTest)13 FacadeSegment (com.amazonaws.xray.entities.FacadeSegment)10 SegmentImpl (com.amazonaws.xray.entities.SegmentImpl)10 TraceID (com.amazonaws.xray.entities.TraceID)10 Map (java.util.Map)10 Entity (com.amazonaws.xray.entities.Entity)9 ArgumentMatchers.anyString (org.mockito.ArgumentMatchers.anyString)9 CloseableHttpResponse (org.apache.http.client.methods.CloseableHttpResponse)7 Cause (com.amazonaws.xray.entities.Cause)6 TraceHeader (com.amazonaws.xray.entities.TraceHeader)5 SdkHttpClient (software.amazon.awssdk.http.SdkHttpClient)5 Emitter (com.amazonaws.xray.emitters.Emitter)4 SegmentListener (com.amazonaws.xray.listeners.SegmentListener)4 SdkAsyncHttpClient (software.amazon.awssdk.http.async.SdkAsyncHttpClient)4 LambdaAsyncClient (software.amazon.awssdk.services.lambda.LambdaAsyncClient)4