Our latest news
The most common thing in most companies is to have basic monitoring, where only the availability of our systems is known. We know exactly if the server is down or not, the use of CPU, memory or disk, if there is any internal process down, etc… Do you think that is enough? There are many cases that cannot be evaluated with a monitoring that only considers the availability. We can have a server where an application is running, where we are noticing that the server is up, the application is up, and that, however, the users cannot access the application, there are errors in a very specific area, or just the performance of the application is very low…
Logically, it is imperative that an application (and any infrastructure that supports it) is available, but the performance of that application is just as important. Users, whether they are internal users or customers, need to operate under appropriate conditions, with adequate response times, without errors.
Since is necessary to include the performance as one of the objectives of any department or group dedicated to monitoring, the following aspects come to mind when monitoring our infrastructure:
In order to achieve this, we must dispose of an adequate solution that allows us to know exactly of our application behavior. There are 3 main layers to be considered when monitoring our applications:
- User experience.
- Application server performance and request execution details.
- Infrastructure performance.
The traditional solutions of monitoring (either free software or payed ones) tend to stay in the infrastructure layer, as we see it’s not enough.
Regarding the end-user experience, there are two alternatives:
- Synthetic transactions, where a robot is programmed to execute certain operations that simulate the work of a user occasionally.
- Real End-User Experience, capturing the actual usage that users make of our applications.
In another post on our blog we will talk about the difference between synthetic transactions and the real end-user experience. In this blog, we will simply stay with the fact that they are not exclusive, as both have important benefits that can be useful to cover our needs.
Going back to our topic, we should mention that in order to include the knowledge of the upper layers mentioned above (user experience and application requests/servers) there are APM (Application Performance Monitoring) solutions, which will allow us to cover that gap. APM solutions allow us to know exactly the experience our users are having when using our applications. We can know the response time of the pages they browse, some APM solutions even allow you to replay the client’s navigation, we can disaggregate the navigation time, knowing the page rendering time in the user’s computer, the network latency and the processing time in the Datacenter. In this last point, they allow us to go down to the application server level, knowing the detail of the executed requests, including the slowest methods, classes or SQL sentences that cause the performance deterioration of our applications.
It is very easy to introduce this type of solution into our ecosystem. There are solutions that cover all three parts mentioned (end user, applications and infrastructure), but in case you already have any of them covered, it is not necessary to replace them. Integration is possible.