Infrastructure monitoring vs. application performance monitoring (APM) — what's the real difference in what each one tells you?
One tells you whether the machine is healthy, the other tells you whether the request is healthy — confusing them is a classic mistake during an incident.
LEARN BY DOINGPut your intuition to work3 steps
Infrastructure monitoring vs. application performance monitoring (APM) — what's the real difference in what each one tells you?
Use the lesson’s examples and explanation to check your idea.
Personal reflection. Nothing is sent to an AI service.#Two questions that sound similar but aren't
"Is the machine healthy?" and "is the request healthy?" are different questions, answered by different tooling, and confusing them is a common junior mistake that shows up in incident response. Infrastructure monitoring answers the first. Application performance monitoring (APM) answers the second.
Infrastructure monitoring watches the resources your application runs on: CPU utilization, memory usage, disk I/O, disk space, network throughput, and whether a host or container is even reachable. It's collected via agents like Prometheus's node_exporter, the Datadog infrastructure agent, or cloud-native tools like AWS CloudWatch's EC2 metrics. It doesn't know anything about your code — it has no concept of "endpoint," "database query," or "user request." It only knows about the box (or pod, or node) the code happens to be running on.
APM watches what happens inside a request as it flows through your code: which endpoint was hit, how long it took, whether it errored, which downstream calls it made (database query, cache lookup, another service), and how much of the total latency each of those calls consumed. Tools like Datadog APM, New Relic, Elastic APM, or an OpenTelemetry-based tracing setup instrument your application code (often via auto-instrumentation libraries) to capture this.
#An analogy that makes the distinction stick
#Side-by-side comparison
| Infrastructure Monitoring | APM | |
|---|---|---|
| Unit of observation | Host, VM, container, node, cluster | Individual transaction / request |
| Typical metrics | CPU %, memory, disk I/O, network throughput, uptime | Request latency (p50/p95/p99), error rate, throughput per endpoint |
| Answers | "Is a resource close to exhaustion?" | "Which code path is slow or failing, and why?" |
| Granularity | Coarse — per machine or container | Fine — per endpoint, per function, per database query |
| Example tools | Prometheus + node_exporter, CloudWatch, Datadog Infrastructure | Datadog APM, New Relic, Elastic APM, Jaeger/Tempo (via OpenTelemetry) |
| Typical alert | "Node disk usage above 90%" | "p99 latency on /checkout exceeded 2s" |
#Where they overlap and why you need both
The two are complementary, not competing. Imagine an alert fires: CPU on a node just spiked to 95%. Infrastructure monitoring tells you that it happened and where (which node, which pod). It cannot tell you why. APM is what shows you that a single endpoint started doing an expensive, unnecessary JSON serialization on every request after a recent deploy, and that this endpoint alone is responsible for the CPU spike — the trace's flame graph makes the expensive span visible instantly, span by span.
The reverse also happens: APM might show a specific database query getting slower over the past hour with no code change, and infrastructure monitoring on the database host is what confirms disk I/O saturation is the actual root cause, not application logic.
A mature on-call setup treats these as different lenses on the same incident, not alternatives: infrastructure monitoring for "what resource is under pressure," APM for "what code path is causing it," and logs (a third pillar, covered elsewhere in this module) for "what exactly happened, in the application's own words, at the moment things went wrong."
🧠 Check your understanding
0/2 · 0/2 answered1. A dashboard shows a service's p99 latency spiking on the /search endpoint specifically, while other endpoints on the same host are unaffected. Which tool is best suited to explain *why* this specific endpoint is slow?
2. Which statement best describes the relationship between infrastructure monitoring and APM?