Error Reporting & Application Monitoring

Our colleague Robert describes the advantages of automated error reporting and monitoring in complex software systems.

Does one need to monitor their application and report errors?

If you have a website, app, or software with a user system, shopping system, or similar features, it might be a good idea.

In the best of worlds, one manages to find all the flaws in their software before they manifest as a bug, or worse, a crash.
Unfortunately, it's not a realistic goal and a healthy attitude is to expect that things will go wrong sooner or later.

But how does one find that out? A simple solution might be to provide a prompt and a form for users to assist by reporting when something goes wrong.

But even this measure does not make the ship watertight. For many users, the threshold to report errors is usually higher than choosing another service. The few reports one receives also often have very low informational value, which makes troubleshooting and rectification more difficult and expensive. This is because it takes time and knowledge to write an informative report.

Software today is a complicated puzzle that only grows and becomes more intricate. This is where the use of a monitoring service, such as Sentry or Datadog, comes into play. It's automated, cost-effective, and non-intrusive for the user.

How does application monitoring and error handling work?

When an error occurs in software, it usually "throws" a so-called exception or an event (Exception) to notify the system running the software that something has gone wrong.

This exception can be "caught" and handled. Usually, the exception contains information on how to handle it or at least what went wrong and where.
However, there are times when nothing can be done about the error except to update the software or when the exception is missed (uncaught exception).

If the error is not caught and the user does not report it, that is usually where the story ends... unless error reporting has been set up in the software.

Error reporting services, such as Sentry, capture all these "uncaught exceptions" and automatically send an error report to the user, in the background.

As a developer, one can also manually catch errors and submit error reports to gain more precision and/or information when investigating issues.

STC

Sentry and Datadog handle error management and application monitoring for the services we operate for STC.

If an unusually high number of errors occur in a short period of time, both the STC and the development team are alerted.

Read more about the case

Bug reports, breadcrumbs, and more

When a bug report is submitted to a monitoring service, it contains, in addition to what went wrong and where, also other necessary information such as the software version the user is running, the operating system, the hardware, and much more.

Not only that, in every report, services send something called breadcrumbs. It's like a trail one can follow to see how the user interacted with the software just before the error occurred. These breadcrumbs are automatically generated by various events that the service deems important. It is also possible to manually create breadcrumbs with customized information.

If more information is needed then? Of course, it is possible to include attachments in the error report. This can be very useful, for example, to send the condition (state) of the software so that one can recreate the situation that the user encountered.

Nordish

We have set up error reporting with the help of Datadog to quickly take action when Nordish's customers can no longer place orders.

Read more about the case

Can I use this even if my software handles sensitive data?

Indeed, Sentry and Datadog have built-in functionality to "sanitize" information before it is sent from the user. They detect and remove sensitive information resembling social security numbers, phone numbers, email addresses, and the like.
It is also possible to manually sanitize specific data. In this way, one can ensure that error reports sent do not contain anything inappropriate.

Insights

With error reporting, one receives all the information needed to identify and prevent deficiencies. But it's not just bugs and crashes that affect the user experience. Performance is also an important aspect. This is something that Sentry and Datadog can also assist with as they have the ability to measure performance in different parts of the software.

Using a bug reporting service in one's software creates new insights and conclusions about how the software functions, feels, and even performs.

Photo of Robert Karlsson

Robert Karlsson

Senior Frontend Developer