# OpenTelemetry OTLP Exporter ![OpenTelemetry — An observability framework for cloud-native software.][splash] [splash]: https://raw.githubusercontent.com/open-telemetry/opentelemetry-rust/main/assets/logo-text.png This crate contains the [OpenTelemetry](https://opentelemetry.io/) Exporter implementation for [OTLP](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md). [![Crates.io: opentelemetry-otlp](https://img.shields.io/crates/v/opentelemetry-otlp.svg)](https://crates.io/crates/opentelemetry-otlp) [![Documentation](https://docs.rs/opentelemetry-otlp/badge.svg)](https://docs.rs/opentelemetry-otlp) [![LICENSE](https://img.shields.io/crates/l/opentelemetry-otlp)](https://github.com/open-telemetry/opentelemetry-rust/blob/main/opentelemetry-otlp/LICENSE) [![GitHub Actions CI](https://github.com/open-telemetry/opentelemetry-rust/workflows/CI/badge.svg)](https://github.com/open-telemetry/opentelemetry-rust/actions?query=workflow%3ACI+branch%3Amain) [![codecov](https://codecov.io/gh/open-telemetry/opentelemetry-rust/branch/main/graph/badge.svg)](https://codecov.io/gh/open-telemetry/opentelemetry-rust) [![Slack](https://img.shields.io/badge/slack-@cncf/otel/rust-brightgreen.svg?logo=slack)](https://cloud-native.slack.com/archives/C03GDP0H023) ## Overview OpenTelemetry is an Observability framework and toolkit designed to create and manage telemetry data such as traces, metrics, and logs. OpenTelemetry is vendor- and tool-agnostic, meaning that it can be used with a broad variety of Observability backends, including open source tools like [Jaeger] and [Prometheus], as well as commercial offerings. OpenTelemetry is *not* an observability backend like Jaeger, Prometheus, or other commercial vendors. OpenTelemetry is focused on the generation, collection, management, and export of telemetry. A major goal of OpenTelemetry is that you can easily instrument your applications or systems, no matter their language, infrastructure, or runtime environment. Crucially, the storage and visualization of telemetry is intentionally left to other tools. *[Supported Rust Versions](#supported-rust-versions)* [Prometheus]: https://prometheus.io [Jaeger]: https://www.jaegertracing.io ### What does this crate contain? This crate provides an [OTLP (OpenTelemetry Protocol)](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/README.md) exporter that sends telemetry to any OTLP-compatible backend such as the [OpenTelemetry Collector](https://github.com/open-telemetry/opentelemetry-collector) or vendor endpoints. Exporters are provided for all three signals - Logs, Metrics and Traces - and support both `grpc` and `http` (binary protobuf or JSON) transports. OTLP is the recommended way to export telemetry from OpenTelemetry, as it is vendor-neutral and supported by most observability backends. ### Related crates This crate exports telemetry produced via the OpenTelemetry SDK. It is commonly used alongside: - **[opentelemetry](https://crates.io/crates/opentelemetry):** The core OpenTelemetry API. - **[opentelemetry-sdk](https://crates.io/crates/opentelemetry-sdk):** The OpenTelemetry SDK implementation that this exporter plugs into. - **[opentelemetry-http](https://crates.io/crates/opentelemetry-http):** HTTP client abstractions used by the HTTP transport in this crate. - **[opentelemetry-proto](https://crates.io/crates/opentelemetry-proto):** Generated protobuf types used on the wire. ## Getting started See [docs](https://docs.rs/opentelemetry-otlp). ## Release Notes You can find the release notes (changelog) [here](https://github.com/open-telemetry/opentelemetry-rust/blob/main/opentelemetry-otlp/CHANGELOG.md). ## Supported Rust Versions OpenTelemetry is built against the latest stable release. The minimum supported version is 1.75.0. The current OpenTelemetry version is NOT guaranteed to build on Rust versions earlier than the minimum supported version. 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, three minor versions prior. Increasing the minimum supported compiler version is not considered a semver breaking change as long as doing so complies with this policy.