OpenTelemetry Go is a framework for generating and collecting distributed traces, metrics, and logs from Go applications. It provides a standardized telemetry instrumentation API for adding observability markers to code and a corresponding SDK for processing and emitting these signals.
The project utilizes a configurable observability pipeline to sample and export telemetry data to external backends using the OTLP wire protocol. It features a pluggable export system and a separation between the public API and the SDK implementation, allowing telemetry to be routed to third-party platforms without requiring changes to application source code.
The library covers several high-level observability domains, including distributed tracing to track request paths across service boundaries and performance metrics collection for monitoring system health. It supports both manual instrumentation for business logic and automatic instrumentation for frameworks and HTTP servers, while using context propagation to correlate signals across distributed network messages.