OpenTelemetry is two things at once: a specification and a set of implementations. The specification defines what a trace, a span, a metric, and a log record look like, and how they are encoded on the wire. The implementations are language SDKs (Go, Java, Python, JavaScript, .NET, Rust, and more) plus a standalone service called the Collector.
Before OpenTelemetry, every observability vendor shipped its own agent and its own SDK. If you instrumented your code with the Datadog tracer and later wanted to move to Grafana, you ripped out and rewrote the instrumentation. OpenTelemetry breaks that lock-in. You instrument once against the OTel API, and you choose where the data goes by swapping an exporter, not by rewriting your app.
It is the result of merging two earlier projects, OpenTracing and OpenCensus, in 2019. Today it is the second most active CNCF project after Kubernetes, and nearly every major observability vendor accepts its native protocol, OTLP.