diff --git a/plugin/ochttp/trace.go b/plugin/ochttp/trace.go index c23b97fb1..53e71305a 100644 --- a/plugin/ochttp/trace.go +++ b/plugin/ochttp/trace.go @@ -186,6 +186,8 @@ func TraceStatus(httpStatusCode int, statusLine string) trace.Status { code = trace.StatusCodeCancelled case http.StatusBadRequest: code = trace.StatusCodeInvalidArgument + case http.StatusUnprocessableEntity: + code = trace.StatusCodeInvalidArgument case http.StatusGatewayTimeout: code = trace.StatusCodeDeadlineExceeded case http.StatusNotFound: diff --git a/plugin/ochttp/trace_test.go b/plugin/ochttp/trace_test.go index 13ef30cab..e1d13d155 100644 --- a/plugin/ochttp/trace_test.go +++ b/plugin/ochttp/trace_test.go @@ -668,6 +668,9 @@ func TestStatusUnitTest(t *testing.T) { {204, trace.Status{Code: trace.StatusCodeOK, Message: `OK`}}, {100, trace.Status{Code: trace.StatusCodeUnknown, Message: `UNKNOWN`}}, {500, trace.Status{Code: trace.StatusCodeUnknown, Message: `UNKNOWN`}}, + {400, trace.Status{Code: trace.StatusCodeInvalidArgument, Message: `INVALID_ARGUMENT`}}, + {422, trace.Status{Code: trace.StatusCodeInvalidArgument, Message: `INVALID_ARGUMENT`}}, + {499, trace.Status{Code: trace.StatusCodeCancelled, Message: `CANCELLED`}}, {404, trace.Status{Code: trace.StatusCodeNotFound, Message: `NOT_FOUND`}}, {600, trace.Status{Code: trace.StatusCodeUnknown, Message: `UNKNOWN`}}, {401, trace.Status{Code: trace.StatusCodeUnauthenticated, Message: `UNAUTHENTICATED`}},