feat: Add tower integration #356
Merged
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.
This MR adds a new
sentry-tower
subcrate which provides tower layers intended to bind Sentry hub to each request. This avoids mixing up breadcrumbs in each sentry event, to only keep those in the logical path that led to the captured event. It is best used in conjunction withsentry-log
orsentry-tracing
to automatically collect logs to breadcrumbs.It provides a ready to use
NewSentryLayer
, that creates a new hub from the currently active one and binds it for the duration of the service handler. It is based upon theSentryLayer
which is much more flexible, as it can take a hub directly or a closure producing hub. See thelib.rs
and test for usage example.Note that this could be expanded to automatically capture errors returned by the service, should it fail, though more design thought should be put into it.