Search in sources :

Example 6 with Entity

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

the class TracingHandler method beforeRequest.

@Override
public void beforeRequest(Request<?> request) {
    if (S3_SERVICE_NAME.equals(extractServiceName(request)) && S3_PRESIGN_REQUEST.equals(extractOperationName(request))) {
        return;
    }
    if (isSubsegmentDuplicate(recorder.getCurrentSubsegmentOptional(), request)) {
        return;
    }
    Entity entityContext = request.getHandlerContext(entityKey);
    if (null != entityContext) {
        recorder.setTraceEntity(entityContext);
    }
    Subsegment currentSubsegment = recorder.beginSubsegment(extractServiceName(request));
    if (null == currentSubsegment) {
        return;
    }
    currentSubsegment.putAllAws(extractRequestParameters(request));
    currentSubsegment.putAws(OPERATION_SUBSEGMENT_KEY, extractOperationName(request));
    if (null != accountId) {
        currentSubsegment.putAws(ACCOUNT_ID_SUBSEGMENT_KEY, accountId);
    }
    currentSubsegment.setNamespace(Namespace.AWS.toString());
    if (null != recorder.getCurrentSegment()) {
        TraceHeader header = new TraceHeader(recorder.getCurrentSegment().getTraceId(), recorder.getCurrentSegment().isSampled() ? currentSubsegment.getId() : null, recorder.getCurrentSegment().isSampled() ? SampleDecision.SAMPLED : SampleDecision.NOT_SAMPLED);
        request.addHeader(TraceHeader.HEADER_KEY, header.toString());
    }
}
Also used : Entity(com.amazonaws.xray.entities.Entity) TraceHeader(com.amazonaws.xray.entities.TraceHeader) Subsegment(com.amazonaws.xray.entities.Subsegment)

Aggregations

Entity (com.amazonaws.xray.entities.Entity)6 Subsegment (com.amazonaws.xray.entities.Subsegment)4 Segment (com.amazonaws.xray.entities.Segment)2 SubsegmentImpl (com.amazonaws.xray.entities.SubsegmentImpl)2 Test (org.junit.Test)2 Emitter (com.amazonaws.xray.emitters.Emitter)1 FacadeSegment (com.amazonaws.xray.entities.FacadeSegment)1 SegmentImpl (com.amazonaws.xray.entities.SegmentImpl)1 TraceHeader (com.amazonaws.xray.entities.TraceHeader)1 TraceID (com.amazonaws.xray.entities.TraceID)1 AlreadyEmittedException (com.amazonaws.xray.exceptions.AlreadyEmittedException)1 SubsegmentNotFoundException (com.amazonaws.xray.exceptions.SubsegmentNotFoundException)1 JsonNodeFactory (com.fasterxml.jackson.databind.node.JsonNodeFactory)1 ObjectNode (com.fasterxml.jackson.databind.node.ObjectNode)1 InvocationTargetException (java.lang.reflect.InvocationTargetException)1 Method (java.lang.reflect.Method)1 Parameter (java.lang.reflect.Parameter)1 Arrays (java.util.Arrays)1 List (java.util.List)1 Collectors (java.util.stream.Collectors)1