in sdk/src/Handlers/AwsSdk/Internal/XRayPipelineHandler.cs [437:466]
private void ProcessException(AmazonServiceException ex, Entity subsegment)
{
int statusCode = (int)ex.StatusCode;
var responseAttributes = new Dictionary<string, object>();
if (statusCode >= 400 && statusCode <= 499)
{
_recorder.MarkError();
if (statusCode == 429)
{
_recorder.MarkThrottle();
}
}
else if (statusCode >= 500 && statusCode <= 599)
{
_recorder.MarkFault();
}
responseAttributes["status"] = statusCode;
_recorder.AddHttpInformation("response", responseAttributes);
subsegment.Aws["request_id"] = ex.RequestId;
// AmazonId2 property in AmazonS3Exception corresponds to the x-amz-id-2 Http header
var property = ex.GetType().GetProperty("AmazonId2");
if (property != null)
{
subsegment.Aws["id_2"] = (string)property.GetValue(ex, null);
}
}