Make httpgrpc.Server return 4xx errors #455
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What this PR does:
Currently,
httpgrpc
'sServer.Handle()
returns an error only if a response received from the HTTP server contains a5xx
HTTP status code. Responses with any other HTTP status code (e.g.,4xx
) are converted to non-erroneousHTTPResponse
objects. As a consequence, the correlatedstatus_code
labels in the request duration metrics issuccess
.This PR allows
Server.Handle()
to return errors even in case of a4xx
HTTP status code. Namely, the presence of a header with keyhttpgrpc.Return4XXErrorsKey
and any value in a response received from HTTP server indicates toServer.Handle()
to convert that response to an error. This way the correlatedstatus_code
labels in the request duration metrics will be4xx
.Which issue(s) this PR fixes:
Part of grafana/mimir#1830
Checklist
CHANGELOG.md
updated - the order of entries should be[CHANGE]
,[FEATURE]
,[ENHANCEMENT]
,[BUGFIX]