PackageTrack
Sign in Get early access

opentelemetry-otlp

Exporter for the OpenTelemetry Collector

0.32.0 141M downloads/mo #647 most downloaded on crates.io open-telemetry/opentelemetry-rust

What this package is like to depend on

Last release 3 months ago

08 May 2026

Ships fairly regularly

a new release about every 2 months

Nearly every release is documented

notes for 25 of 26 stable releases

Nothing withdrawn

no release was ever pulled

6 years old

26 releases · first in 2020

3 releases in the last 12 months

see the full history below

Release timeline

26 releases · Aug 2020 to May 2026
2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 26
  1. 0.32.0 08 May 2026
    Release notes

    "opentelemetry-otlp 0.32.0 release."

    Open source →
    Release notes

    Released 2026-May-08

    • Add tls-provider-agnostic feature flag for environments that require a custom crypto backend (e.g., OpenSSL for FIPS compliance). Enables TLS code paths without bundling ring or aws-lc-rs.
    • Add build() directly on SpanExporterBuilder, MetricExporterBuilder, and LogExporterBuilder (before selecting a transport), which auto-selects the transport based on the OTEL_EXPORTER_OTLP_PROTOCOL environment variable or enabled features. #3394
    • Breaking Removed ExportConfig, HasExportConfig, with_export_config(), HasTonicConfig, HasHttpConfig, TonicConfig, and HttpConfig from public API. Use the public WithExportConfig, WithTonicConfig, and WithHttpConfig trait methods instead, which remain unchanged.
    • The gRPC/tonic OTLP exporter's build method now returns an error for all signals (traces, metrics, logs) when an https:// endpoint is configured but no TLS feature (tls-ring or tls-aws-lc) is enabled, instead of silently sending unencrypted traffic. When a TLS feature is enabled and an https:// endpoint is used without an explicit .with_tls_config(), a default ClientTlsConfig is automatically applied. #3182
    • Prevent auth tokens from leaking in export error messages. gRPC and HTTP exporter errors no longer include potentially sensitive server responses (e.g., authentication tokens echoed back). Error messages returned to SDK processors contain only the gRPC status code or HTTP status code. Full details are logged at DEBUG level only. #3021
    • Surface pre-flight transport error details at ERROR level when grpc-tonic OTLP export fails due to a local misconfiguration. When the returned tonic::Status wraps a local transport error (invalid URL, connect failure, DNS), its source chain (e.g., "transport error: invalid URI") is appended to the returned error so SDK processors surface it at ERROR without requiring DEBUG logging. Server-returned gRPC status messages remain DEBUG-only to preserve the auth-token leak safeguards from #3021. #3331
    • Add support for per-signal protocol environment variables: OTEL_EXPORTER_OTLP_TRACES_PROTOCOL, OTEL_EXPORTER_OTLP_METRICS_PROTOCOL, OTEL_EXPORTER_OTLP_LOGS_PROTOCOL. These allow configuring different transport protocols per signal type. Signal-specific vars take precedence over generic OTEL_EXPORTER_OTLP_PROTOCOL. The auto-select build() method on each exporter builder now respects the full priority chain: signal-specific env var > generic env var > feature-based default.
    • Transport/protocol mismatch validation: HTTP transport returns InvalidConfig when gRPC protocol is requested; gRPC transport returns InvalidConfig when an HTTP protocol is requested.
    • Breaking: Protocol::default() no longer consults the OTEL_EXPORTER_OTLP_PROTOCOL environment variable. It now returns only the feature-based default (http-json > http-proto > grpc-tonic). Protocol resolution from environment variables is handled internally by the exporter builders. Users who relied on Protocol::default() to read env vars should use Protocol::from_env() instead.
    • Add support for OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE environment variable to configure metrics temporality. Accepted values: cumulative (default), delta, lowmemory (case-insensitive). Programmatic .with_temporality() overrides the env var.
    • Fix NoHttpClient error when multiple HTTP client features are enabled by using priority-based selection (reqwest-client > hyper-client > reqwest-blocking-client). #2994
    • Add partial success response handling for OTLP exporters (traces, metrics, logs) per OTLP spec. Exporters now log warnings when the server returns partial success responses with rejected items and error messages. #865
    • Refactor internal-logs feature in opentelemetry-otlp to reduce unnecessary dependencies3191
    • Fixed [#2777](https://github.com/open-telemetry/opentelemetry rust/issues/2777) to properly handle shutdown_with_timeout() when using grpc-tonic.
    • Deprecate tls feature in favor of explicit tls-ring and tls-aws-lc features. Migration: Replace tls with tls-ring (or tls-aws-lc). Users of tls-roots or tls-webpki-roots must now also enable one of these.
    • Prevent logging of header values in OTLP tonic exporter #3465
    Open source →
    Release notes

    Released 2026-May-08

    Open source →
  2. 0.31.1 19 Mar 2026

    Nothing published for this version

  3. 0.31.0 25 Sep 2025
    Release notes

    Released 2025-Sep-25

    • Update opentelemetry-proto and opentelemetry-http dependency version to 0.31.0
    • Add HTTP compression support with gzip-http and zstd-http feature flags
    • Add retry with exponential backoff and throttling support for HTTP and gRPC exporters This behaviour is opt in via the experimental-grpc-retry and experimental-http-retry flags on this crate. You can customize the retry policy using the with_retry_policy on the exporter builders.
    Open source →
    Release notes

    Released 2025-Sep-25

    • Update to v1.34.0 of the semantic conventions.
    Open source →
  4. 0.30.0 23 May 2025
    Release notes

    Released 2025-May-23

    • Update opentelemetry dependency version to 0.30
    • Update opentelemetry_sdk dependency version to 0.30
    • Update opentelemetry-http dependency version to 0.30
    • Update opentelemetry-proto dependency version to 0.30
    • Update tonic dependency version to 0.13
    • Re-export tonic types under tonic_types 2898
    • Publicly re-exported MetricExporterBuilder, SpanExporterBuilder, and LogExporterBuilder types, enabling users to directly reference and use these builder types for metrics, traces, and logs exporters. 2966
    Open source →
    Release notes

    Released 2025-May-23

    • Update to v1.32.0 of the semantic conventions.
    Open source →
  5. 0.29.0 22 Mar 2025
    Release notes

    Released 2025-Mar-21

    • Update opentelemetry dependency version to 0.29

    • Update opentelemetry_sdk dependency version to 0.29

    • Update opentelemetry-http dependency version to 0.29

    • Update opentelemetry-proto dependency version to 0.29

    • The OTEL_EXPORTER_OTLP_TIMEOUT, OTEL_EXPORTER_OTLP_TRACES_TIMEOUT, OTEL_EXPORTER_OTLP_METRICS_TIMEOUT and OTEL_EXPORTER_OTLP_LOGS_TIMEOUT are changed from seconds to milliseconds.

    • Fixed .with_headers() in HttpExporterBuilder to correctly support multiple key/value pairs. #2699

    • Fixed #2770 partially to properly handle shutdown() when using http. (tonic still does not do proper shutdown)

    • Breaking ExporterBuilder's build() method now Result with ExporterBuildError being the Error variant. Previously it returned signal specific errors like LogError from the opentelemetry_sdk, which are no longer part of the sdk. No changes required if you were using unwrap/expect. If you were matching on the returning Error enum, replace with the enum ExporterBuildError. Unlike the previous Error which contained many variants unrelated to building an exporter, the new one returns specific variants applicable to building an exporter. Some variants might be applicable only on select features. Also, now unused Error enum is removed.

    • Breaking ExportConfig's timeout field is now optional(Option<Duration>)

    • Breaking Export configuration done via code is final. ENV variables cannot be used to override the code config. Do not use code based config, if there is desire to control the settings via ENV variables. List of ENV variables and corresponding setting being affected by this change.

      • OTEL_EXPORTER_OTLP_ENDPOINT -> ExportConfig.endpoint
      • OTEL_EXPORTER_OTLP_TIMEOUT -> ExportConfig.timeout
    Open source →
    Release notes

    Released 2025-Mar-21

    • Update to v1.31.0 of the semantic conventions.
    Open source →
  6. 0.28.0 10 Feb 2025
    Release notes

    Released 2025-Feb-10

    • Update opentelemetry dependency version to 0.28.
    • Update opentelemetry_sdk dependency version to 0.28.
    • Update opentelemetry-http dependency version to 0.28.
    • Update opentelemetry-proto dependency version to 0.28.
    • Bump msrv to 1.75.0.
    • Feature flag "populate-logs-event-name" is removed as no longer relevant. LogRecord's event_name() is now automatically populated on the newly added "event_name" field in LogRecord proto definition.
    • Remove "grpc-tonic" feature from default, and instead add "http-proto" and "reqwest-blocking-client" features as default, to align with the specification. 2516
    • Remove unnecessarily public trait opentelemetry_otlp::metrics::MetricsClient and MetricExporter::new(..) method. Use MetricExporter::builder()...build() to obtain MetricExporter.
    • The HTTP clients (reqwest, reqwest-blocking, hyper) now support the export timeout interval configured in below order
      • Signal specific env variable OTEL_EXPORTER_OTLP_TRACES_TIMEOUT, OTEL_EXPORTER_OTLP_LOGS_TIMEOUT or OTEL_EXPORTER_OTLP_TIMEOUT.
      • OTEL_EXPORTER_OTLP_TIMEOUT env variable.
      • with_http().with_timeout() API method of LogExporterBuilder and SpanExporterBuilder and MetricsExporterBuilder.
      • The default interval of 10 seconds is used if none is configured.
    Open source →
    Release notes

    Released 2025-Feb-10

    • Update to v1.29.0 of the semantic conventions.
    • Bump msrv to 1.75.0.
    Open source →
  7. 0.27.0 12 Nov 2024
    Release notes

    Released 2024-Nov-11

    • Update opentelemetry dependency version to 0.27

    • Update opentelemetry_sdk dependency version to 0.27

    • Update opentelemetry-http dependency version to 0.27

    • Update opentelemetry-proto dependency version to 0.27

    • BREAKING:

      • (#2217) Replaced: The MetricsExporterBuilder interface is modified from with_temporality_selector to with_temporality example can be seen below: Previous Signature:

        MetricsExporterBuilder::default().with_temporality_selector(DeltaTemporalitySelector::new())
        

        Updated Signature:

        MetricsExporterBuilder::default().with_temporality(opentelemetry_sdk::metrics::Temporality::Delta)
        
      • (#2221) Replaced:

        • The opentelemetry_otlp::new_pipeline().{trace,logging,metrics}() interface is now replaced with {TracerProvider,SdkMeterProvider,LoggerProvider}::builder().
        • The opentelemetry_otlp::new_exporter() interface is now replaced with {SpanExporter,MetricsExporter,LogExporter}::builder().

        Pull request #2221 has a detailed migration guide in the description. See example below, and basic-otlp for more details:

        Previous Signature:

        let logger_provider: LoggerProvider = opentelemetry_otlp::new_pipeline()
          .logging()
          .with_resource(RESOURCE.clone())
          .with_exporter(
              opentelemetry_otlp::new_exporter()
                  .tonic()
                  .with_endpoint("http://localhost:4317")
          )
          .install_batch(runtime::Tokio)?;
        

        Updated Signature:

        let exporter = LogExporter::builder()
            .with_tonic()
            .with_endpoint("http://localhost:4317")
            .build()?;
        
        Ok(LoggerProvider::builder()
            .with_resource(RESOURCE.clone())
            .with_batch_exporter(exporter, runtime::Tokio)
            .build())
        
      • Renamed

        • (#2255): de-pluralize Metric types.
          • MetricsExporter -> MetricExporter
          • MetricsExporterBuilder -> MetricExporterBuilder
      • #2263 Support hyper client for opentelemetry-otlp. This can be enabled using flag hyper-client. Refer example: https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-otlp/examples/basic-otlp-http

    Open source →
    Release notes

    Released 2024-Nov-11

    • Bump MSRV to 1.70 #2179
    • Update to v1.28.0 of the semantic conventions.
    Open source →
  8. 0.26.0 01 Oct 2024
    Release notes

    Released 2024-Sep-30

    • Update opentelemetry dependency version to 0.26
    • Update opentelemetry_sdk dependency version to 0.26
    • Update opentelemetry-http dependency version to 0.26
    • Update opentelemetry-proto dependency version to 0.26
    • Bump MSRV to 1.71.1 2140
    Open source →
    Release notes

    Released 2024-Sep-30

    Changed

    • Starting with this version, this crate will use Weaver for the generation of the semantic conventions.
    • Breaking Introduced a new feature semconv_experimental to enable experimental semantic conventions. This feature is disabled by default.
    Open source →
  9. 0.25.0 09 Sep 2024
    Release notes
    • Update opentelemetry dependency version to 0.25
    • Update opentelemetry_sdk dependency version to 0.25
    • Update opentelemetry-http dependency version to 0.25
    • Update opentelemetry-proto dependency version to 0.25
    • Starting with this version, this crate will align with opentelemetry crate on major,minor versions.
    • Breaking The logrecord event-name is added as an attribute only if the feature flag populate-logs-event-name is enabled. The name of the attribute is changed from "name" to "event.name". 1994, 2050
    Open source →
    Release notes

    Changed

    • Starting with this version, this crate will align with opentelemetry crate on major,minor versions.
    • Update to v1.27.0 of the semantic conventions. #2000
    Open source →
  10. 0.17.0 15 Jul 2024
    Release notes
    • Add "metrics", "logs" to default features. With this, default feature list is "trace", "metrics" and "logs".
    • Breaking OtlpMetricPipeline.build() no longer invoke the global::set_meter_provider. User who setup the pipeline must do it themselves using global::set_meter_provider(meter_provider.clone());.
    • Add with_resource on OtlpLogPipeline, replacing the with_config method. Instead of using .with_config(Config::default().with_resource(RESOURCE::default())) users must now use .with_resource(RESOURCE::default()) to configure Resource when using OtlpLogPipeline.
    • Breaking The methods OtlpTracePipeline::install_simple() and OtlpTracePipeline::install_batch() would now return TracerProvider instead of Tracer. These methods would also no longer set the global tracer provider. It would now be the responsibility of users to set it by calling global::set_tracer_provider(tracer_provider.clone());. Refer to the basic-otlp and basic-otlp-http examples on how to initialize OTLP Trace Exporter.
    • Breaking Correct the misspelling of "webkpi" to "webpki" in features #1842
    • Bump MSRV to 1.70 #1840
    • Fixing the OTLP HTTP/JSON exporter. #1882 - The exporter was broken in the previous release.
    • Breaking 1869 The OTLP logs exporter now overrides the InstrumentationScope::name field with the target from LogRecord, if target is populated.
    • Groups batch of LogRecord and Span by their resource and instrumentation scope before exporting, for better efficiency #1873.
    • Breaking Update to http v1 and tonic v0.12 #1674
    • Update opentelemetry dependency version to 0.24
    • Update opentelemetry_sdk dependency version to 0.24
    • Update opentelemetry-http dependency version to 0.13
    • Update opentelemetry-proto dependency version to 0.7
    Open source →
  11. 0.16.0 15 May 2024
    Release notes

    Fixed

    • URL encoded values in OTEL_EXPORTER_OTLP_HEADERS are now correctly decoded. #1578
    • OTLP exporter will not change the URL added through ExportConfig #1706
    • Default grpc endpoint will not have path based on signal(e.g /v1/traces) #1706
    • Fix feature flags for OTEL_EXPORTER_OTLP_PROTOCOL_DEFAULT #1746

    Added

    • Added DeltaTemporalitySelector (#1568)
    • Add webpki-roots features to reqwest and tonic backends

    Changed

    • Breaking Remove global provider for Logs #1691
      • The method OtlpLogPipeline::install_simple() and OtlpLogPipeline::install_batch() now return LoggerProvider instead of Logger. Refer to the basic-otlp and basic-otlp-http examples for how to initialize OTLP Log Exporter to use with OpenTelemetryLogBridge and OpenTelemetryTracingBridge respectively.
    • Update opentelemetry dependency version to 0.23
    • Update opentelemetry_sdk dependency version to 0.23
    • Update opentelemetry-http dependency version to 0.12
    • Update opentelemetry-proto dependency version to 0.6
    Open source →
    Release notes

    Changed

    • Breaking Moved duplicated (and unrelated) attributes from opentelemetry_semantic_conventions::trace and opentelemetry_semantic_conventions::resource into opentelemetry_semantic_conventions::attribute (which now contains all semantic attributes). trace and resource now only contain references to attributes which fall under their respective category.

    Added

    • Created opentelemetry_semantic_conventions::metric to store metric semantic conventions.
    Open source →
  12. 0.15.0 25 Feb 2024
    Release notes

    Added

    • Support custom channels in topic exporters #1335
    • Allow specifying OTLP Tonic metadata from env variable #1377

    Changed

    • Update to tonic 0.11 and prost 0.12 #1536

    Fixed

    • Fix tonic() to the use correct port. #1556

    Removed

    • Breaking Remove support for surf HTTP client #1537
    • Breaking Remove support for grpcio transport #1534
    Open source →
    Release notes

    Changed

    Open source →
  13. 0.14.0 06 Nov 2023
    Release notes

    Added

    • Add build_{signal}_exporter methods to client builders #1187
    • Add grpcio metrics exporter #1202
    • Allow specifying OTLP HTTP headers from env variable #1290

    Changed

    • Bump MSRV to 1.65 #1318
    • Bump MSRV to 1.64 #1203
    • Changed dependency from opentelemetry_api to opentelemetry as the latter is now the API crate. #1226
    • Make NoExporterBuilder a compiling time error #1272
    Open source →
    Release notes

    Changed

    • Breaking Replaced Key constants with &'static str for tracing compatibility #1334
    Open source →
  14. 0.13.0 30 Jul 2023
    Release notes

    Added

    • Add OTLP HTTP Metrics Exporter #1020.
    • Add tonic compression support #1165.

    Changed

    • make the tonic/transport feature optional #985
    • update to opentelemetry-api v0.20.0

    Fixed

    • Fix a missing import when http-proto is enabled without grpc-sys #1081
    Open source →
    Release notes

    Changed

    Open source →
  15. 0.12.0 26 Mar 2023
    Release notes

    Added

    • Add batch config for otlp pipeline #979.
    • Add tonic interceptor #901.

    Changed

    • Update opentelemetry to 0.19.
    • Update opentelemetry-semantic-conventions to 0.11.
    • Update opentelemetry-http to 0.8.
    • Bump MSRV to 1.57 #953.
    • Add User-Agent header on all exporters #896.
    • Improve OTLP exporter environment variable handling #912.
    • Fix the issue where tonic exporter builder ignored provided metadata #937.
    • Export MetricsExporterBuilder #943.
    • Report OTLP http export errors #945.
    • Change to export using v0.19.0 protobuf definitions. #989.
    • Update dependencies and bump MSRV to 1.60 #969.
    Open source →
    Release notes

    Changed

    • Update to v1.21.0 spec
    • Update to opentelemetry-api v0.20.0
    Open source →
  16. 0.11.0 13 Sep 2022
    Release notes

    Changed

    • reduce tokio feature requirements #750
    • Update to opentelemetry v0.18.0
    • Update to opentelemetry-http v0.7.0
    • Update tonic to 0.7 #783
    • Automatically add traces / metrics paths #806
    Open source →
    Release notes

    Changed

    • Update to opentelemetry v0.19.
    • Update to opentelemetry_http v0.8.
    • Bump MSRV to 1.57 #953.
    • Update to v1.17.0 spec #960.
    • Update dependencies and bump MSRV to 1.60 #969.
    Open source →
  17. 0.10.0 22 Jan 2022
    Release notes

    Changed

    • Update to opentelemetry v0.17.0
    • Update to opentelemetry-http v0.6.0
    • Update tonic to 0.6 #660
    Open source →
    Release notes

    Changed

    • update to v1.9 spec #754
    • Update to opentelemetry v0.18.0
    Open source →
  18. 0.9.0 07 Aug 2021
    Release notes

    Changed

    • Merge metrics and tracing pipeline #585
    • Update to opentelemetry v0.16.0

    Fixed

    • MetricsExporterBuilder drops exporter_pipeline #590
    • Improve error messages #603
    • Upgrade tonic to 0.5.x #597
    Open source →
    Release notes

    Changed

    • Update to opentelemetry v0.17.0
    Open source →
  19. 0.8.0 17 Jun 2021
    Release notes

    Changed

    • Update grpcio version and add the coverage badge #556
    • Update to opentelemetry v0.15.0
    Open source →
    Release notes

    Changed

    • Update to opentelemetry v0.16.0
    Open source →
  20. 0.7.0 10 May 2021
    Release notes

    Added

    • adding otlp http transport, using proto binary #516

    Fixed

    • docs cannot compile #507
    • exporter cannot merge IntSum correctly. #518
    • update metrics proto and metric transformation #535

    Changed

    • Allow users to bring their own tonic channel #515
    • Remove default surf features #546
    • Update to opentelemetry v0.14.0

    v0.6.0

    Added

    • Examples on how to connect to an external otlp using tonic, tls and tokio #449
    • Examples on how to connect to an external otlp using grpcio and tls #450
    • with_env method for OtlpPipelineBuilder to use environment variables to config otlp pipeline #451
    • Update tracing-grpc example to include extractors and injectors #464
    • Mentioned service.name resource in README #476

    Changed

    • Update to opentelemetry v0.13.0
    • Update tonic-build dependency to 0.4 #463
    • Update the opentelemetry pipeline to use API to choose grpc layer instead of feature #467
    • Rename trace config with_default_sampler to with_sampler #482

    Removed

    • Removed from_env and use environment variables to initialize the configurations by default #459
    • Removed support for running tonic without tokio runtime #483
    Open source →
    Release notes

    Changed

    • Update to spec version 1.4.0 #570
    • Update to opentelemetry v0.15.0
    Open source →
  21. 0.6.0 24 Mar 2021
    Release notes

    Changed

    • Update to spec version 1.3.0 #547
    • Update to opentelemetry v0.14.0
    Open source →
  22. 0.5.0 22 Jan 2021
    Release notes

    Added

    • Otlp metric exporter #402
    • Otlp exporter integration test #424

    Changed

    • Update to opentelemetry v0.12.0
    • Update tokio to v1 #421
    Open source →
    Release notes

    Changed

    • Update to opentelemetry v0.13.0

    Removed

    • Removed from_env and use environment variables to initialize the configurations by default #459
    Open source →
  23. 0.4.0 29 Dec 2020
    Release notes

    Added

    • Tonic support #352
    • Add openssl feature flags for grpcio #367

    Changed

    • Update to opentelemetry v0.11.0
    • Update default otlp port to 4317 #388

    Fixed

    • Propagate Resource information #366
    • Propagate Resource in tonic as well #390
    Open source →
    Release notes

    Changed

    • Update to opentelemetry v0.12.0
    Open source →
  24. 0.3.0 10 Nov 2020
    Release notes

    Changed

    • Update to opentelemetry v0.10.0
    Open source →
    Release notes

    Changed

    • Update to opentelemetry v0.11.0
    Open source →
  25. 0.2.0 16 Oct 2020
    Release notes

    Changed

    • Update to opentelemetry v0.9.0
    • Add exporter pipeline #210
    Open source →
    Release notes

    Changed

    • Update to opentelemetry v0.10.0
    Open source →
  26. 0.1.0 14 Aug 2020
    Release notes

    Added

    • Initial Alpha implementation
    Open source →
    Release notes

    Added

    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive