Observability Fundamentals
Observability is the ability to understand a system's internal state from its external outputs: metrics, logs, and traces. It provides the instrumentation and tooling needed to answer novel questions about system behavior without deploying new code.
itObservability and performance | OpenSkills.info
Intro
Observability Fundamentals
Observability is the property of a system that lets you understand it from the outside: you can ask questions about its state and behavior without knowing its inner workings, and without shipping new code first. The term comes from control theory, where observability is "a measure of how well internal states of a system can be inferred from knowledge of its external outputs." In practice, it is what lets you troubleshoot problems you never anticipated — the unknown unknowns — and answer the question "why is this happening?" rather than just "is it happening?"
The useful mental model: your system continuously emits telemetry — data about its own behavior — and observability is your ability to turn that output into answers. A system does not become observable because you bought a dashboard product. It becomes observable because it was instrumented to emit the right signals, and an application is properly instrumented when engineers don't need to add more instrumentation to troubleshoot an issue, because the information they need is already there.
Why observability exists
Cloud computing, microservices, and distributed systems moved applications onto infrastructure their operators no longer fully control. A request may cross dozens of services, queues, and managed cloud components before failing — and the failure often cannot be reproduced locally. Traditional monitoring, which watches predefined thresholds on predefined metrics, catches the known unknowns: failure modes someone predicted in advance. Distributed systems routinely fail in ways nobody predicted. Observability extends monitoring so that novel problems can still be investigated after they happen, using signals collected before anyone knew they would matter.
This is also an organizational shift. Instrumentation used to be an afterthought bolted on by operators; the modern approach makes it a developer concern, designed in from the start — what the CNCF calls open-box monitoring, as opposed to close-box monitoring that probes a system purely from outside.
The primary signals
You will hear about the "three pillars of observability." The CNCF prefers primary signals, because the list is neither fixed nor always needed all at once:
- Metrics — numeric measurements aggregated over time: request rates, error rates, CPU utilization. Cheap to store, fast to query, and their volume does not grow with traffic, which makes them the backbone of alerting, dashboards, and trend analysis. The trade-off: aggregation discards detail.
- Logs — timestamped text records of discrete events, from application errors to security audit trails. Rich in detail and available almost everywhere, but freeform text is hard to analyze at scale, and logs alone usually lack the context of where a request came from.
- Traces — records of a single request's journey through a distributed system, built from spans (units of work) linked by context propagation. Traces show where time was spent and which component failed, across process and service boundaries.
- Profiles and crash dumps — emerging signals. Continuous profiling shows which code consumes CPU or memory; core dumps capture the state of a crashed process.
No single signal is enough, because each is specialized. Metrics tell you what is wrong at scale for a predictable cost; logs and traces tell you why, at a much higher per-event cost. Mature setups correlate signals — shared labels across signals, trace IDs attached to log lines, and exemplars linking a spiking metric to a sample trace — so an investigation can jump from an alert to the exact failing request.
The vocabulary of reliability
Observability data underpins how organizations define and defend reliability:
- An SLI (service level indicator) is a quantitative measure of service behavior from the user's perspective, such as page load time or error rate.
- An SLO (service level objective) is the target for an SLI — the way reliability is communicated to the rest of the organization.
- An SLA (service level agreement) is a business contract with consequences for missing the objective.
- The error budget is the tolerated failure allowance implied by an SLO: 100% minus the SLO over a time window.
Google's SRE practice adds the four golden signals — latency, traffic, errors, and saturation — as the minimum worth measuring for any user-facing system, and a discipline for alerting: page a human only for urgent, actionable, user-visible symptoms; route everything else to tickets and dashboards.
Who uses it, and for what
Site reliability engineers, DevOps engineers, sysadmins, and software developers all consume observability data, for purposes beyond firefighting: analyzing long-term trends and capacity, comparing releases and experiments, alerting, building dashboards, and retrospective debugging. Product teams use the same data to understand how features are actually used.
Limits and failure modes
Observability is a game of trade-offs, and the common failures are predictable. Collecting everything "because you never know" builds an expensive data lake, not an observable system — you need an objective before you choose outputs. Metrics with too many unique label values cause cardinality explosions that break or bankrupt metric storage. Noisy, unactionable alerts cause alert fatigue that trains people to ignore real pages. And logs are not guaranteed delivery, so genuinely important data should never live only in logs — nor should personally identifiable information live in them at all.
The pragmatic starting path, per the CNCF: begin with the signal you already have — metrics in cloud-native environments, logs in more traditional ones — get it into good shape, then branch out.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://opentelemetry.io/docs/concepts/observability-primer/
Supports
- Observability as understanding a system from the outside, asking questions without knowing internals, troubleshooting unknown unknowns, answering "why is this happening"
- Proper instrumentation defined as needing no additional instrumentation to troubleshoot
- Telemetry as data emitted from a system about its behavior; traces, metrics, logs as signal forms
- Reliability as "is the service doing what users expect"
- Metrics as aggregations over time of numeric data (error rate, CPU utilization, request rate)
- SLI as user-perspective measurement of service behavior (e.g. page load speed); SLO as the means reliability is communicated, attaching SLIs to business value
- Distributed tracing for requests propagating through distributed systems; essential where problems are nondeterministic or not reproducible locally
- Log as timestamped message not necessarily tied to a request; more useful when correlated with spans/traces
- Span as single unit of work with name, timing data, structured log messages (events), and attributes
- Infographic labels for the definition, instrumentation bar, and signal descriptions
- https://github.com/cncf/tag-observability/blob/main/whitepaper.md
Supports
- Control-theory definition of observability (internal states inferred from external outputs)
- Primary signals framing vs "three pillars"; emerging signals (profiles, crash dumps)
- Metric types (gauge, counter, histogram); timeseries as name + labels + values; metric volume not scaling with traffic; known-unknowns efficiency
- Metric cardinality definition, PID-label explosion example, cost growing with cardinality, unique detail belonging in events
- Prometheus and OpenTelemetry as the two popular open metric data models
- Log categories (application, security, system, audit, infrastructure), log levels (ERROR/WARNING/INFO/DEBUG), PII prohibition, non-guaranteed delivery, encryption guidance
- Traces as span trees; W3C Trace Context standardization; instrumentation purposes (context propagation, span mapping)
- Sampling profilers adding only a few percent overhead; profiler types
- Signal correlation via consistent target metadata, shared trace/request IDs in logs, and exemplars; example troubleshooting flows
- Recommendation to start with existing signals (metrics in cloud-native, logs in traditional setups) and branch out
- Monitoring as known unknowns vs observability including unknown unknowns; close-box vs open-box monitoring
- SLI/SLO/SLA/error budget definitions and stakeholder-agreement requirement
- Alert actionability, paging vs ticketing distinction, alert fatigue, target-error-rate alerting and its noisiness, burn-rate alerting (burn rate 1 = budget exactly exhausted at window end; burn rate 1000 at 99.9%/30d ≈ 43 minutes)
- USE method (Brendan Gregg) and RED method (Tom Wilkie) attributions
- Data-lake anti-pattern (collecting without an objective); multi-signal learning-curve and separate-systems challenges
- Cloud computing/microservices motivation for observability; instrumentation as an early design concern
- Target audience (SREs, DevOps engineers, sysadmins, developers)
- Infographic labels for signals, correlation, cardinality, and starting-point guidance
- https://sre.google/sre-book/monitoring-distributed-systems/
Supports
- Definitions of monitoring, white-box and black-box monitoring, dashboards, alerts (tickets, email alerts, pages), root cause
- Reasons to monitor (long-term trends, comparisons, alerting, dashboards, retrospective debugging)
- Four golden signals (latency including failed-request latency, traffic, errors including implicit and policy failures, saturation with p99 latency as early signal)
- Symptoms-versus-causes distinction; limited success of dependency-based cause rules
- Tail latency via bucketed histograms rather than means (100 ms average can hide 5 s outliers at 1% of requests)
- Paging philosophy (urgent, actionable, user-visible; every page should require intelligence; rote responses should be automated)
- Alert fatigue consequences (ignored pages masking real problems)
- Infographic labels for the golden signals and paging discipline
- https://sre.google/sre-book/service-level-objectives/
Supports
- Rationale in 06-links.yaml — canonical chapter on SLIs, SLOs, SLAs, and error budgets, referenced by the CNCF whitepaper
- https://opentelemetry.io/docs/concepts/signals/
Supports
- Rationale in 06-links.yaml — per-signal OpenTelemetry documentation covering traces, metrics, logs, baggage, and profiles
- https://prometheus.io/docs/concepts/data_model/
Supports
- Rationale in 06-links.yaml — Prometheus metric names, labels, and timeseries model, referenced as a popular metric data model by the CNCF whitepaper
- https://www.brendangregg.com/usemethod.html
Supports
- Rationale in 06-links.yaml — USE method checklist (Utilization, Saturation, Errors per resource), referenced by the CNCF whitepaper
