This blog is about creating an app called Log Eagle that monitors different kinds of web services and catches errors in production.
There are already several monitoring services. But the goal of this app is to create a highly scalable and flexible service that is easy to deploy. The backend is written in Go, which is a powerful tool for these types of applications. And the frontend is written in React.
To get started, there needs to be at least one service. A service can be anything like an Express server, a mobile app, or your frontend. All such services belong to an organization. Admins of that organization can invite and remove additional users to their organization. There are also adapters, that can be installed on the service to automatically catch and report errors. It also gives you the flexibility to write your own adapter and error reporting logic in whatever language you prefer.
When selecting a service, it shows all the errors that were reported by that particular service with a couple of details. Each service has a so-called ticket, which is used to assign the reported event to the service.
You can click on an error for further insights. It is also possible to add custom information to the event, which can be handy if you, for example, run your service in different clusters and want to add the name of the cluster to the event.
It will also give you detailed information when and how often the error was reported.
Besides the raw stack trace, it will show clearly where the error occurred. Furthermore, you will be able to see previous console logs and information about the adapter.
If you want to check it out, you can create your own organization on a demo instance deployed here and give it a try. Currently, there is a NodeJS adapter available. In the repositories, you will find information on how to create an adapter in any other language or host the service yourself.