// the find
open-telemetry/opentelemetry-go
OpenTelemetry Go API and SDK
The official Go implementation of OpenTelemetry — the CNCF standard for distributed tracing, metrics, and logs. Traces and metrics are stable; logs just hit beta. If you're running Go services and want vendor-neutral observability that works with Jaeger, Grafana, Datadog, and everything else in the OTLP ecosystem, this is the only serious option.
The API/SDK separation is done right — you can instrument your library against the API package without pulling in any exporter dependencies, and consumers wire up the SDK at startup. The exporter matrix covers OTLP (gRPC + HTTP), Prometheus, stdout, and Zipkin out of the box, all in the same repo so they stay in sync with the core. Test coverage is thorough and they run OSS-Fuzz continuously, which is rare for observability SDKs. The bridge packages for OpenCensus and OpenTracing mean you can migrate incrementally rather than ripping everything out at once.
The module structure is fragmented — each exporter lives in its own Go module with its own go.mod, so a project using OTLP gRPC + Prometheus ends up managing multiple module versions that can drift. Logs being in beta in 2026 is a long time to be unstable for a signal that's been in the spec for years. The getting-started story leans heavily on external docs and contrib repos (instrumentation libraries live in a separate repo), so wiring up a real app requires bouncing between three or four places before anything shows up in your backend.