diff --git a/exporter/awsxrayexporter/internal/translator/cause.go b/exporter/awsxrayexporter/internal/translator/cause.go index b5d477a0e282..1e99edd6a4ec 100644 --- a/exporter/awsxrayexporter/internal/translator/cause.go +++ b/exporter/awsxrayexporter/internal/translator/cause.go @@ -120,39 +120,29 @@ func makeCause(span ptrace.Span, attributes map[string]pcommon.Value, resource p val, ok := span.Attributes().Get(conventions.AttributeHTTPStatusCode) - switch { // The segment status for http spans will be based on their http.statuscode as we found some http // spans does not fill with status.Code() but always filled with http.statuscode - case ok: - code := val.Int() - // We only differentiate between faults (server errors) and errors (client errors) for HTTP spans. - switch { - case code >= 400 && code <= 499: - isError = true - isFault = false - if code == 429 { - isThrottle = true - } - case code >= 500 && code <= 599: - isError = false - isThrottle = false - isFault = true - case status.Code() == ptrace.StatusCodeError: - isError = false - isThrottle = false + var code int64 + if ok { + code = val.Int() + } + + // Default values + isThrottle = false + isError = false + isFault = false + + switch { + case !ok || code < 400 || code > 599: + if status.Code() == ptrace.StatusCodeError { isFault = true - default: - isError = false - isThrottle = false - isFault = false } - case status.Code() != ptrace.StatusCodeError: - isError = false - isThrottle = false - isFault = false - default: - isError = false - isThrottle = false + case code >= 400 && code <= 499: + isError = true + if code == 429 { + isThrottle = true + } + case code >= 500 && code <= 599: isFault = true }