Application Performance Monitoring

Hira Ahmed
Nvisible
Published in
3 min readOct 31, 2018

Application performance monitoring is a continuous process or strategy of monitoring and measuring the performance of business applications. Measuring of performance can be in terms of business applications response time, availability, connectivity and end user experience as they access the applications. APM provides an insight for resolution of issues, application code optimization and high quality end user experience.

In today’s world of IT and IoT, speed is everything especially for those applications and websites which are accessed by the end users. If a website or application loads slowly or experiences errors in loading a page, it will directly impact the business productivity, reputation of the company and due to low quality user experience, the customer might end up switching to other applications.

APM is not a new thing as it was mainly used during application development process. The traditional techniques for performance monitoring includes executing ping tests on application and measuring the server’s side metrics (CPU, Memory, and Disk). However, the traditional techniques are not enough to resolve the bottlenecks in today’s distributed application environment, so the monitoring of application performance is evolved from just monitoring the business transactions and hardware resources to optimizing the application code and distributed hardware infrastructure monitoring.

Nowadays, performance monitoring is being done in both application development process and deployed applications. Primarily, two techniques are followed for performance monitoring; synthetic monitoring and real user monitoring (RUM). Here is a brief explanation of the working principle of each technique;

In synthetic monitoring, a website is visited periodically and performance is recorded for each run. But, the traffic on a website is synthetically generated rather than a real user’s traffic. This is more or less a proactive approach and is also known as active web monitoring. On the other hand, real user monitoring is a passive form of web monitoring in which a service is running in the background that continually observes the application’s performance in terms of availability, functionality and responsiveness. Application performance measures are collected directly from the end user’s browser. Nonetheless, both techniques have some pros and cons which we will be discussing in another blog.

APM tools monitor and measure the availability and performance of business applications in three main aspects;

  • End user experience monitoring
  • Application infrastructure performance monitoring
  • Code profiling

Let’s discuss them briefly.

End user experience monitoring

APM uses two different approaches to monitor and track the end user experience of business applications and find out the time when a user experiences slow response time, errors while loading a page and downtime. It is done either with real-time monitoring of web applications in order to track and resolve the issues experienced by the end user in real time and reported by them. Another approach is to synthetically simulate the end user experience and proactively resolve the issues before the end user reports them.

Application infrastructure performance monitoring

Application performance also depends on the infrastructure on which the application is deployed on. The network connectivity, processing, memory, storage and virtualization issues of an infrastructure can cause serious application performance concerns. So, monitoring and optimizing underlying infrastructure plays a vital role in application performance and up to some extent it is integrated in APM solution.

Aspects like user experience, business transactions and infrastructure health in terms of application performance are correlated and one cannot neglect any single aspect. A hybrid strategy i-e (application performance monitoring integrated with network performance monitoring) should be implemented in order to streamline the troubleshooting and optimization process to achieve high performance of applications.

Code profiling

When a business application experience slow user transactions, the application developer needs to identify if there is any issue at the application code. Code profiling is a method which enables developer to get the insight of method-level processing time and to locate the exact line of code or function call that is taking high processing time.

--

--