APM, short for application performance monitoring, is the practice of measuring how software behaves while real users depend on it. An APM tool records how long requests take, where they slow down, which ones fail, and which component in the path is responsible.
The discipline dates back to the monolith era, when a single application server handled most of the work and a profiler could explain nearly any slowdown. Modern systems split one user action across dozens of services, queues, and databases. APM has evolved accordingly, and most tools today rely on distributed tracing to follow a request across that entire path.
You will sometimes see the acronym expanded as application performance management. The two terms are used interchangeably, although “management” historically implied a broader set of capacity planning and business reporting features.
APM starts with instrumentation. A language agent or an OpenTelemetry SDK is added to the application, either automatically at startup or through code changes. That instrumentation wraps incoming requests, outbound HTTP calls, database queries, and message publishing so each operation is timed and recorded as a span.
Spans that belong to the same request share a trace ID. The APM backend stitches them into a trace, then aggregates thousands of traces into service-level statistics. Engineers can move from a high-level service map down to a single slow request and the exact query that caused it.
Many platforms supplement traces with runtime metrics such as heap usage and garbage collection pauses, plus error details and stack traces, so the performance picture includes both the symptom and the likely cause.
Latency, traffic, errors, and saturation also make up the four golden signals described in Google’s Site Reliability Engineering book, which is why APM dashboards so often center on them.
APM answers a focused question: how is this application performing, and where is the time going? Observability is a wider goal. It aims to let engineers ask new questions of a system using logs, metrics, and traces together, including questions nobody predicted when the dashboards were built.
In practice APM is one capability inside an observability strategy. A latency spike surfaces in APM, the related trace narrows the problem to a service, and the logs from that service explain the specific failure.
Slow software costs money even when nothing is technically down. Users abandon slow checkouts, and internal teams waste time waiting on sluggish tools. APM makes those problems measurable before they turn into outages.
It also shortens investigations. Without request-level timing, engineers are left guessing which of many services introduced a delay. With it, they can see the answer directly, which lowers mean time to resolution during incidents and gives developers evidence when prioritizing performance work.
APM stands for application performance monitoring. Some vendors use application performance management, which refers to the same core practice of tracking how applications perform in production.
Not exactly. Distributed tracing is a technique for following a request across services. APM is the broader practice, and it uses distributed tracing alongside metrics, errors, and runtime data to explain application performance.
Yes. OpenTelemetry SDKs and auto-instrumentation produce the traces and metrics APM relies on, and they can send that data to any compatible backend, which avoids locking instrumentation to a single vendor.
It depends on the use case. Interactive web requests often target a p95 under a few hundred milliseconds, while batch jobs tolerate far longer. Teams usually define targets as service level objectives based on user expectations.
Modern agents add a small amount of overhead, typically low single-digit percentages of CPU. Sampling strategies reduce that further by recording only a portion of traces while keeping aggregate metrics accurate.