Introducing Auto Tracepoints

Ben

June 29, 2021

At NerdVision we have been developing a service that allows you to debug any application whenever you need to in any environment. We have been pushing the boundaries of debugging allowing never before available approaches to gaining that much needed insight. With all these improvements one thing has remained the same. It always requires the user to interact and debug the application. Not any more!


With our latest release of the Python and Node.js agents (Java to follow soon) we are introducing the ability to automatically debug your application! 

How does it work?

This new approach to debugging means that we are able to automatically gather data about the errors that are happening in your applications, without you being there. We are able to do this by instrumenting your code to report errors to NerdVision. 


Once we receive an error we are able to process this to create a configured tracepoint. That will be installed where the error has occurred and will capture data the next time this line of code is triggered. The data that is gathered is customised to the type of error being processed, so we are better able to augment your logs and capture and analyse the variable data.

Sampling Rates

To ensure that we do not cause any impact to your service we have added flow control to the tracepoints that are created to ensure we capture a good cross section of the data. These sampling rates are configured automatically and can vary depending on the frequency of the error and if we have seen this error before.

Error Capture

To ensure that we get the full scope of the data and the error that is happening, we have also added the ability to capture the error from a line of code. This means that if we install a tracepoint on a line (say calculator.py line 24) and this line of code causes an exception (DivideByZero for example). Then the tracepoint will capture the data before the line of code is executed and the error that was caused by the execution of that line.


By capturing the data before the code is executed we are able to show you the data as it was when the error occurred. Compared to others that only show you the data after the error has happened!

How does it affect you?

At NerdVision we want to reduce the time that it takes you to solve your problems, and we want to reduce the time you spend debugging. This is our next step in that journey as we strive to automate the debugging process. With this step you no longer need to: clone the repository, set up a project in your IDE, find the code where the error is occurring or attempt to connect your IDE to the environment. With NerdVision you are simply able to see the data immediately as soon as an error is reported.

What is next?

We want to continue this journey to reduce the amount of time you spend debugging by adding higher forms of data aggregation. Adding more complex forms of AI/ML so that we are able to trace errors back through the code to find the source for you.

For more information on how to get started please check out our documentation and the autonomous debugging feature page


Ben

Ben

Experienced developer in various languages, currently a product owner of nerd.vision leading the back end architecture.