Application performance monitoring (APM) services are tools that can help you understand how well or poorly your app is performing for your customers, your end users.

APM services or products are typically provided by third parties and help you track key information about your application, such as latency, but they also help you understand trends over time and allow your business to achieve specific SLAs (service level agreements) or SLOs (service level objectives)

New to application performance monitoring? For more general information about what APM entails, see our article here

Why use an APM service? 

APM services are foundational to keeping your application healthy and running smoothly. They’re key to ensuring customers have the best experience and are satisfied. 

But, it hasn’t always been the case that online services have used APM solutions and many businesses are behind the curve in adopting them, relying on engineers to build a custom solution without the proper tools or insight into all parts of their system. Yet measuring performance is critical. It’s unlikely that you’d ever set up a physical business without metrics, a way to observe your business operations, and a tracking system in place. 

Applications are much the same–you need to know whether or not your customers abandon their carts, how performant your site is, if there are errors in the services you provide and what's causing those problems, the mean time it takes your team to resolve said errors, and more. 

Without the proactive insight that an APM service provides, you’re at significant risk for things like site latency and downtime. These make it more likely that you’ll lose new or returning customers, sales and revenue, and customer engagement. These aren’t always obvious unless you’re able to observe them, so an APM service will collect all the data you need to make decisions, visualize this information, bring problems to the surface, so you can ensure problems don’t occur in the future. 

It’s also worth thinking through whether or not you want your engineering team to spend valuable time DIYing an application performance monitoring solution for you. There’s a reason that third-party software companies have made so many tools available on the market for application performance monitoring. Simply put, it’s difficult to roll your own solution without spending a lot of money, effort, and time. In the end, purchasing a solution that’s already set up to give you the capabilities you need to have a fully observable system is worth it in both the short and long term. 

What standard capabilities should be included in an APM service? 

  • Visualization of immense amounts of data: Dashboards, charts, and other visualizations of full stack traces are an integral part of an APM service. These help engineers understand your overall system at a glance and get to the information that they need faster. 
  • Troubleshooting information at the code level: Determining the root cause of errors and consuming requests should be easy to find and, preferably, inside a tool where you can also send alerts to your team or file an issue.
  • Automated service level management: The service you choose should be able to give you reports automatically and on a set schedule that tell you how your team is performing against SLIs and SLOs, so you don’t have to sift through data to make these on your own. 
  • Distributed tracing observability: Troubleshooting distributed systems is a classic needle in a haystack problem. You shouldn’t have to spend time, money, or effort on spinning up additional infrastructure to get this important information. 

Factors to consider when purchasing an APM service

So what should you look for in an APM service? There are a number of factors to consider when buying an APM product: 

  • Easy installation: If you’re purchasing a product, it should be easy to set up and integrate—and it should come with some automatic instrumentation. Although it’s likely that you’ll have to do some customization to ensure your dashboards and the analysis is suited to what questions you’re most interested in, it’s best if you have a solution that gives you a starting point with a quickstart or other automatically set up tools. 
  • Automation: When developers make changes to your application, you’ll want to see that reflected right away in your dashboards and data. It’s best to have a system that can respond to new changes and that is able to trace back to the origins of any problems introduced by new code. 
  • Context: In order to have proper tracing, you’ll also need to have information collected by the system in some kind of context that makes it easier to understand how everything is related to each other. 
  • Alerting that’s integrated with tools you already use: It’s helpful to know that something has gone wrong in a system that your team is already familiar with and using to communicate. If you’re a user of Slack or Jira, for example, you probably want to seek out products that can send alerts or file issues immediately using those tools to save you time and the hassle of looking through various alerting systems. 

Additionally, a good rule of thumb when choosing software is to see how well technology analyst firms rate the product. Their job is to be as objective as possible when trying out and understanding the market of products. (We’re partial to the Magic Quadrant measurement, which typically shows how well a service does what it promises to do and who the top leaders in the industry are).

Something that doesn’t always come standard in tools is AI and unified pattern recognition so you can sift through data faster. It’s an extra plus that can really save your team time and effort.