What is an APM?
The goal of Application Performance Management or APM is to collect state data on live applications to understand and manage its performance. APMs are a solution to the challenge of observability. They offer user-interfaces and additional features for understanding your application.
Observability pertains to Metrics, Logs, and Tracing. The figure below has the main takeaways for each of the concepts related to observability.
Why use one?
APMs offer control over the data observed of a particular service or function within your application’s ecosystem. This granularity of scope is particularly useful for determining bottlenecks when serving SLAs. Another benefit of using APMs is increased visibility. It enables quicker troubleshooting of applications should any issues occur. For example, if a service request fails within the call chain of services, it’d be quite useful to have a dashboard that includes the services called and context propagation that lead to the failure.
Similarly, having a pulse on the internals of my application reduces the time for performance optimizations for issues such as memory leaks. The goal is to acquire full context into which service failed and what caused the error. APM solutions enable developer teams to go into their tools, reports, or dashboards to find these issues.