Hey tech Indie Hackers,
Whatever your application stack is, you will benefit from better observability of your backend system. Setting up tracing is probably one of the easiest ways of doing just that.
Tracing, to define broadly, is recording information about a program's execution. If we're talking about a backend app, it makes sense to group the data about serving one request.
Let me walk you through a couple of main benefits I found while various tracing systems.
Let's face it: you're going to have errors in production. As an Indie Hacker, it's critical that you're the first one to know when it happens. It takes a really interested user to report an error. Most will just leave silently. It's up to you to catch and fix bugs.
Luckily, most of the tracing systems will alert you about the errors in your system. Either by an email or a chatbot.
It's one thing to see an error message; it's another thing to fix it. Some errors are obvious, and you immediately know how to fix them. Let's talk about the other bunch. The ones that are hard to reproduce.
Tracing systems usually record the request and response payloads. If it's a good system, it will also record database queries and their results. Maybe even timings of individual function calls. A good tracing system makes it easier to reproduce and ultimately fix hard-to-reproduce bugs.
As an Indie Hacker you don't want to spend too much time building something that might not get used at all. Sometimes you will rush and cut a corner or two, and that's okay.
Sooner or later, something will become painfully slow. A tracing system will help you see it. It will also save you from frantically plugging in the instrumentation code because it will already be there. By showing you a nice timeline, a tracing system will save you a ton of time that you can spend creating stuff.
A good tracing system is easy to start with. Integration with popular frameworks usually requires no or almost no code changes, and most of the systems are provided as a service, so you don't need to manage servers.
Having used a lot of the systems, I found that there is no good open-source system. When you're working with sensitive data, having an open-source system hosted on our own server is crucial. We also found that the integration process is sometimes too cumbersome, and systems do have bugs. It's not easy to fix a bug in an open-source project, but it's impossible with proprietary software.
That's why my friend and I started working on an open-source tracing system called Recap.Dev in our spare time. Since it's a side-project, we don't aim to cover all the technologies there are. Instead, we focused on providing an excellent experience for the Node.js-based technologies.
What are your favorite monitoring tools?