What is Performance Monitoring

Mar 18, 2021 12:02:41 PM | What is Performance Monitoring

An introduction to what is performance monitoring and how it can be useful to you as a developer and your application.

Tl;DR: Performance Monitoring is a piece of software designed to give you an overview of your application’s operations as a whole. With the right monitoring tool, you can better manage resources, prevent latency, and ensure a good user experience (UX), so you don’t lose customers due to poor performance. 

***

As a Developer, your job is to make sure your website runs smoothly. When you only have 15 seconds to make an impression before users decide to stay or leave, your application’s performance counts. 

That’s where Performance Monitoring comes in. Performance monitoring is a set of tools that provide insight into the health of your application. With monitoring, you can measure issues that might impact your user’s experience while they’re using your application. 

Traditionally, IT, system engineers, and other Dev/Ops professionals rely on APM to ensure the system is running efficiently. But it’s not just for IT anymore. Developers and coders can also benefit from performance monitoring. 

Throughout this post, you’ll learn more about what Performance Monitoring is, how it can be used by developers, and ways in which monitoring software can help you stop losing valuable customers due to poor application performance. 

What Does Performance Monitoring Measure? 

Traditionally, Application Performance Monitoring (APM), when used by Dev/Ops and System Engineers, is a piece of software designed to track both the health of an application and the environment it’s hosted on. 

With APM, Dev/Ops can monitor:

  • An application’s environment: Applications go beyond just the server. Your application stack can include environments such as servers, mobile devices, IoT speakers, and even household appliances! It can be a virtual machine, a container, or a completely serverless environment. With an APM, Dev/Ops can monitor multiple environments, making it easier to pinpoint environmental issues.
  • Errors: APM can be a canary in the coal mine for catching errors before they happen. Slowdowns in the performance of services or the overall environment can indicate a looming problem that will eventually cause an error. While an APM can’t replace error monitoring software, it still provides valuable insight into the context in which those errors show up.  
  • User experience: In the end, everything you do, every code push, every design choice for your application, all comes down to user experience. The one constant in user experience is speed.  Think about it: no user has ever complained about an application being too fast. APM is designed to report latency problems via an Apdex Score before it affects too many users. 

With the information gleaned from performance monitoring, Dev/Ops can better manage resources to ensure their application runs smoothly. 

What Does Application Performance Monitoring Mean for Developers? 

Typically, when we think of Application Performance Monitoring, we think of it as an IT tool where you can monitor the performance of an application’s environment and its servers. But many of the tools IT uses also apply to developers. For developers, insight into the user’s experience can prove to be invaluable. 

As a developer, you understand that every deployment comes with risks. A single error can have serious impacts on the user, so much so they might stop using your application. With APM, you can track the health of your application. Why does this matter? An APM can provide insight into how an error might be affecting an application and your users through measurements such as Apdex score, response time, HTTP requests, etc. 

An APM designed with developers in mind answers the following questions: 

  • What broke?
  • When did it break?
  • What happened at the time it broke?

You might be asking yourself why IT, System Engineers, and other Dev/Ops professionals don’t simply relay this information to developers. It comes down to perspective. Dev/Ops and coders view data in the context of their job. Dev/Ops is all about making sure everything is running efficiently, but Developers are all about making sure things run smoothly. 

Here are a couple of examples of what we mean: 

Example 1:

Imagine you have an API where an application is calling Stripe to process financial transactions. For this example, the developer has set an error condition that will cause the API call to timeout after 500ms.

If they run into this error condition, the transaction will not process and will generate an error. For these types of instances, a developer would need to see if there are HTTP errors (such as a 408 Timeout response, or even the dreaded 500 error) appearing in the logs. 

However, in many cases, only operations staff can view this on their APM software. Operations staff who view this dashboard may never see these timeouts because they are looking at the performance of the server and will only see an average of successfully processed transactions.

Developers, if given access, can look at the same logs or information and understand that these transactions are not going through.

As you can see, it’s the same data but viewed within two different contexts. 

Example 2

Sometimes, an event may occur where no transactions are coming through, at all. Let’s take, for example, a company that is tracking QR scans from an advertising campaign. Normally, they may see many transactions; however, if there is a sudden drop-off in completed scans, there might be something amiss.

Fortunately, with good application scanning, one might notice an exact date and time when these transactions stopped occurring.

Using this information, developers can pinpoint the exact deployment that coincided with the time that these transactions stopped appearing. A developer could then pinpoint the error by looking at diffs of files that occurred during that build to identify the source of the undetected bug.

Ops teams, on the other hand, may never notice that something is wrong. According to their data, the system is running at optimal efficiency. 

As you can see, it’s all about perspective when it comes to performance monitoring. While IT professionals, system engineers, and developers are looking at the same metrics, each party gets something else out of them. 

Performance Monitoring Designed for Developers   

Many in the Dev/Ops world may consider APM to be fully the realm of operations. However, there are features in it that can be highly valuable to developers. Tools such as Apdex Score, HTTP information, request rates, error occurrences provide crucial details about the health of their application. That’s why Airbrake Performance Monitoring is the best tool for coders who only need the essentials. Our APM isn’t bloated with unnecessary and confusing tools that don’t help you code.

For the most affordable and developer-centric performance monitoring software on the market, sign-up for a free 14-day Airbrake trial.

Written By: Alexandra Lindenmuth