Monitoring and logging form the visibility layer of modern infrastructure, enabling teams to understand system behavior, diagnose failures, and optimize performance. Observability—the ability to infer internal system state from external outputs—organizes four signals: metrics (quantitative time-series), logs (timestamped event records), traces (distributed request paths), and profiles (continuous CPU/memory sampling) into a coherent framework. In 2026, eBPF-based zero-code instrumentation and OpenTelemetry standardization have fundamentally changed how telemetry is collected, removing the need to instrument every service manually. Effective monitoring still requires balancing signal-to-noise ratio: collecting enough data to answer unknown questions, but not so much that costs explode or engineers drown in alerts.
What This Cheat Sheet Covers
This topic spans 34 focused tables and 175 indexed concepts, 120 flashcards. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
A jump-to index of every table row in this cheat sheet.
An interactive map of every table and concept in this topic.
Table 1: The Four Signals of Observability
Everything else in this cheat sheet sits on top of four telemetry signals. Metrics tell you what is happening at a glance, logs tell you what happened in detail, traces tell you where a request spent its time, and profiles — the newest addition — tell you why the code itself is slow. Knowing which signal answers which question is the foundation of debugging distributed systems.
| Signal | Example | Description | |
|---|---|---|---|
http_requests_total{method="GET", status="200"} 1547 | • Numerical measurements aggregated over time • low-cardinality time-series ideal for dashboards, alerts, and trend analysis. | ||
2026-03-03T15:04:05Z ERROR user=12345 msg="payment failed" amount=99.99 | • Timestamped text records of discrete events • provide detailed context for debugging specific failures and understanding application behavior. | ||
Spans showing request flow: frontend→auth→payment→db with latencies | • Visual representation of request execution across distributed services • reveal causal relationships and identify latency bottlenecks in microservices. | ||
Flame graph showing 40% CPU in processPayment() function | • Continuous sampling of CPU, memory, and goroutine stacks down to line of code • the fourth OTel signal; reveals why code is slow or resource-hungry, not just that it is. |