// the find
open-telemetry/opentelemetry-rust
The Rust OpenTelemetry implementation
The official OpenTelemetry SDK for Rust, covering metrics, logs, and traces with OTLP export and integrations for Prometheus, Jaeger, and Zipkin. Aimed at Rust backend developers who need production observability and want to stay in the OTel ecosystem rather than rolling their own instrumentation. Actively maintained by Microsoft and Datadog engineers under the CNCF umbrella.
Metrics-API and Metrics-SDK are marked Stable, which matters for production use — you're not building on shifting sand for the most common observability signal. The appender-tracing bridge is genuinely useful: if you're already using the tracing crate (most Rust async code is), you wire it up once and your existing log calls flow into OTel without rewriting anything. Integration tests hit a real OTel Collector and diff against expected JSON fixtures, so regressions in protocol compliance are caught rather than just unit-tested in isolation. Benchmarks are published to a dashboard, not just run locally — you can see if a PR regressed allocation counts in the hot path.
Traces-API and Traces-SDK are still Beta, which is the signal most people actually reach for first — surprising given this is a mature project. The Prometheus exporter is also only Beta, so if your stack is Prometheus-native you're taking on some API stability risk. Context and Propagators being Beta means distributed trace propagation across service boundaries could change under you. The Logs-OTLP Exporter landing at RC rather than Stable despite the Logs SDK being Stable creates an awkward gap where you have a stable emitter but a not-quite-stable wire format — annoying for anyone who needs to sign off on production readiness.