OpenTelemetry

Before OpenTelemetry, instrumenting a system meant picking a vendor and wiring their proprietary agent into all your code — and switching vendors meant re-instrumenting everything. OpenTelemetry ended that: one open, vendor-neutral standard for producing metrics, logs, and traces, so you instrument once and send the data anywhere. It's become the default way to make systems observable.

The last three posts covered the pillars; this one covers the standard that unifies them. OpenTelemetry (OTel) is the open, vendor-neutral framework for generating and collecting telemetry — metrics, logs, and traces — with a single set of APIs and tools. It matters because it solves the two problems the pillars posts kept hinting at: consistent instrumentation across a heterogeneous system, and freedom from vendor lock-in. This post covers what OTel is, its architecture, and why it became the industry default.

The problem OTel solves

Before a standard, observability was a mess of proprietary, incompatible tooling:

OpenTelemetry fixes this by being a single, open, vendor-neutral standard for telemetry, backed broadly across the industry (a CNCF project). You instrument your code once against OTel’s APIs, and you can send that telemetry to any backend that supports OTel — swapping observability vendors becomes a configuration change, not a re-instrumentation project. That decoupling of instrumentation from backend is OTel’s core value.

What OpenTelemetry provides

OTel is a set of components that together cover producing and shipping telemetry:

Critically, OTel covers all three pillars in one framework with a shared context, so a single trace ID flows through traces and into logs and links to metrics — the correlated telemetry the first post argued for, built into the standard rather than bolted on.

The architecture: instrument, collect, export

OTel’s data flow separates producing telemetry from shipping it, which is what enables the vendor neutrality:

  Your services (instrumented with OTel SDK / auto-instrumentation)
        │  emit metrics, logs, traces via OTLP
        ▼
  OpenTelemetry Collector
        │  receive → process (batch, filter, sample, enrich) → export
        ▼
  Any backend(s): metrics store, log store, tracing backend, vendor platform

This separation is the whole point: the invasive, code-level part (instrumentation) is standardized and vendor-neutral, and the swappable part (backend) is decoupled behind the Collector. You own your instrumentation; you rent your backend, replaceably.

Why OpenTelemetry won

OTel became the industry default for concrete reasons worth understanding:

The practical guidance is straightforward: use OpenTelemetry for new instrumentation. It’s the standard, it prevents lock-in, it covers all three pillars with correlation built in, and it decouples your code from your backend. Whatever observability backend you choose (or change to), instrument with OTel so that choice stays yours. With telemetry being produced and collected in a standard way, the remaining question is how to turn it into reliability and action — SLOs and alerting, the next posts.

Key takeaways

Further reading

Sources & References

The OpenTelemetry standard