in aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/plugins/ECSMetadataFetcher.java [87:118]
private void parseContainerJson(JsonParser parser, Map<ECSContainerMetadata, String> result) throws IOException {
if (!parser.isExpectedStartObjectToken()) {
logger.warn("Container metadata endpoint returned invalid JSON");
return;
}
while (parser.nextToken() != JsonToken.END_OBJECT) {
String value = parser.nextTextValue();
switch (parser.getCurrentName()) {
case "LogDriver":
result.put(ECSContainerMetadata.LOG_DRIVER, value);
break;
case "ContainerARN":
result.put(ECSContainerMetadata.CONTAINER_ARN, value);
break;
case "awslogs-group":
result.put(ECSContainerMetadata.LOG_GROUP_NAME, value);
break;
case "awslogs-region":
result.put(ECSContainerMetadata.LOG_GROUP_REGION, value);
break;
case "LogOptions":
parseContainerJson(parser, result); // Parse the LogOptions object for log fields
break;
default:
parser.skipChildren();
}
if (result.size() == ECSContainerMetadata.values().length) {
return;
}
}
}