[ARTICLE]

What is APM and When Do You Need it?

Application Performance Management (APM), do you need it? In this post, we go over the basics of what it is and why you might want to use it. A good place to start is the possible confusion over the meaning of APM. I start this very paragraph by telling you that the “M” means management. Some will argue that is Application Performance Monitoring. There is a close tie between monitoring and management, but, as they are not identical. Let’s clear this up now.

What does APM mean? Monitoring versus management

Monitoring is how we get an understanding of how an application works. We do this through gathering data about system performance and storing or presenting the results. In some cases, alerts might be configured to notify about significant events. Management applies the results of that monitoring to improve the system. The management side of things could be to manually restart the system or change configurations. Power users automate processes like this so that a low memory alert, for example, could trigger the appropriate change to the system’s configuration to manage this.

What is APM?

Now we’ve cleared up the possible confusion over the acronym. However, there still remains a fair bit of confusion about the term itself. Gartner produced a functional AP Monitoring definition in their Information Technology Glossary:

“Application performance monitoring (APM) is a suite of monitoring software comprising digital experience monitoring (DEM), application discovery, tracing and diagnostics, and purpose-built artificial intelligence for IT operations.”

Opsani is an example that provides the AI part of the solution. It also provides integration of monitoring and configuration tools to provide application performance management.

Now that you have a sense of what APM might look like, let’s consider what the pieces of APM are:

Digital experience monitoring –

This may also be called end-user or real user experience monitoring. It provides information about any issues with errors or response times that the user will run into when trying to access the application on their device. 

Application discovery modeling

Nowadays, this is typically presented by a GUI. The GUI represents the components of an application or even interactions between microservice applications needed to provide the expected business value. To function efficiently, an APM tool should have the intelligence to discover and display not only the initial architecture, but also detect and update the representation. This is if there are changes in the environment. 

User-defined business transaction profiling

This puts the above architectural model to work. Here, a user starts a business transaction (BT). This is done by interacting with your website, as an example, by entering a search term for an item in your inventory catalog. This “search” may check that the user is appropriately authenticated and then query the database. All of which may be mediated via a message queue. Before finally displaying a result on a webpage. All of this process comprises a single BT and all of the component steps can be monitored.

Application component monitoring –

A deeper level of monitoring optimizes or troubleshoots your application performance. It digs into how the parts are actually functioning. How this is configured will vary by application and component. A server might be monitored to understand CPU or memory utilization, network services for latency, and a database for procedure executions. The fine-grained level of detail available through component monitoring can help identify ways to improve performance or help troubleshoot issues. Below you can see an example of server CPU and memory settings for an application’s front end and back end service that Opsani’s AI is optimizing.

Application Performance Analytics

This may warrant its own blog post. But for the purpose of APM this should provide actionable insights about your application’s performance. This will include the start baseline to compare against. Second, while some APM solutions just make the raw data a bit easier to view and understand, a good APM package should analyze (analytics, right?) the data and provide some form of problem and optimal function identification. 

Artificial intelligence for APM

 The inclusion by Gartner of AI in their APM definition surprised me at first. But in a DevOps world where we want to “Automate all the Things,” this actually makes a lot of sense.  Given the large numbers of variables and quantity of data that an APM system can comprise, and AI is a sensible choice to process and present monitoring data. The use of AI can further take you from AP monitoring to AP management as an AI can find optimal configurations to either fix or improve your application performance.  

Do you want an APM now?

The use of APM is a logical choice for anyone that is managing the underlying infrastructure that supports running applications. It helps not only with troubleshooting when things go wrong, but can also identify possible routes to improve application performance.  As a developer, APM can also be a boon to your efforts at troubleshooting and optimizing an application. If your company is one of the growing numbers of DevOps/SRE shops, then the similar troubleshooting and optimization functionality fits well into an iterative and collaborative workflow. It is hard to think of a good reason not to use an APM, if it is an option for you. The insight into application performance, how the application is actually working, allows quicker fixes and faster improvements to performance. All of which equals faster time to value for businesses and customers.  

What is an easy way to get started with APM?

If this introduction to APM has you excited about the idea and you want to try it, Opsani has a free trial of their AI-powered optimization engine for containerized applications on Kubernetes. Opsani integrates with a number of monitoring solutions to provide both an application optimization tool that, while providing application cost and performance monitoring, continually seeks improved configurations and can update the environment to achieve new optima. To give automated application performance management a spin, get your free trial here.