How Code Execution Monitoring Can Help You Identify Bugs and Bottlenecks in Your Application Before Your Customers Do
Hello, I am Valerio, software engineer, CTO and founder of Inspector, a monitoring platform used by developers in over ten countries. In this article, I would share my experience working in the surveillance industry trying to help you better understand:
- What is the right tool for each specific monitoring problem;
- When, or in what situations, monitoring can be effective and worth the investment;
- Why you need to watch some parts of your system and not others, depending on your stage of growth.
The time when many developers discover the need to monitor their applications often coincides with the time when they start working on a mid / large sized project.
The reason is simple: when your software becomes complex or serves high-value customers, software bugs become costly; doubly when your customers find them! Customers may find you unreliable and look for alternatives.
Solving critical customer issues can certainly generate great business opportunities, but the more critical the problem, the more prepared you need to be to meet very high customer expectations.
Monitoring is the way for developers to avoid unexpected incidents and keep customers or contracts as long as possible, which means stable revenue for your business over time.
Today, it might not be that easy to navigate the world of surveillance, probably because so much different data can be used in so many different ways.
Here is what I learned during my journey.
What are the monitoring tools?
Monitoring tools generally consist of two parts: the agent and the analysis platform.
Agent is a software package that developers install on their server or application. Its objective is to collect relevant information on the behavior and performance of applications.
The data is sent to the remote platform which analyzes this data and generates visual graphics to help developers easily understand what is going on in their system. The platform should be able to send alerts to developers when something goes wrong in a convenient way.
This is obviously a simplistic description that could cover many tools. If you search Google for monitoring solutions, you will find tons of tools. Many of them look (or are sold as) app monitoring tools, but they have nothing to do with app monitoring. These similarities can make it difficult to determine which was the right tool based on your specific monitoring needs.
Let’s take a look at the most popular tool categories.
Log management tools
A logs management tool is often the first type of approach for tool developers looking for a monitoring solution for the first time, because since the birth of software development, monitoring of application logs has been the focus. ‘one of the dominant habits of developers to be informed of what is going on inside the application.
It was the same for me, but when the app started to evolve (it runs on multiple servers, requires complex architecture, high performance becomes crucial, etc.) I realized that it was very difficult to extract relevant information from logs and monitor the impact of code evolves over time in terms of stability and resource consumption.
When the carriage was invented, people first asked for a faster horse because horses were what they knew. Then they realized that a completely different tool was needed to level up.
Availability monitoring tools
Availability monitoring tools can be described as more sophisticated “ping”.
The main goal is simple – they ping your app endpoints from multiple regions to understand how far (or not) it can be reached by users located in different parts of the world.
These metrics help understand how the cloud infrastructure works to bring your application to end users (load balancer, CDN, network, etc.) and know when some of those systems are causing issues. It doesn’t provide any information about what’s going on inside your app.
In my case, my app serves users all over the world, so external ping information helped us understand which regions suffer the highest latency by making decisions on which regions we should place more resources to improve. our customer experience.
The downside is that they monitor the external environment. If your app slows down, you’ll never know why.
Error tracking tools
These tools work as an exception trap and allow you to receive alerts when an error occurs while running the application.
In many cases, exceptions are too basic information to avoid system downtime. There is no feedback on performance, system load, processor, memory, etc.
Also, you don’t know if your app is in trouble until it explicitly fails. And we would like to try to prevent customers from finding any mistakes.
But as a more comprehensive follow-up approaches, it doesn’t seem so easy.
All-in-one application monitoring platforms
Popular application monitoring platforms such as Datadog, Dynatrace, NewRelic, AppDynamics and others provide log storage, server metrics, uptime metrics, infrastructure information, application metrics , collecting unstructured events, etc.
I think it’s reasonable to believe they’re targeted for business class scenarios.
They require a lot of support and training or even a dedicated engineering team for setup and maintenance, and tend to be too complex and expensive for small to medium-sized teams.
In addition, they must be installed and configured at the server level.
Whether you use infrastructure automation tools or even have external teams to take care of it, everything that is configured at the server level is outside of the software development lifecycle and developers tend to lose their autonomy.
This can lead to constant email exchanges between teams to adjust configurations, customizations, and in the end, software developers almost always have the worst because they have no control over everything that resides in the infrastructure. .
Code execution monitoring tools
Code execution monitoring tools focus on the most important thing for every developer: code execution.
Have you ever thought about watching your code execute instead of just imagining it?
This is what a code execution monitoring tool is designed for.
This class of tools collects relevant information about application performance, errors, and trends and gives you a visual representation of what your application is doing during normal operation.
The idea behind a code execution monitoring tool is to create a specially designed “code-controlled” monitoring environment for software developers by avoiding any server or infrastructure configuration that many developers hate to manage. .
I am one of those developers who prefer not to complicate their life with infrastructure management. Managing IT infrastructure is a profession in its own right. It requires a lot of vertical skills on server environments, cybersecurity, scalability and involves complex technologies (like Kubernetes).
As a software developer, I have long looked for completely “code-driven” code monitoring systems, to remain as independent as possible from infrastructures, whether they are managed with automation platforms or even under control. teams outside my company.
For several months, I shared our idea of Inspector as a tool for monitoring code execution by giving talks at Italian PHP community events and chatting with other CTOs. On this page, I’ve collected reviews from developers who have tried Inspector: https://www.inspector.dev/testimonials
With code execution monitoring, you can make sure your app is running smoothly, make sure that you still have a good customer experience even when you make changes to it with a simple lightweight Laravel package that you can install in your application like any other dependency.
Don’t be fooled by my words, try it for free
To allow anyone interested to try this new solution, we offer a completely free level, up to 30,000 monthly transactions. This is not a limited trial. You and your team can familiarize yourself with the Inspector without a deadline.
Hope you enjoy the Inspector’s experience.
We have also created a referral link for this specific post. By using this link you will get an additional 50,000 free monthly transactions as a reward for being a LaravelNews reader – Register your account – so you can start your account with 80,000 monthly transactions included for free.
Or visit our website for more details: https://inspector.dev/laravel/