Split LogRequests
middleware into multiple middlewares
#3898
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.
The
LogRequests
middleware is currently performing multiple tasks:req.path()
before theNormalizePath
middleware potentially mutates the request pathx-request-start
HTTP header from Heroku (or theStartInstant
extension as a fallback)The Sentry error reporting was originally built into the
LogRequests
middleware because it also needed access to the original path and the response timing.This PR proposes to split the
LogRequests
middleware, so that each middlewares is performing only one of the functions respectively:NormalizePath
middleware that is responsible for mutating the path in the first placeRequestTiming
middleware, which saves the response time in the request extension mapSentryMiddleware