Why OpenTelemetry Rust?
The Rust implementation of OpenTelemetry provides a performant, type-safe SDK for instrumenting your applications with observability capabilities. Export and analyze telemetry data using Prometheus, Jaeger, and other observability tools. Key capabilities:- Traces - Distributed tracing to track requests across services
- Metrics - Counters, histograms, gauges, and observable instruments
- Logs - Structured logging with context propagation
- Exporters - OTLP, Prometheus, Jaeger, Zipkin, and stdout
- Context propagation - W3C Trace Context, baggage, and custom propagators
Signal status
| Signal/Component | Status |
|---|---|
| Context | Beta |
| Baggage | RC |
| Propagators | Beta |
| Logs API | Stable |
| Logs SDK | Stable |
| Logs OTLP Exporter | RC |
| Logs Appender (Tracing) | Stable |
| Metrics API | Stable |
| Metrics SDK | Stable |
| Metrics OTLP Exporter | RC |
| Traces API | Beta |
| Traces SDK | Beta |
| Traces OTLP Exporter | Beta |
Getting started
Installation
Add OpenTelemetry to your Rust project with Cargo
Quickstart
Get up and running with a working example in minutes
API Reference
Explore the complete API documentation on docs.rs
Examples
Browse real-world examples for traces, metrics, and logs
Core crates
The OpenTelemetry Rust implementation is distributed across several crates:opentelemetry
Core API crate containing Context, Baggage, Propagators, and APIs for Logging, Metrics, and Tracing
opentelemetry-sdk
Official SDK implementation with Logging SDK, Metrics SDK, Tracing SDK, and propagator implementations
opentelemetry-otlp
Export telemetry in OTLP format to collectors, backends like Jaeger and Prometheus, or vendor endpoints
opentelemetry-stdout
Export logs, metrics, and traces to stdout for learning and debugging
Appenders and integrations
OpenTelemetry Rust does not provide a new logging API. Instead, it bridges existing logging libraries to the OpenTelemetry log data model.
opentelemetry-appender-tracing- Bridge for the tracing crate (recommended for new projects)opentelemetry-appender-log- Bridge for the log crate
opentelemetry-prometheus- Prometheus metrics exporteropentelemetry-zipkin- Zipkin trace exporteropentelemetry-jaeger-propagator- Jaeger propagation formatopentelemetry-semantic-conventions- Standard names and semantic conventions
Supported Rust versions
OpenTelemetry is built against the latest stable release. The current stable Rust compiler and the three most recent minor versions before it will always be supported. For example, if the current stable compiler version is 1.49, the minimum supported version will not be increased past 1.46. Increasing the minimum supported compiler version is not considered a semver breaking change.Community
Join the OpenTelemetry Rust community:- Slack: #otel-rust on CNCF Slack
- SIG Meetings: Alternating weeks between Tuesday 9:00 AM PT and Wednesday 8:00 AM PT
- Meeting Notes: Google Doc
- GitHub: opentelemetry-rust
Next steps
Install OpenTelemetry
Follow the installation guide to add the necessary crates to your project
Try the quickstart
Get hands-on with a complete working example that demonstrates traces, metrics, or logs
Choose your exporter
Select an exporter based on your observability backend (OTLP, Prometheus, Jaeger, etc.)