Observability Guide

What is APM (application performance monitoring)?

By Obseria Editorial TeamUpdated
Definition

APM (application performance monitoring) is the practice and tooling for measuring how software applications perform for their users. APM tools instrument code to track response times, throughput, error rates and resource usage per transaction, trace requests across services and pinpoint the code, query or dependency responsible for slowdowns and failures.

Key takeaways

  • APM focuses on the application layer: how fast and reliably each transaction, endpoint and service responds.
  • Core APM metrics are latency percentiles, throughput, error rate and saturation, often summarized as RED metrics or Apdex.
  • Modern APM is built on distributed tracing and increasingly on OpenTelemetry instead of proprietary agents.
  • APM is a central part of observability, but it needs infrastructure, logs, profiles and user experience data for full context.

APM defined

APM stands for application performance monitoring, sometimes also called application performance management. It is the discipline of measuring, analyzing and improving how software applications behave from the perspective of the requests they serve. Where infrastructure monitoring asks "is this server healthy?", APM asks "how long does the checkout endpoint take, how often does it fail, and which line of code, database query or downstream call is responsible?"

APM tools answer these questions by instrumenting the application itself. They record each incoming request as a transaction, time the operations inside it (function calls, SQL queries, HTTP calls to other services, cache lookups) and aggregate the results into metrics per endpoint and service. When something is slow or failing, you can drill down from an aggregate chart to individual transactions and from there to the exact operation that caused the problem.

Why application performance monitoring matters

For most digital businesses, the application is the product. Slow pages and failed requests translate directly into abandoned carts, lost sign-ups, support tickets and frustrated internal users. At the same time, applications have become harder to reason about: a single page view can trigger dozens of service calls, several databases and external APIs, any of which can degrade without an obvious infrastructure symptom.

APM gives development and operations teams a shared, request-level view of performance. It helps them:

  • detect performance regressions and errors before many users are affected;
  • find the slow component in a distributed call chain in minutes instead of hours;
  • connect a degradation to a specific deployment, configuration change or dependency;
  • prioritize optimization work by user impact rather than by gut feeling;
  • define and track service level objectives on the metrics users actually feel.

Key APM metrics

A handful of metrics carry most of the value in APM. They map closely to the RED method (rate, errors, duration) and to Google's four golden signals.

MetricWhat it measuresWhy it matters
Latency (response time)Time to serve a request, reported as percentiles such as p50, p95, p99The metric users feel most; tail latency often matters more than the median
ThroughputRequests or transactions per second or minuteContext for every other metric; sudden drops can signal upstream failures
Error rateShare of requests that fail (exceptions, HTTP 5xx, failed business outcomes)Direct indicator of broken functionality
SaturationHow close resources such as thread pools, connection pools, CPU and memory are to their limitsEarly warning for capacity problems before latency rises
ApdexScore from 0 to 1 based on how many requests are satisfied, tolerating or frustrated relative to a target timeSingle, user-centric summary of performance
Dependency timeTime spent in databases, caches, queues and external APIsShows whether the problem is in your code or in something it calls

Apdex is calculated as (satisfied + tolerating / 2) / total samples, where requests faster than the target time T are satisfied, requests up to 4T are tolerating and anything slower or failing counts as frustrated. Whatever summary you use, avoid relying on averages: a mean latency of 200 ms can hide a p99 of several seconds that affects your most valuable customers.

How APM works

Instrumentation

APM data is collected in three main ways. Language agents attach to the runtime (for example via bytecode instrumentation on the JVM or .NET CLR) and automatically time framework handlers, database drivers and HTTP clients. SDKs, today most often the OpenTelemetry SDKs, provide the same through standardized APIs plus manual instrumentation for business-specific operations. eBPF-based collection observes network and system calls in the kernel and can provide request metrics without changing application code, though usually with less code-level detail.

Distributed tracing

In microservice architectures, a single user request touches many services. Distributed tracing follows it by assigning a trace ID and propagating it with every downstream call. Each unit of work becomes a span with a start time, duration, status and attributes. Put together, the spans form a waterfall that shows exactly where time was spent and where an error originated. Tracing is the backbone of modern APM.

Aggregation and analysis

The APM backend derives metrics per service, endpoint and dependency from spans, builds a service map from the observed calls, groups errors by type and stack trace, and lets you compare time windows, versions or regions. Many tools add deployment markers, so a jump in p95 latency can be tied directly to the release that introduced it.

Typical problems APM uncovers

Most performance incidents fall into a small number of recurring patterns. Knowing them helps you read APM data faster:

  • N+1 queries. A loop issues one database query per item instead of a single batched query. In a trace, this appears as dozens or hundreds of nearly identical short spans under one request.
  • Slow or failing dependencies. A third-party API, a shared cache or another team's service degrades. Dependency time grows while your own code time stays flat.
  • Pool exhaustion. Database connection pools or thread pools run out, and requests queue. Latency rises sharply while CPU stays low, which infrastructure metrics alone rarely explain.
  • Retry storms and timeouts. Aggressive retries multiply load on a struggling dependency. Traces reveal repeated spans with identical targets and long timeout durations.
  • Runtime pauses. Garbage collection, lock contention or JIT compilation cause intermittent tail latency. Profiles and runtime metrics explain what traces only show as unexplained gaps.
  • Regressions after deployment. A new release changes a query plan, adds a synchronous call or disables a cache. Comparing versions side by side makes the change obvious.

Components of a modern APM solution

  1. Service and endpoint metrics for latency, throughput and errors, with percentile breakdowns.
  2. Distributed tracing with trace search, waterfall views and span attributes.
  3. Service map showing dependencies between services, databases, queues and third-party APIs.
  4. Error tracking that groups exceptions, shows stack traces and links them to traces and deployments.
  5. Database and dependency monitoring that surfaces slow queries, N+1 patterns and failing external calls.
  6. Code profiling, ideally continuous, to explain CPU and memory hot spots at function level.
  7. Digital experience monitoring such as real-user monitoring and synthetic checks, to measure performance as end users experience it.

APM vs infrastructure monitoring vs observability

Infrastructure monitoringAPMObservability
FocusHosts, containers, networks, cloud resourcesApplications, services, transactionsThe whole system, including users and business context
Typical dataResource metrics, eventsTraces, service metrics, errorsMetrics, logs, traces, profiles, RUM and events, correlated
Key questionIs the platform healthy?Is the application fast and correct?Why is the system behaving this way?

The lines have blurred. Classic APM products were application-centric and relied on proprietary agents; today APM is usually one capability within a broader observability platform, sharing data with infrastructure, log and user experience monitoring. That shared context is what turns "the payment service is slow" into "the payment service is slow because one database node is saturated after last night's index change".

APM best practices and pitfalls

  • Measure percentiles, not averages. Set SLOs on p95 or p99 latency and on error rate for the endpoints that matter to users.
  • Instrument with OpenTelemetry. Standard instrumentation avoids lock-in and keeps attribute names consistent across languages and teams.
  • Add business context. Attributes such as customer tier, tenant, payment method or feature flag turn traces into answers. Keep them on spans, not on high-volume metrics.
  • Track deployments. Mark every release in your telemetry so regressions can be correlated with changes immediately.
  • Sample intelligently. Tail-based sampling keeps slow and failed traces while reducing volume from healthy traffic. Head-based sampling alone often discards exactly the traces you need.
  • Do not stop at the backend. Pair server-side APM with real-user monitoring; network, rendering and third-party scripts often dominate perceived performance.
  • Watch overhead and coverage. Validate agent overhead in staging and check that trace context survives queues, async jobs and gateways, otherwise traces break into disconnected fragments.

How Obseria helps

Obseria Application Observability is APM built on OpenTelemetry. It ingests traces from your existing OTel SDKs or from the Obseria Agent, derives RED metrics per service and endpoint, and links every span to its logs, continuous profiles (under 1% overhead) and the underlying infrastructure in Obseria TopoGraph. Tail-based sampling keeps the traces that matter, deployment tracking ties regressions to releases, and Obseria Intelligence investigates anomalies and presents the likely root cause with its chain of evidence. Pricing is per signal ingested, not per host or seat.

Frequently asked questions

APM stands for application performance monitoring, sometimes also application performance management. It refers to tools and practices for measuring and improving the speed, reliability and resource usage of software applications.

APM focuses on application performance: latency, throughput and errors of services and transactions. Observability is broader and covers the whole system, combining APM data with infrastructure metrics, logs, profiles, user experience and business events to explain any behavior, including unanticipated failures.

The core APM metrics are response time (as percentiles such as p95 and p99), throughput, error rate and saturation, plus time spent in dependencies such as databases and external APIs. Many tools also report an Apdex score as a user-centric summary.

APM tools collect data through language agents that instrument the runtime automatically, through SDKs such as OpenTelemetry for automatic and manual instrumentation, and sometimes through eBPF-based collection at the kernel level. Distributed tracing then links the data across services.

Yes. OpenTelemetry provides auto-instrumentation and SDKs that produce the traces and metrics APM needs. You send that data via OTLP to an APM or observability backend, which handles storage, service maps, analysis and alerting.

Ready for observability that delivers answers?

Try every feature free for 14 days, no credit card and no proprietary agents.