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());
}
}
Aggregations