So you have a legacy application with quite some technical debt? But you’ve started turning the ship around and the situation is improving, right? If you’re planning on increasing the release cadence, you’d better start monitoring your application.
What Is Monitoring?
Monitoring is the practice of setting up an automated system that keeps an eye on the health of your application. This ranges from error rates over response codes (for web applications) to performance metrics. Basically any metric that can be measured and is relevant for you.
Why Should I Monitor?
Software is complicated and you can add as many automated tests as you like, there’s always a possibility of something going wrong.
With monitoring, you have a system that constantly looks out for problems with your application. And if you add alerting to the mix, you can be notified of the issue.
This means you no longer need to look into the logs manually and possibly, that you can investigate and fix an issue before your customers create a support ticket.
What Should I Monitor?
Monitoring legacy applications isn’t always easy. The system was probably not built with monitoring in mind. Most cloud platforms (AWS, Azure, etc.) have easy ways of adding monitoring. But legacy applications might be a bit more tricky.
A good starting to point is to start logging the inputs and outputs of your application if you don’t already do so. If you do, talk to the team about structured logging, this will make monitoring easier.
Once you have that, you can start monitoring certain patterns. For example, in a web application you might want to monitor responses with status codes that point to errors (the 5xx range).
Then add an alerting system so that your team is notified.
The team will soon start identifying other possibilities of monitoring and alerting. It will help them make the system more robust and gain more confidence when releasing.
Which Tool Should I Use?
The answer to this question really depends on the entire technology stack you’re using: from programming language over frameworks to the machines the application is running on.
If you want, contact me and we can have a no-strings-attached call about this to exchange ideas.
Monitoring Legacy Applications Is Important
There’s no question that almost all applications should be monitored in some way. The development team needs to know about bugs and issues as soon as possible.
This is even more the case with legacy applications. These applications often suffer from bad performance or bugs after every release. Monitoring is an important technique to keep an eye on such an application and improve the situation over time.