fix(metrics): add validation/formatting before sending errors to BugSnag #5455
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.
Summary
Fixes #5398
This is my first time working with this repo, so let me know if I've missed anything☺️
For a while, errors coming from the GitHub API have been in a format not accepted by BugSnag. These appear in the BugSnag dashboard all grouped into a generic
notify() received a non-error
error. The volume of these is causing issues when looking for actual new errors!This PR runs the error through some formatting/validation logic. If it already fits one of the expected
NotifiableError
shapes, we let it through. Non-recognised formats are tweaked to ensure they actually return anError
.For reference, a valid
NotifiableError
should match:The objects returned from a GitHub API error are in the unexpected format:
In this case, we throw an error using the
message
, then append thedocumentation_url
to the event as additional metadata so it's not lost.Whilst this change won't reduce the volume of errors reported, we'll be able to triage the variations individually (and likely set them back to "handled" like we had done in the past).
For us to review and ship your PR efficiently, please perform the following steps:
we can discuss the changes and get feedback from everyone that should be involved. If you`re fixing a typo or
something that`s on fire 🔥 (e.g. incident related), you can skip this step.
your code follows our style guide and passes our tests.
A picture of a cute animal (not mandatory, but encouraged)