Application performance management (APM) software, sometimes known as application performance monitoring software, is a software as a service (SaaS) type that provides you with a variety of ways to analyze and ensure availability within your application. They can give you metrics in areas such as render times, database load, and failed requests.
Modern APM tools are mostly drop-in, all-in-one style solutions. Add a dependency and know everything about why your app is slowing down or crashing. They act as a great bridge between development and DevOps by providing insights that benefit both camps. Before we get into how third-party APIs come into play, let's take a look at what APMs do.
The two branches of monitoring
APMs are focused on two core performance areas: user experience related to the application's performance, and resource usage. While these two aren't mutually exclusive or the only areas of monitoring, they do cover most use cases.
Your development team likely uses a variety of approaches to avoid problems hitting the user, like writing tests and running builds through QA, but there is a chance issues that are dependent on scale and latency may never be caught in development. APMs aims to profile these interactions to help your team identify areas of improvement and which parts of your code are causing the largest slowdowns for your users.
Modern web applications benefit greatly from this style of analysis, as testing performance on client hardware is increasingly harder as the landscape of devices expands.
Computational resource usage
One thing you can control, for the most part, is resources. The other core aim is to monitor resource utilization and load. Given your application's common usage patterns, can your resource handle it in a way that you expect? An APM can help locate bottlenecks, define baseline performance, and help predict future usage problems.
As a side benefit, this form of monitoring can help make business decisions about which resources to choose and help plan future migrations.
Features to look for when selecting an APM
The research firm Gartner has developed a set of key principles that they refine every few years known as the Magic Quadrant for Application Monitoring that provides useful insight into what is valuable about APMs, but here are a few key features to look for when choosing the right APM for your application:
- Diagnosis: Application and code-level diagnosis of problems. Knowing that something happened is useful, but knowing where and why it happened is more important. Many solutions offer code-level tracing to help identify where an issue came from.
- Logging and Analysis: This one is mostly a given, but logs that provide value to your use cases are more important than every log imaginable. The ability to define your own key performance indicators (KPI) to monitor should be a key feature. Make sure You can derive actionable changes from your log data.
- Real-time monitoring: For the big, everything-is-on-fire, style concerns, you want as close to real-time monitoring and notifications as possible. You want to avoid a notification from a user being the first you hear about a downtime or slowdown.
Beyond the APM
By nature, APMs focus on your services. The focus is less on your third-party dependencies, and more on your own monolith or microservices. They are fantastic at offering highly customizable logging and monitoring solutions that give you a big picture of your application's performance.
The industry is moving from in-house to external dependencies. As mentioned earlier, APMs are primarily designed to monitor in-house resources. As the industry continues to rely more heavily on third-party, external, APIs to handle many features–like map data, user accounts, and transactions–applications can benefit from more targeted, active solutions.
Active API shielding
The future of applications needs a tool that actively shields them from API downtimes, inconsistencies, and failures. Where many APM tools offer passive monitoring, active shielding monitors logging data and takes action to respond to those failure as they occur. This results in more resilient applications, and less time chasing errors that you otherwise can't control.
At Bearer, we're building a solution to complement your APM's features by actively mitigating the impact of API failures on your application. Bearer can enable your application to be resilient, even if the endpoints you cannot control are not.