Observability
Logs, metrics and traces that tell you what your system is doing.
14 technologies on this page ↓How it works
Observability means emitting enough telemetry to answer questions about production you didn’t think to ask in advance. Logs are timestamped records of events. Metrics are numbers aggregated over time, like requests per second or p95 latency. Traces follow one request across every service it touches. A collector such as OpenTelemetry gathers all three and ships them to storage, dashboards and alerting.
A car’s gauges, trip log and dashcam. The gauges show how it’s doing now, the log shows what happened, and the dashcam shows one whole journey.
Reach for it when
- Every production system, from the first day
- Alerting on symptoms users feel: errors, latency, saturation
- Finding the slow step in a request that crosses many services
Think twice when
- Debug-level logging of everything in production; the bill grows fast
- Alerting on every metric; page people only for what needs a human
A real example
A jump in p95 latency fires an alert. The trace of one slow request shows 1.8 s inside a single database query, and that service’s logs show the slowdown began right after a deploy.
Technologies
Specific products, and what each does differently.
Amazon CloudWatchAWSAWS’s built-in monitoring service: metrics from every AWS service, logs, alarms and dashboards, and now traces, OpenTelemetry and PromQL, billed per metric, per GB and per alarm. Amazon CloudWatch | Managed service on AWS | Amazon Web Services | Proprietary | 2026-10-06 |
| Commercial product | Better Stack, Inc. | Proprietary (the Better Stack collector is Apache 2.0) | 2026-10-05 | |
| Open source | ClickHouse, Inc. | MIT (HyperDX UI, API and the ClickStack collector build); Apache 2.0 (ClickHouse and the upstream OpenTelemetry Collector); self-hosted app state in MongoDB, which is SSPL; Managed ClickStack is a proprietary ClickHouse Cloud service | 2026-10-06 | |
| Commercial product | Datadog, Inc. | Proprietary (the Datadog Agent is Apache 2.0) | 2026-10-05 | |
| Open source | Grafana Labs | AGPLv3 (Apache 2.0 until April 2021) | 2026-10-05 | |
| Open source | Cloud Native Computing Foundation | Apache 2.0 | 2026-10-05 |
Also used for observability
Products of other kinds that are often used this way, grouped by what they are.
| Time-series databases | Open source | GrepTime Inc. | Apache 2.0 (core); a few enterprise-only features under the GreptimeDB Enterprise License, not built by default | 2026-10-06 | |
| Search indexes | Commercial product | Elastic N.V. | Source code: AGPLv3, SSPL 1.0 or Elastic License 2.0, your choice, except paid features under `x-pack`, which are Elastic License 2.0 only. Default downloads: Elastic License 2.0. Apache 2.0 up to 7.10.2 | 2026-10-06 | |
| Search indexes | Open source | OpenSearch Software Foundation | Apache 2.0 | 2026-10-06 | |
| Logs | Open source | Cloud Native Computing Foundation | Apache 2.0 | 2026-10-06 | |
| Logs | Open source | Elastic N.V. | Apache 2.0 (core and plugins); `x-pack` code under the Elastic License, included in the default download but not in the `-oss` builds | 2026-10-06 | |
| Metrics | Open source | Cloud Native Computing Foundation | Apache 2.0 | 2026-10-05 | |
| Metrics | Open source | InfluxData Inc. | MIT (agent); Telegraf Enterprise and the paid tier of Telegraf Controller are commercial | 2026-10-06 | |
| Error tracking | Commercial product | Functional Software, Inc. (Sentry) | FSL-1.1-Apache-2.0: source-available, each release becomes Apache 2.0 after two years (BSL 1.1 from 2019, BSD 3-Clause before); SDKs are MIT | 2026-10-05 |
What each provider calls it
- AWS
- CloudWatch (metrics, Logs, Application Signals; X-Ray traces in the CloudWatch console)
- Google Cloud
- Cloud Logging, Monitoring, Trace
- Azure
- Azure Monitor, Application Insights
- Open source & others
- OpenTelemetry, Prometheus, Grafana, Jaeger, GreptimeDB, ClickStack (ClickHouse with the HyperDX UI and an OpenTelemetry collector); agents: Fluentd, Fluent Bit, Logstash, Telegraf, Vector; hosted: Datadog, Better Stack, Sentry (errors and traces)
See it in a real stack
Architectures that use observability
In code · python
from opentelemetry import trace, metrics
tracer = trace.get_tracer("api")
latency = metrics.get_meter("api").create_histogram("http.server.request.duration", unit="s")
with tracer.start_as_current_span("GET /wells/{id}") as span: # trace
span.set_attribute("well.id", 42)
log.info("fetching well status", extra={"well_id": 42}) # log
latency.record(0.0385, {"http.route": "/wells/{id}"}) # metricWorth exploring
Often confused with
Where it came from1960–2026
The word comes from control theory: in 1960 Rudolf Kálmán described a system as observable if its internal state can be inferred from its outputs. Running software started with simpler questions. Nagios, first released as NetSaint in 1999, ran checks against hosts and services and sent an alert when something failed and again when it recovered. Graphite, and StatsD, which Etsy released in early 2011, let engineers send and chart almost any number they cared about.
Distributed systems outgrew that. Google’s 2010 Dapper paper described how one request could touch many services, written by different teams in different languages across thousands of machines, and how sampling made it cheap enough to trace requests in production. In 2012 SoundCloud, with hundreds of services and thousands of instances, started Prometheus because its StatsD and Graphite setup couldn’t slice metrics by instance or endpoint.
“Observability” became the name for the goal: being able to answer questions about production you didn’t think to ask in advance, rather than only watching checks and dashboards someone set up beforehand. Metrics, logs and traces became known as its three pillars. In 2019 the OpenTracing and OpenCensus projects merged into OpenTelemetry, a vendor-neutral way to produce all three, which graduated from the CNCF in May 2026.
Why it’s built this way
- Follow requests, not just machines
- When one user action crosses dozens of services, per-host graphs can show that something is slow but not where. A trace records each step of one request, with timings, so the slow hop stands out.
- Sample instead of recording everything
- Dapper’s designers needed tracing to be always on with low overhead, so they recorded only a fraction of requests. Sampling is still how tracing stays affordable at scale.
- Dimensions on every data point
- Labels such as instance, endpoint and status let you slice the same data in ways nobody planned for, which is the difference between monitoring known failures and exploring new ones.
- Standardise instrumentation, not the backend
- Instrumenting code is the expensive part. A vendor-neutral standard means you instrument once and can change where the data goes without touching application code.
Timeline
- 1960
Rudolf Kálmán defines observability in control theory
- 1999
NetSaint, later renamed Nagios, is released
- 2010
Google publishes the Dapper paper on distributed tracing
- 2012
Prometheus begins at SoundCloud
- 2019
OpenTracing and OpenCensus merge into OpenTelemetry
- 2026
OpenTelemetry graduates from the CNCF in May
- R. E. Kalman: On the general theory of control systems (IFAC, 1960)
- Wikipedia: Observability (control theory)
- Nagios: History (NetSaint, 1999)
- Nagios Core docs: Notifications (problems and recoveries)
- Etsy Code as Craft: Measure anything, measure everything (StatsD, Feb 2011) · archived copy, original
- Dapper, a large-scale distributed systems tracing infrastructure (2010)
- SoundCloud: Prometheus, monitoring at SoundCloud (2015)
- OpenTelemetry docs: Observability primer (unknown unknowns)
- Wikipedia: Observability (software), pillars of observability
- CNCF blog: A brief history of OpenTelemetry (so far), 2019
- CNCF: OpenTelemetry graduation announcement (May 2026)
Sources22
- OpenTelemetry docs: Observability primer
- OpenTelemetry docs: What is OpenTelemetry?
- OpenTelemetry docs: Python instrumentation
- OpenTelemetry semantic conventions: HTTP metrics (http.server.request.duration)
- AWS docs: What is Amazon CloudWatch?
- AWS docs: What is AWS X-Ray?
- Google Cloud docs: Cloud Logging overview
- Google Cloud docs: Cloud Monitoring overview
- Google Cloud docs: Cloud Trace overview
- Microsoft Learn: Azure Monitor overview
- Microsoft Learn: Application Insights overview
- Prometheus docs: Overview
- Grafana docs: Data sources
- Jaeger docs
- Datadog docs: Getting started
- Better Stack docs
- Sentry docs: Event grouping and fingerprints
- Fluent Bit manual: Fluentd and Fluent Bit
- Telegraf docs
- GreptimeDB docs: Architecture
- AWS X-Ray docs: Use a console (X-Ray in the CloudWatch console)
- AWS What’s New: CloudWatch Application Signals is generally available (June 2024)