DEV.co
Open-Source Observability · open-telemetry

opentelemetry-rust

opentelemetry-rust is the official Rust implementation of OpenTelemetry, a standardized toolkit for collecting and exporting telemetry data (traces, metrics, logs) from applications. It provides APIs and SDKs to instrument Rust code and send observability data to backends like Jaeger, Prometheus, or vendor-specific collectors.

Source: GitHub — github.com/open-telemetry/opentelemetry-rust
2.6k
GitHub stars
675
Forks
Rust
Primary language
Apache-2.0
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositoryopen-telemetry/opentelemetry-rust
Owneropen-telemetry
Primary languageRust
LicenseApache-2.0 — OSI-approved
Stars2.6k
Forks675
Open issues266
Latest releaseopentelemetry-semantic-conventions-0.32.1 (2026-06-26)
Last updated2026-07-07
Sourcehttps://github.com/open-telemetry/opentelemetry-rust

What opentelemetry-rust is

Multi-signal observability framework offering stable Logs and Metrics APIs/SDKs with RC-level OTLP exporters, beta Traces components, and support for distributed context propagation. Built on Rust 1.75+ with modular crate architecture (opentelemetry, opentelemetry-sdk, opentelemetry-otlp, exporters) and bridges to tracing and log crates.

Quickstart

Get the opentelemetry-rust source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/open-telemetry/opentelemetry-rust.gitcd opentelemetry-rust# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Distributed Tracing & APM

Instrument Rust microservices to emit traces to Jaeger, Zipkin, or OTLP-compatible backends; track request flows across service boundaries with distributed context.

Metrics Export to Prometheus

Collect application metrics (counters, histograms, gauges) and export to Prometheus or via OTLP; opentelemetry-prometheus exporter provides native integration.

Unified Observability in Cloud-Native Apps

Send logs, metrics, and traces to a single OpenTelemetry Collector for vendor-agnostic processing and routing to multiple backends; ideal for Kubernetes and polyglot deployments.

Implementation considerations

  • Choose appropriate stability level: Logs and Metrics APIs/SDKs are stable; Traces remain beta. Beta components may have breaking changes in minor versions.
  • Select exporter based on backend: OTLP (production-recommended), Prometheus (metrics), stdout (debug), or contrib crates for vendor-specific endpoints.
  • Integrate with existing logging: Use opentelemetry-appender-tracing to bridge tracing logs or opentelemetry-appender-log to bridge log crate logs into OTel.
  • Configure sampling strategies to control cardinality and overhead; understand how context propagation interacts with async Rust code and task spawning.
  • Review VERSIONING.md for stability guarantees; subscribe to CNCF Slack (#otel/rust) for breaking changes and updates.

When to avoid it — and what to weigh

  • Simple single-service logging needs — If you only need traditional logging without distributed tracing or metrics collection, the opentelemetry overhead is unnecessary; use tracing or log crates directly.
  • Traces API/SDK stability critical — Traces-API and Traces-SDK remain at beta status; if stable trace guarantees are required for production, wait for stable release or evaluate mature alternatives.
  • Non-standard observability backends — If your backend does not support OTLP or vendor-specific exporters listed in the OTel Registry, you may need to write custom exporters.
  • Real-time performance-sensitive hot paths — Telemetry instrumentation adds overhead; benchmark carefully in latency-critical paths and use sampling strategies to minimize impact.

License & commercial use

Licensed under Apache License 2.0 (Apache-2.0), a permissive OSI-approved license compatible with most commercial and open-source projects.

Apache-2.0 permits commercial use, modification, and distribution with proper attribution and no warranty claims. Review Apache-2.0 terms directly; consult legal counsel if combining with copyleft dependencies or if license compliance audit is required.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationStrong
License clarityClear
Deployment complexityModerate
DEV.co fitStrong
Assessment confidenceHigh
Security considerations

Apache-2.0 licensed with OpenSSF Scorecard and Best Practices badges indicating security development workflow. FOSSA status badges present for license and security scanning. No zero-day disclosures stated. Telemetry data export carries data privacy implications—ensure OTLP endpoint uses TLS and sanitize sensitive attributes before export. Review exporter configuration for credential handling (API keys, mTLS certs).

Alternatives to consider

Jaeger Rust client

Focuses on tracing only; does not provide metrics or logs; less flexible for multi-signal observability.

Prometheus Rust client

Metrics-only library; no trace or log support; requires custom integration for full observability.

Datadog APM (agent-based)

Vendor-locked, closed-source; no vendor-agnostic setup; exporter integration possible but less flexible than OTel.

Software development agency

Build on opentelemetry-rust with DEV.co software developers

Start with the getting-started examples for logs, metrics, or traces. Deploy to your preferred backend (Jaeger, Prometheus, OTel Collector) and gain unified visibility into your Rust applications.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

opentelemetry-rust FAQ

Is opentelemetry-rust production-ready?
Logs and Metrics (API and SDK) are stable. Traces remain beta; breaking changes possible in minor versions. OTLP exporter is RC. Evaluate your stability needs against the status table in README.
Do I need to run an OpenTelemetry Collector?
Not required; you can export directly to backends (Jaeger, Prometheus, vendor endpoint). Collector adds benefits: data processing, multi-backend routing, tail sampling. Recommended for production at scale.
How does OpenTelemetry interact with my existing tracing or log crate?
opentelemetry-appender-tracing bridges the tracing crate to OTel logs; opentelemetry-appender-log bridges the log crate. You can use both simultaneously without replacing your logging infrastructure.
What is the performance overhead?
Varies by instrumentation density and sampling. Use the benchmarks dashboard (linked in README) and test in your workload. Sampling strategies reduce overhead; always benchmark before production deployment.

Work with a software development agency

From first prototype to production, DEV.co delivers software development services around tools like opentelemetry-rust. Our software development agency staffs experienced software developers and web developers for custom software development, web development, integrations, and ongoing support across open-source observability and beyond.

Ready to Add Observability to Your Rust Services?

Start with the getting-started examples for logs, metrics, or traces. Deploy to your preferred backend (Jaeger, Prometheus, OTel Collector) and gain unified visibility into your Rust applications.