OpenTelemetry is a vendor-neutral standard and set of libraries for generating telemetry — traces, metrics and logs — from applications and infrastructure, and shipping it anywhere. It is a CNCF project formed from the merger of OpenTracing and OpenCensus, and it is now the second most active project in the foundation, supported by effectively every observability vendor. Its purpose is narrow and deliberate: it owns instrumentation and transport, and it does not store, query or visualise anything.
The project has four separable parts, and confusing them is the most common source of trouble. The specification defines the data model and behaviour. The API is what application code calls and is designed to be a no-op when nothing is configured. The SDK is the implementation that samples, batches and exports. OTLP is the wire protocol everything speaks. Because the API and SDK are separate, a library can be instrumented once and remain useful whether the application exports to a commercial platform, an open-source backend, or nowhere at all.
The OpenTelemetry Collector is the piece that changes operational practice most. It is a standalone binary that receives telemetry in many formats, processes it — batching, filtering, redacting, enriching with Kubernetes attributes, tail-sampling traces — and exports it to one or more destinations. Running a Collector as a node agent and a gateway tier means applications talk to one endpoint forever, while routing, sampling and vendor choice become configuration changes rather than redeployments. Alongside this sit semantic conventions: agreed attribute names for HTTP, databases, messaging, cloud and Kubernetes, which are what make telemetry from different teams and languages actually comparable.
Why this skill matters now
For a decade, instrumenting an application meant adopting a vendor's agent, and changing vendor meant reinstrumenting everything. That cost was real enough to keep teams on platforms they had outgrown. OpenTelemetry removes it by standardising the layer where the lock-in lived, which is why adoption has moved from early-adopter to default in most new architectures.
The practical consequence is that instrumentation has become a platform concern rather than a per-team one. Someone has to decide the semantic conventions, run the Collector tier, set the sampling policy, and keep language SDK versions moving across dozens of services. That is an engineering role, and it is what organisations are recruiting for — not familiarity with a dashboard.
Depth matters here more than breadth. Adding auto-instrumentation to one service takes an afternoon. Designing a Collector topology that survives a backend outage, choosing between head and tail sampling with a cost model behind the decision, handling context propagation across message queues and async code, and migrating a legacy OpenTracing estate without losing trace continuity — that is the work, and it is where most rollouts stall.