Error Reporting¶
NerdVision now supports reporting exceptions to allow for automatically capturing snapshots. To configure this you need to instrument your application with a call to the NerdVision API.
Currently, supported are:
How it works?¶
Similar to other tools, all that is needed is for the exception to be reported to NerdVision so that we are able to process the error. Unlike other tools our focus is not on the error itself, we simply use this as a trigger.
Once we receive an error we will process the available data, we then generate a tracepoint that will target this error and capture the context the next time the code is executed. This means that we can show you the data as it was before the error has happened. This gives you a unique insight into what the data looks like before the error happens. We are also able to capture specific data for the errors, allowing you to focus on the errors cause.
Auto instrumentation¶
To reduce the need for specific user instrumentation we also provide a few auto instrumentation methods. If you already have a supported tool installed then review the docs for further details.
- Datadog APM - (Python)
- Sentry - (Node.js / Python / Java)
Support Matrix
Not all tools are supported on all platforms
Do not see the tool you use? Let us know on Trello.
Sampling Rates¶
To ensure that we don't overload either side of the service, we have implemented smart rate limiting that tries to capture samples of the data rather than all of the data. This way we can ensure the performance of your services and provide the best quality of service.
Error Capture¶
When a tracepoint is configured from an error report, the resulting snapshot will contain the error if it was triggered. As we are installing the tracepoint in the code before the error, we are able to provide a picture of both the good and error state of the data. To do this we will also try to capture the error that is thrown by the line that the tracepoint is installed on. So it is possible to see the data before the error, and the exact error that it caused.
Further reading¶
This is a complex topic to discuss in one place here are some articles that explain how this system works: