in aws-xray-recorder-sdk-aws-sdk-v2/src/main/java/com/amazonaws/xray/interceptors/TracingInterceptor.java [143:186]
private HashMap<String, Object> extractRequestParameters(
Context.BeforeExecution context, ExecutionAttributes executionAttributes) {
HashMap<String, Object> parameters = new HashMap<>();
AWSOperationHandler operationHandler = getOperationHandler(executionAttributes);
if (operationHandler == null) {
return parameters;
}
if (operationHandler.getRequestParameters() != null) {
operationHandler.getRequestParameters().forEach((parameterName) -> {
SdkRequest request = context.request();
Optional<Object> parameterValue = request.getValueForField(parameterName, Object.class);
if (parameterValue.isPresent()) {
parameters.put(normalizeParameterName(
SNAKE_CASE_NAMING_STRATEGY.translate(parameterName)), parameterValue.get());
}
});
}
if (operationHandler.getRequestDescriptors() != null) {
operationHandler.getRequestDescriptors().forEach((key, descriptor) -> {
if (descriptor.isMap() && descriptor.shouldGetKeys()) {
SdkRequest request = context.request();
Optional<Map> parameterValue = request.getValueForField(key, Map.class);
if (parameterValue.isPresent()) {
String renameTo = descriptor.getRenameTo() != null ? descriptor.getRenameTo() : key;
parameters.put(normalizeParameterName(
SNAKE_CASE_NAMING_STRATEGY.translate(renameTo)), parameterValue.get().keySet());
}
} else if (descriptor.isList() && descriptor.shouldGetCount()) {
SdkRequest request = context.request();
Optional<List> parameterValue = request.getValueForField(key, List.class);
if (parameterValue.isPresent()) {
String renameTo = descriptor.getRenameTo() != null ? descriptor.getRenameTo() : key;
parameters.put(normalizeParameterName(
SNAKE_CASE_NAMING_STRATEGY.translate(renameTo)), parameterValue.get().size());
}
}
});
}
return parameters;
}