PackageTrack
Sign in Get early access

opentelemetry-datadog

[DEPRECATED] Datadog exporters and propagators for OpenTelemetry. Use https://github.com/DataDog/dd-trace-rs instead.

0.20.1 29M downloads/mo #1696 most downloaded on crates.io open-telemetry/opentelemetry-rust-contrib

What this package is like to depend on

Last release 18 days ago

05 Aug 2026

Ships fairly regularly

a new release about every 2 months

Nearly every release is documented

notes for 21 of 22 stable releases

Nothing withdrawn

no release was ever pulled

5 years old

22 releases · first in 2021

3 releases in the last 12 months

see the full history below

Release timeline

22 releases · Mar 2021 to Aug 2026
2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 22
  1. 0.20.1 05 Aug 2026
    Release notes

    Deprecation release. This marks opentelemetry-datadog as deprecated on crates.io. No functional code changes.

    DEPRECATED: This crate is deprecated and will be removed from this repository in a future release (#674). Datadog ships a first-party integration, dd-trace-rs, built on top of opentelemetry_sdk. New users should adopt dd-trace-rs; existing users are encouraged to migrate. See #609 for context.

    Open source →
    Release notes

    Released 2026-Aug-05

    • DEPRECATED: This crate is now deprecated and will be removed from this repository in a future release. Datadog ships a first-party integration, dd-trace-rs, built on top of opentelemetry_sdk. New users should adopt dd-trace-rs, and existing users are encouraged to migrate. See issue #609 for context.
    Open source →
  2. 0.20.0 14 May 2026
    Release notes

    Released 2026-May-13

    • Bump opentelemetry and opentelemetry_sdk versions to 0.32
    • Bump opentelemetry-http and opentelemetry-semantic-conventions versions to 0.32
    • Bump reqwest from 0.12 to 0.13 (required by opentelemetry-http 0.32).
    • Breaking DatadogPipelineBuilder::build_exporter, install_simple, and install_batch now return Result<_, opentelemetry_datadog::Error> (previously opentelemetry_sdk::trace::TraceError, which was removed upstream in 0.32).
    Open source →
  3. 0.19.0 01 Oct 2025
    Release notes
    • Bump opentelemetry and opentelemetry_sdk versions to 0.31
    • Bump opentelemetry-http and opentelemetry-semantic-conventions versions to 0.31
    Open source →
  4. 0.18.0 28 May 2025
    Release notes
    • Bump opentelemetry and opentelemetry_sdk versions to 0.30
    • Bump opentelemetry-http and opentelemetry-semantic-conventions versions to 0.30
    Open source →
    Release notes

    Released 2026-Jul-28

    Added

    • Added OpenTelemetry trace support
    • Configurable route extraction with built-in extractors:
      • NoRouteExtractor - No route, safest for cardinality
      • PathExtractor - Uses the URL path without query params (e.g., /users/123)
      • AxumMatchedPathExtractor - Uses Axum's MatchedPath for route templates (requires axum feature)
      • FnRouteExtractor - Custom function-based extraction via with_route_extractor_fn()
    • Default route extractor depends on features:
      • With axum feature: Uses AxumMatchedPathExtractor (route templates, low cardinality)
      • Without axum feature: Uses NoRouteExtractor (safest)
    • If a route is extracted, the same value is used for both the http.route attribute and the tracing span name. If no route is extracted, the span name is the HTTP method only, per semantic conventions.

    Changed

    • BREAKING: Removed public with_meter() method. The middleware now uses global meter and tracer providers by default via opentelemetry::global::meter() and opentelemetry::global::tracer(). The with_meter() method is retained as a non-public test utility to allow injecting custom meters without relying on global state.
    • BREAKING: Renamed types. Use the new names:
      • HTTPMetricsLayerHTTPLayer
      • HTTPMetricsServiceHTTPService
      • HTTPMetricsResponseFutureResponseFuture
      • HTTPMetricsLayerBuilderHTTPLayerBuilder
    • BREAKING: Update default http.server.request.duration histogram boundaries to OTel semantic conventions.
    • BREAKING: Remove with_request_duration_bounds builder method. Alternate histogram bucket boundaries can be applied with the standard OpenTelemetry Views; see examples directory in crate for usage.

    Migration Guide

    Route Extraction Configuration

    use opentelemetry_instrumentation_tower::{
        HTTPLayerBuilder,
        NoRouteExtractor,
        PathExtractor,
    };
    
    // No route (default without axum feature) - span name: "GET"
    let layer = HTTPLayerBuilder::builder()
        .with_route_extractor(NoRouteExtractor)
        .build()
        .unwrap();
    
    // Path (strips query params) - span name: "GET /users/123"
    let layer = HTTPLayerBuilder::builder()
        .with_route_extractor(PathExtractor)
        .build()
        .unwrap();
    
    // Custom function - return Some(route) or None for method-only
    let layer = HTTPLayerBuilder::builder()
        .with_route_extractor_fn(|req: &http::Request<_>| {
            Some(req.uri().path().to_owned())
        })
        .build()
        .unwrap();
    

    API Changes

    Before:

    use opentelemetry_instrumentation_tower::HTTPMetricsLayerBuilder;
    
    let layer = HTTPMetricsLayerBuilder::builder()
    .with_meter(meter)
    .build()
    .unwrap();
    

    After:

    use opentelemetry_instrumentation_tower::HTTPLayer;
    
    // Set global providers
    global::set_meter_provider(meter_provider);
    global::set_tracer_provider(tracer_provider); // for tracing support
    
    // Then create the layer - simple API using global providers
    let layer = HTTPLayer::new();
    

    Type Name Changes

    • Replace HTTPMetricsLayerBuilder with HTTPLayerBuilder
    • Replace HTTPMetricsLayer with HTTPLayer
    • Replace HTTPMetricsService with HTTPService
    • Replace HTTPMetricsResponseFuture with ResponseFuture
    Open source →
  5. 0.17.0 02 Apr 2025
    Release notes
    • DatadogExporter.export() doesn't require mutability anymore
    • Bump opentelemetry and opentelemetry_sdk versions to 0.29
    • Bump opentelemetry-http and opentelemetry-semantic-conventions versions to 0.29
    Open source →
    Release notes

    Changed

    • Update to OpenTelemetry v0.31
    • Migrate to use opentelemetry-semantic-conventions package for metric names and attribute keys instead of hardcoded strings
    • Add dependency on otel semantic conventions crate and use constants from it instead of hardcoded attribute names. The values are unchanged
      • HTTP_SERVER_ACTIVE_REQUESTS_METRIC now uses semconv::metric::HTTP_SERVER_ACTIVE_REQUESTS
      • HTTP_SERVER_REQUEST_BODY_SIZE_METRIC now uses semconv::metric::HTTP_SERVER_REQUEST_BODY_SIZE
      • HTTP_SERVER_RESPONSE_BODY_SIZE_METRIC now uses semconv::metric::HTTP_SERVER_RESPONSE_BODY_SIZE
      • HTTP_SERVER_DURATION_METRIC now uses semconv::metric::HTTP_SERVER_REQUEST_DURATION
    • Update attribute keys to use semantic conventions constants:
      • NETWORK_PROTOCOL_NAME_LABEL now uses semconv::attribute::NETWORK_PROTOCOL_NAME
      • HTTP_REQUEST_METHOD_LABEL now uses semconv::attribute::HTTP_REQUEST_METHOD
      • HTTP_ROUTE_LABEL now uses semconv::attribute::HTTP_ROUTE
      • HTTP_RESPONSE_STATUS_CODE_LABEL now uses semconv::attribute::HTTP_RESPONSE_STATUS_CODE

    Added

    • Add comprehensive test coverage for all HTTP server metrics with attribute validation
    Open source →
  6. 0.16.0 11 Feb 2025
    Release notes
    • Bump mvrv to 1.75.0
    • Bump opentelemetry and opentelemetry_sdk versions to 0.28
    • Bump opentelemetry-http and opentelemetry-semantic-conventions versions to 0.28
    • Bump thiserror to 2.0
    • [Breaking] Replace opentelemetry::global::shutdown_tracer_provider() with tracer_provider.shutdown() (original PR opentelemetry-rust#2369)
    • [Breaking] DatadogPipelineBuilder::install_simple() and DatadogPipelineBuilder::install_batch() now return TracerProvider. Additionally, global tracer provider now needs to be set by the user by calling global::set_tracer_provider(tracer_provider.clone()) (original PR opentelemetry-rust#1812)
    Open source →
    Release notes

    Initial release of OpenTelemetry Tower instrumentation middleware for HTTP metrics collection.

    Added

    • HTTP server metrics middleware for Tower-compatible services
    • Support for Axum framework via axum feature flag
    • Metrics collection for:
      • http.server.request.duration - Request duration histogram
      • http.server.active_requests - Active requests counter
      • http.server.request.body.size - Request body size histogram
      • http.server.response.body.size - Response body size histogram
    • Configurable request duration histogram boundaries
    • Custom request and response attribute extractors
    • Automatic protocol version, HTTP method, URL scheme, and status code labeling
    • Route extraction for Axum applications
    Open source →
  7. 0.15.0 26 Nov 2024
    Release notes

    Changed

    • Bump opentelemetry and opentelemetry_sdk versions to 0.27
    • Bump opentelemetry-http and opentelemetry-semantic-conventions versions to 0.27
    Open source →
  8. 0.14.0 29 Oct 2024
    Release notes

    Changed

    • Bump opentelemetry and opentelemetry_sdk versions to 0.26
    • Bump opentelemetry-http and opentelemetry-semantic-conventions versions to 0.26
    • Remove unused itertools dependency
    Open source →
  9. 0.13.0 30 Sep 2024
    Release notes

    Changed

    • Bump opentelemetry and opentelemetry_sdk version to 0.25
    Open source →
  10. 0.12.0 02 Aug 2024
    Release notes

    Changed

    • Bump opentelemetry and opentelemetry_sdk version to 0.24
    • Bump hyper to version 1
    Open source →
  11. 0.11.0 21 Jun 2024

    Nothing published for this version

  12. 0.10.0 27 Feb 2024
    Release notes

    Added

    • Pass DD_GIT_REPOSITORY_URL and DD_GIT_COMMIT_SHA during build

    Changed

    • Bump opentelemetry version to 0.22, opentelemetry_sdk version to 0.22

    Changed

    • allow send all traces to datadog-agent with agent-sampling feature.
    • allow datadog-agent generate metrics from spans for APM.
    Open source →
  13. 0.9.0 06 Nov 2023
    Release notes

    Changed

    Fixed

    • Do not set an empty span as the active span when the propagator does not find a remote span.
    • Change type signature of with_http_client() to use the provided generic as argument.
    Open source →
  14. 0.8.0 30 Jul 2023
    Release notes

    Changed

    • Update to opentelemetry-api v0.20.0

    Fixed

    • Fix the array encoding length of datadog version 05 exporter #1002
    Open source →
  15. 0.7.0 26 Mar 2023
    Release notes

    Added

    • [Breaking] Add support for unified tagging #931.

    Changed

    • Update opentelemetry to 0.19
    • Update opentelemetry-http to 0.8
    • Update opentelemetry-semantic-conventions to 0.11.
    • Bump MSRV to 1.57 #953
    • Send resource with attributes #880.
    • Update msgpack accounting for sampling_priority #903.
    • Update dependencies and bump MSRV to 1.60 #969.
    Open source →
  16. 0.6.0 13 Sep 2022
    Release notes

    Changed

    • Allow custom mapping #770
    • Update to opentelemetry v0.18.0
    • Update to opentelemetry-http v0.7.0
    • Update to opentelemetry-semantic-conventions v0.10.0
    • Parse config endpoint to remove tailing slash #787
    • Add sampling priority tag in spans #792
    Open source →
  17. 0.5.0 22 Jan 2022
    Release notes

    Changed

    • Update to opentelemetry v0.17.0
    • Update to opentelemetry-http v0.6.0
    • Update to opentelemetry-semantic-conventions v0.9.0
    Open source →
  18. 0.4.0 07 Aug 2021
    Release notes

    Changed

    • Update to opentelemetry v0.16.0
    Open source →
  19. 0.3.1 24 Jun 2021
    Release notes

    Fixed

    • status_code must be 0 or 1 #580
    Open source →
  20. 0.3.0 17 Jun 2021
    Release notes

    Changed

    • Update to opentelemetry v0.15.0
    Open source →
  21. 0.2.0 10 May 2021
    Release notes

    Changed

    • Disable optional features for reqwest
    • Remove default surf features #546
    • Update to opentelemetry v0.14.0
    Open source →
  22. 0.1.0 24 Mar 2021
    Release notes

    Added

    • Datadog exporter #446
    • Datadog propagator #440

    Changed

    • Rename trace config with_default_sampler to with_sampler #482
    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