in aws-xray-agent/src/main/java/com/amazonaws/xray/agent/runtime/handlers/downstream/AWSV2Handler.java [62:85]
public void handleRequest(Event event) {
AwsServiceDownstreamRequestEvent requestEvent = (AwsServiceDownstreamRequestEvent) event;
String serviceName = requestEvent.getService();
String operationName = requestEvent.getOperation();
String region = requestEvent.getRegion();
// Avoid throwing if name isn't present. HTTP interceptor will pick this up instead
if (serviceName == null) {
return;
}
// Begin subsegment
Subsegment subsegment = beginSubsegment(serviceName);
subsegment.setNamespace(Namespace.AWS.toString());
subsegment.putAws(EntityDataKeys.AWS.OPERATION_KEY, operationName);
subsegment.putAws(EntityDataKeys.AWS.REGION_KEY, region);
// Trace propagation
TraceHeader traceHeader = buildTraceHeader(subsegment);
requestEvent.replaceHeader(TraceHeader.HEADER_KEY, traceHeader.toString());
Map<String, Object> parameterMap = extractRequestParameters(requestEvent);
subsegment.putAllAws(parameterMap);
}