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

Application Performance Monitoring: Benefits and Examples

Level 10

This is part three in this series. In part one and part two, we covered some of the basics. But in this post, we will dig into the benefits of application performance monitoring (APM), look at a few examples, and begin looking at what APM in an Agile environment means.

Benefits

With everything we have discussed thus far, it may or may not be apparent on what the benefits of APM might be. Hopefully they are obvious, but in case the benefits are not clear, we will discuss the benefits briefly.

Based on some of the comments for the previous posts, it seems that there is a common theme: it is not so easy to accomplish. This tends to justify why many choose to either not start or quit trying when looking at APM.

I would personally agree that it is not an easy feat to accomplish, but it is very much beneficial to stick with it. There will be pain and suffering along the way, but in the end, your application's performance will be substantially more satisfying for everyone. Along the way you may even uncover some underlying infrastructure issues that may have gone unnoticed but will become more apparent as APM is implemented. So, in regards to the greatest benefit, I would say it's the fact that you were able to follow through on your APM implementation.

Examples

Let's now look at just a few examples of where APM would be beneficial in identifying a true performance degradation.

Users are reporting that when visiting your company’s website, there is a high degree of slowness or timeouts. I am sure that this scenario rings a bell with most. This is more than likely the only information that you have been provided as well. So where do we start looking? I bet most will begin looking at CPU, memory, and disk utilization. Why not? This seems logical, except that you do not see anything that appears to be an issue. But because we have implemented our APM solution, in this scenario we were able to identify that the issue was due to a bad SQL query in our database. Our APM solution was able to identify it, show us where the issue lies, and give us some recommendations on how to resolve the issue.

Now, let us assume that we were getting reports of slowness once again on our company’s website. But this time our application servers appear to be fine and our APM solution is not showing us anything regarding performance degradation. So, we respond with the typical answer, “Everything looks fine.”

A bit later, one of your network engineers reports that there is a high amount of traffic hitting the company’s load balancers. A DDoS attack is causing them to drop packets to anything behind them. And guess what? Your applications web servers are directly in line with the affected load balancers. Which would explain the reports that you received earlier. In this case, we did not have APM for our application configured to monitor anything else other than our application servers, so we never saw anything out of the norm. This is a good example of not only monitoring your application servers, but also all the external components that are in some way related to what performance is experienced with your application. If we had been doing so, we at the very least could have been able to correlate the reports of slowness with the high amount of traffic affecting the load balancers. In addition to this, our APM was not configured to monitor the connection metrics on our application servers. If we had, we should have been able to notice that our connection metrics were not reporting as normal.

Conclusion of After The Fact Monitoring

If you recall, I mentioned in the first article that I would reference the traditional APM methodology as “After the fact implementation.” This is more than likely the most typical scenario, which also leads to the burden and pain of implementation. In the next post of this series, we will begin looking at implementing APM in an Agile environment.

13 Comments
Level 13

Thanks for the article. Looking forward to the rest of the series.

Level 14

Thanks for the article!

Level 13

Thanks mrlesmithjr​.  Enjoying the series.  We're using APM but we obviously need to dig in more to make sure we're taking full advantage of all the features available to us.

If I can equate APM to SAM, the benefits of APM are huge and simple and obvious.  The include:

  • Knowing an app's flows from A to Z
  • Having the information to baseline and understand any deviation from "normal" performance
  • Being able to alert on latency issues in any part of an App's required components
  • Alerting on those issues
  • Quickly identifying who's responsible for the equipment or environment (SSD, database, networks, etc.) in that problem hop
  • Assigning the problem to the right team immediately
  • Eliminating finger-pointing
  • Reducing MTTI quickly

I'm in favor of APM.  (If only I could get the organization and Apps folks, DBA's, and SA's to share my opinion, and for Management to budget for the right SW modules to add into my environment, and the hardware or VM environments to host them.)

Level 16

I have been using SAM since it was called APM and I've been very happy with it. As far as tools go it's fairly easy to set up and can be adapted to monitor almost anything.

Level 9

Thanks for the article.

Level 20

I second bobmarley​ I went for years without SAM and when I finally got it I can't imagine how I lived without it.  I remember the old APM as well... that dates back to the old thwack website.

Level 9

Thank you so much for this article

Level 10

Glad everyone is enjoying this series. There is so much to cover, but hopefully just highlighting some areas will be beneficial. Definitely stay tuned for the next few articles. Thanks for all of the great feedback.

Level 10

Absolutely. I'd recommend definitely digging in and uncovering some goodness.

Level 10

This is definitely one of the many challenges for sure. I'd recommend trying to get everyone from each support area working together with the process as well. If you can get everyone on the same page, it will make things much smoother.

Level 14

I'm kinda hamstrung here because we only have SAM.  The network support was outsourced so it is a constant battle between us and them about where the problem lies.  I would also like to monitor the applications but am restricted to AppInsight for AD and SQL.  Still helps though.

MVP
MVP

It used to be about monitoring that thing were up. Now it is critical that performance be monitored as the loads have increased for all systems and the perceived need of data all the time. It's not just enough to get the data, but it needs to be timely and accurate.