Application Performance Monitoring For SREs
Tags: devops, sre, engineeringmanagement, engineering
Published: 2021-11-08 12:51:17

The idea of monitoring systems and applications has been around for years. Ensuring that a system and application are performing the way they're supposed to isn't anything new. It's simply a component that's been changing drastically, specifically with application performance and load using a practice called Application Performance Monitoring (APM).

So why is APM important now and why should you care? In this blog post, you're going to learn about APM, why it's important, and how to get started.

## What is APM

In the early days of software, tools started to come out for understanding how much load a system running an application could take. A notable tool is Apache JMeter, which is a load testing tool for analyzing and measuring performance. The first release of JMeter was in 1998, which means the idea of caring about application performance has been in the public eye for a while. However, monitoring the results of JMeter consistently wasn't exactly a popular approach. Engineers cared about the results, but the results of the tests weren't something that was constantly refreshed on a monitoring tool/platform.

Application Performance Monitoring, or APM, is how to measure and understand what's happening in an application. For example, if you run a tool like Apache JMeter, you would monitor the results of running JMeter with APM.

The example of JMeter is when you're forcing an application to act a certain way, but as we all know, software is getting more and more complex, so it has a mind of its own. APM is important not just for understanding the application performance when running a load testing tool, but to understand what's happening in the software on a day-to-day, hour-by-hour, minute-by-minute timeline.

APM strives to diagnose and detect application discrepancies. A discrepancy could be if an application is usually at 100 active users, but all of a sudden it jumps to 200 active users and can no longer handle the load of the extra 100 users.

## Why is APM Important?

The idea of organizations having a piece of software isn't just nice to have anymore, it's pretty much mandatory. Even if a company isn't a software company, as in, the main focus of the product is software, the company still needs to think about software. Whether it's an app that users need to interact with to buy or use your product, a website, an already-built app that's being used for the day-to-day operations of the business, or some type of desktop application.

In the time we live in, all organizations must think of themselves as technology-driven/software companies.

Whether it's an app that a company builds for their clients or an app that the company is using for their day-to-day, it must not only be monitored for usability but monitored for performance. Otherwise, a company will never be able to go as fast as they want to go, have the uptime and productivity they desire, or stay up with the idea that all services are always up and running.

Application Performance Monitoring is the difference between an app/software that's known to always work and be available or the app that gets to the second page of Google because no one is using it anymore due to its inefficient nature.

## Why Businesses Need APM

We live in a world of *always on* and *everything is always connected*. The idealization of instant gratification is an unfortunate one, but it's the reality that we all live in. Because of that, every business needs to think about what always-on means.

1. Is your application slow when it reaches over X amount of users?
2. Does the app scale well or go down?
3. Is the software reliable so users want to come back?

Think about it like this with one question - would Amazon be as popular as it is right now if it went down 4-5 hours per day? 

## APM Practices

At this point, you may be thinking that APM is important, but you also may be wondering what it actually does. This section will break down what APM does in an easy-to-understand, bullet-point fashion.

- Mobile app performance monitoring
- Desktop app performance monitoring
- API monitoring
- Container app monitoring
- Observability from the system to the application

With all of the ability above, it opens up a ton of doors to make software better. For example, finding the root cause analysis (RCA) for why an application constantly goes down or why it's not performing the way it should is so much easier with an APM platform.

Not only will your business go faster, but it'll be more reliable, which will ultimately bring in more clients and customers.