Ask Miss O11y: Making Sense of OpenTelemetry—Tracer and TracerProvider
Blog post from Honeycomb
OpenTelemetry is a comprehensive standard for application instrumentation designed with intricate abstractions by experts, which can pose challenges for developers unfamiliar with telemetry. It primarily involves using a Tracer and a TracerProvider, where the TracerProvider is responsible for sending telemetry data and can provide a Tracer to construct spans, essential for enabling observability in applications. The process varies across programming languages, requiring developers to import the OpenTelemetry API and request a Tracer, with language-specific syntax for starting spans. While OpenTelemetry API packages offer no-op Tracers by default—ensuring that applications without full OpenTelemetry setups remain functional—real telemetry data transmission requires implementing a TracerProvider configured with necessary components like Exporters and SpanProcessors. Setting up a global TracerProvider is crucial for effective telemetry, and examples in different languages, such as JavaScript and Go, are provided to help in configuring this setup.