cancel
Showing results for 
Search instead for 
Did you mean: 
Create Post

Application Performance Monitoring: What is it All About? How Do We Get Started?

Level 10

What Is It All About?

You may or may not have heard of application performance monitoring or APM. You may also have heard the term APM used in the context of application performance management. These two should not be interpreted to be the same. Application performance monitoring is exactly what is in the name: monitoring. It is all about monitoring the health of the application and external constructs. Application performance management is exactly what is in its name: management. Application performance management is all about the awareness and focus of the application. Generally, you will find application performance monitoring as a subset to application performance management tooling, but not in every case.

Are you confused yet?

In this post, we will be discussing APM from the monitoring perspective. Over the next series of posts, we will touch on various aspects of APM, such as what components in the environment we should monitor to ensure a healthy application state, as well as the components of the application that should also be monitored. Ultimately, APM should provide a satisfying user experience. We will also be looking at effective event management, alerting, and dashboards. Also, to keep things in perspective, we will first explore what I would term as “after the fact implementation” of application performance monitoring in a traditional fashion. In a later post we will explore implementing application performance monitoring in an agile fashion.

So, to sum up and answer the question “What is it all about?” it is all about the monitoring of an application's health, which includes various components that can affect the application’s health and performance. At the end of the day, we need a way to identify where the performance degradation is, and how we can swiftly resolve the issue. Having the ability to do this efficiently manner is the ultimate win for everyone. We will also be better prepared for the ultimate question, “Why is my application so slow?”

How Do We Get Started?

One of the most challenging aspects to solve when it comes to APM is “How do we get started?” This question is so challenging due to the fact that we must first identify all of the components that can cause an application to become unhealthy, therefore causing performance degradation. One might think that because it is application-focused that we might only look at the application itself which might only include the server, container, etc. in which the application is running. Only including these items would cause us to overlook the external components such as load balancers, databases, caching layers, hypervisors, container platform, and more. Because of these additional layers, we may actually experience application performance issues not from the application itself, but a result of an external component injecting the issue. So, to effectively identify all of the components, one must completely understand the overall architecture and ensure that each and every component is monitored. Remember, monitoring in this sense is more than just up/down, bandwidth, latency, etc. We must obtain enough information from all of the components and ensure that the data is correlated and aggregated to effectively pinpoint an issue when our applications performance is degraded.

As you can see, there are abundant areas that we should be monitoring which could in turn affect an application's performance. You may also be thinking to yourself that this is the way things have always been done over time. I would be willing to challenge the fact of whether or not they really have been, or better yet, how effective they have been over time.

Now is the time to get started and get a grasp on your true application performance.

16 Comments
Level 13

Good article - looking forward to the rest.

Level 14

Thanks for the write up...looking forward to the rest of the series.

MVP
MVP

Nice write up

I have been struggling with this for years. APM is a sinkhole that lacks a finite solution. "It depends..." is usually the response. There are many variables to consider and much of them require a level of effort to configure. Windows Services, Event Viewer, Messages, Ports, Web Services, and so on. And this isn't a "Set it! And Forget it!" If the app is updated some, if not all, of these can change.

There has been a lot of good information at Thwack Camp on this.  I would suggest reviewing Thwack Camp. 

Level 20

APM isn't easy that much is for sure... it's often more art than just technical.

Definitely tune into the Thwack Camp 2018 videos on this topic (available later today, or on the morning of October 19, 2018)

Level 8

Nicely put!

Level 10

This will definitely be a fun series to put together, and I am looking forward to all of the great discussions.

Level 13

Thanks for the post.  Nice writeup.  APM is an interesting topic.  It obviously offers a lot of promise, but it's also not an easy thing to do.  So many variables, especially if you get into a dev ops type thing like we're seeing now, the developers tend to think that the automated test harnesses will find all the problems and the ci/cd process and microservices guarantee that apps will perform really well (not!). 

Level 10

Peter,

You are absolutely correct. Unfortunately, what you are describing is why SO many end up just giving up.

Level 10

But of course, DevOps and microservices make the world a better place!

Level 14

I'm already doing some of this and want to get the rest sorted.  I use SAM to monitor the server with AppInsight currently monitoring AD and SQL.  I want to use Appinsight for Exchange and ADFS as well but am having issues as we run Solarwinds as SaaS, I don't have access to the back end and we NAT the inbound monitoring IP address.  I use some native VMWare tools to monitor the Hypervisor and use Netwrix Auditor to track who makes changes pretty much everywhere.  I'd like to get SCM (server configuration monitor) up and running too.  I also monitor the F5 load balancer pools.  It's slow progress but I'm getting there.  Appinsight for SQL has been very good at showing our DBAs why they really should get some training.

MVP
MVP

When it comes to application monitoring tooling I find is not the biggest challenge; it is identifying the makeup of the application. What hardware and software, at what level in the n-tier stack do they fit and interact. This can be problematic, where common enterprise applications such as Sharepoint or Exchange can be learnt quite readily by a monitoring engineer, getting an understanding of less common application or indeed in-house developed applications often requires the involvement and dare I say it co-operation of the application SME's to not just implement monitoring coverage, but also to allow that breadth of data to be presented efficiently, alerted on accurately and essentially providing the ability to answer that fundamental question 'why is the application slow?'

Am looking forward to the rest of the series.

MVP
MVP

This is an interesting area. Lot's of monitoring is about a "thing" is it up or down, is it fast or slow. But with Application performance there are a multitude of "pieces" along the way and they all play a part - not only do they play a part, but each of them can affect other elements.

Level 10

Hmmm...  Interesting.  I would recommend attending a few of the Hands On Training sessions at this event.  You can see real usage of APM in a fully deliverable fashion....
Hands-On Training (HOT) Day | Dynatrace

Regards...