Skip to content

feat(traces): add native OTLP export marker to trace chunks - #311

Open
mhlidd wants to merge 5 commits into
mainfrom
matthew.li/otlp-adoption-markers
Open

mhlidd wants to merge 5 commits into
mainfrom
matthew.li/otlp-adoption-markers

Conversation

@mhlidd

@mhlidd mhlidd commented Sep 29, 2026 •

Copy link
Copy Markdown

What does this PR do?

This adds _dd.sdk.otlp_export: "false" to the meta of the first span of each trace chunk exported to the Datadog agent.

  • The marker is set in otel_trace_chunk_to_dd_trace_chunk (datadog-opentelemetry/src/ddtrace_transform.rs), inside the per-span conversion map: the span at index 0 of the chunk gets it through a small add_native_export_marker helper. span_exporter.rs export_trace_chunks calls it once per TraceChunk, and span_processor.rs finish_span keeps the local root at index 0.
  • Comments at the marker and at the call in export_trace_chunks note that the export mode must be passed in once OTLP trace export is added.
  • New constant SDK_OTLP_EXPORT_KEY in ddtrace_transform.rs.
  • The marker is unconditional. main only exports traces in v0.4 format to the agent (TraceExporterOutputFormat::V04), and it doesn't guard against a user tag with the same key. That matches the other tracers.

Motivation

This is part of the "Measuring Adoption of Datadog SDKs in OTel Mode (Traces)" RFC. Today the backend infers which spans came from Datadog SDKs exporting OTLP at ingest time, using telemetry.sdk.name and span_source. That's unreliable: the OpenTelemetry Collector's datadogreceiver hardcodes telemetry.sdk.name:Datadog on native payloads it converts. So tracers now declare their export mode on the wire. "true" goes on the OTLP resource when exporting over OTLP, and "false" goes on the first span of each chunk for native export. An absent marker means an older tracer.

Additional Notes

Interaction with #251 (OTLP trace export): #251 sends the same converted Datadog spans through libdatadog's OTLP path, and libdatadog's OTLP mapper copies every meta entry into the OTLP span attributes. So once it lands, otel_trace_chunk_to_dd_trace_chunk needs the export mode passed in, and must skip the marker for OTLP. The right value is the exporter's otlp_export_active, not config.otlp_traces_enabled(): on the grpc fallback, #251 exports natively even though OTLP is configured. The OTLP side, _dd.sdk.otlp_export: "true" and datadog.sdk.semantics as resource attributes, needs libdatadog to emit them on the OTLP resource, so it's out of scope here.

Partial flush: later chunks of the same trace start with a non-root span. That span still gets the marker, which matches "first span of each chunk" in the other tracers.

Tests:

  • 16 snapshot files under datadog-opentelemetry/tests/snapshots/ gain one line per trace chunk for the marker, on the first span only. No other snapshot content changed. These cover the marker; there are no separate unit tests.
  • Ran locally, all passing: cargo test -p datadog-opentelemetry (383 unit, 48 integration and 11 other tests, including the Docker snapshot tests), cargo fmt --check, cargo clippy -p datadog-opentelemetry --all-targets.

Related changes:

This change was written with AI assistance and reviewed before submission.

🤖 Generated with Claude Code

Set _dd.sdk.otlp_export=false on the first span of each trace chunk
exported to the agent, so the backend can tell native export apart from
OTLP export. dd-trace-rs has no OTLP trace export yet, so the marker is
unconditional.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

🔒 Cargo Deny Results

⚠️ 66 issue(s) found (advisories, bans, sources)

📦 Root workspace - 5 error(s), 19 warning(s)

Show output
warning[duplicate]: found 2 duplicate entries for crate 'foldhash'
   ┌─ /home/runner/work/dd-trace-rs/dd-trace-rs/Cargo.lock:70:1
   │  
70 │ ╭ foldhash 0.1.5 registry+https://github.com/rust-lang/crates.io-index
71 │ │ foldhash 0.2.0 registry+https://github.com/rust-lang/crates.io-index
   │ ╰────────────────────────────────────────────────────────────────────┘ lock entries
   │  
   ├ foldhash v0.1.5
     ├── datadog-opentelemetry v0.5.2
     │   ├── (dev) datadog-opentelemetry v0.5.2 (*)
     │   ├── propagator v0.5.2
     │   └── simple_tracing v0.5.2
     └── hashbrown v0.15.5
         └── datadog-opentelemetry v0.5.2 (*)
   ├ foldhash v0.2.0
     ├── hashbrown v0.16.1
     │   └── lru v0.16.4
     │       ├── datadog-opentelemetry v0.5.2
     │       │   ├── (dev) datadog-opentelemetry v0.5.2 (*)
     │       │   ├── propagator v0.5.2
     │       │   └── simple_tracing v0.5.2
     │       └── libdd-sampling v7.0.0
     │           └── datadog-opentelemetry v0.5.2 (*)
     └── hashbrown v0.17.1
         ├── indexmap v2.14.0
         │   ├── h2 v0.4.15
         │   │   ├── hyper v1.11.0
         │   │   │   ├── datadog-opentelemetry v0.5.2 (*)
         │   │   │   ├── httpmock v0.8.2
         │   │   │   │   └── libdd-trace-utils v13.0.0
         │   │   │   │       ├── datadog-opentelemetry v0.5.2 (*)
         │   │   │   │       ├── libdd-data-pipeline v11.0.0
         │   │   │   │       │   └── datadog-opentelemetry v0.5.2 (*)
         │   │   │   │       ├── libdd-data-pipeline-core v2.0.0
         │   │   │   │       │   └── libdd-data-pipeline v11.0.0 (*)
         │   │   │   │       ├── libdd-trace-obfuscation v9.0.0
         │   │   │   │       │   ├── libdd-data-pipeline v11.0.0 (*)
         │   │   │   │       │   ├── libdd-data-pipeline-core v2.0.0 (*)
         │   │   │   │       │   └── libdd-trace-stats v10.0.0
         │   │   │   │       │       ├── libdd-data-pipeline v11.0.0 (*)
         │   │   │   │       │       └── libdd-data-pipeline-core v2.0.0 (*)
         │   │   │   │       └── libdd-trace-stats v10.0.0 (*)
         │   │   │   ├── hyper-timeout v0.5.2
         │   │   │   │   └── tonic v0.14.5
         │   │   │   │       ├── libdd-data-pipeline v11.0.0 (*)
         │   │   │   │       ├── opentelemetry-otlp v0.32.0
         │   │   │   │       │   └── datadog-opentelemetry v0.5.2 (*)
         │   │   │   │       ├── opentelemetry-proto v0.32.0
         │   │   │   │       │   └── opentelemetry-otlp v0.32.0 (*)
         │   │   │   │       ├── tonic-prost v0.14.5
         │   │   │   │       │   └── opentelemetry-proto v0.32.0 (*)
         │   │   │   │       └── tonic-types v0.14.5
         │   │   │   │           └── opentelemetry-otlp v0.32.0 (*)
         │   │   │   ├── hyper-util v0.1.20
         │   │   │   │   ├── httpmock v0.8.2 (*)
         │   │   │   │   ├── hyper-timeout v0.5.2 (*)
         │   │   │   │   ├── libdd-common v7.0.0
         │   │   │   │   │   ├── datadog-opentelemetry v0.5.2 (*)
         │   │   │   │   │   ├── libdd-capabilities-impl v6.0.0
         │   │   │   │   │   │   ├── datadog-opentelemetry v0.5.2 (*)
         │   │   │   │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
         │   │   │   │   │   │   ├── libdd-remote-config v6.0.0
         │   │   │   │   │   │   │   └── datadog-opentelemetry v0.5.2 (*)
         │   │   │   │   │   │   ├── libdd-shared-runtime v5.0.0
         │   │   │   │   │   │   │   ├── datadog-opentelemetry v0.5.2 (*)
         │   │   │   │   │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
         │   │   │   │   │   │   │   ├── libdd-dogstatsd-client v7.0.0
         │   │   │   │   │   │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
         │   │   │   │   │   │   │   │   └── libdd-trace-stats v10.0.0 (*)
         │   │   │   │   │   │   │   ├── libdd-telemetry v9.0.0
         │   │   │   │   │   │   │   │   ├── datadog-opentelemetry v0.5.2 (*)
         │   │   │   │   │   │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
         │   │   │   │   │   │   │   │   └── libdd-trace-stats v10.0.0 (*)
         │   │   │   │   │   │   │   └── libdd-trace-stats v10.0.0 (*)
         │   │   │   │   │   │   └── libdd-trace-stats v10.0.0 (*)
         │   │   │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
         │   │   │   │   │   ├── libdd-data-pipeline-core v2.0.0 (*)
         │   │   │   │   │   ├── libdd-dogstatsd-client v7.0.0 (*)
         │   │   │   │   │   ├── libdd-remote-config v6.0.0 (*)
         │   │   │   │   │   ├── libdd-sampling v7.0.0 (*)
         │   │   │   │   │   ├── libdd-shared-runtime v5.0.0 (*)
         │   │   │   │   │   ├── libdd-telemetry v9.0.0 (*)
         │   │   │   │   │   ├── libdd-trace-obfuscation v9.0.0 (*)
         │   │   │   │   │   ├── libdd-trace-stats v10.0.0 (*)
         │   │   │   │   │   └── libdd-trace-utils v13.0.0 (*)
         │   │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
         │   │   │   │   ├── propagator v0.5.2 (*)
         │   │   │   │   ├── reqwest v0.13.4
         │   │   │   │   │   ├── opentelemetry-http v0.32.0
         │   │   │   │   │   │   ├── opentelemetry-otlp v0.32.0 (*)
         │   │   │   │   │   │   └── propagator v0.5.2 (*)
         │   │   │   │   │   └── opentelemetry-otlp v0.32.0 (*)
         │   │   │   │   └── tonic v0.14.5 (*)
         │   │   │   ├── libdd-common v7.0.0 (*)
         │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
         │   │   │   ├── libdd-trace-utils v13.0.0 (*)
         │   │   │   ├── propagator v0.5.2 (*)
         │   │   │   ├── reqwest v0.13.4 (*)
         │   │   │   └── tonic v0.14.5 (*)
         │   │   └── libdd-data-pipeline v11.0.0 (*)
         │   ├── libdd-trace-utils v13.0.0 (*)
         │   ├── serde_yaml v0.9.34+deprecated
         │   │   └── libdd-library-config v4.1.0
         │   │       └── datadog-opentelemetry v0.5.2 (*)
         │   └── tower v0.5.3
         │       ├── reqwest v0.13.4 (*)
         │       ├── tonic v0.14.5 (*)
         │       └── tower-http v0.6.11
         │           └── reqwest v0.13.4 (*)
         ├── libdd-remote-config v6.0.0 (*)
         ├── libdd-telemetry v9.0.0 (*)
         └── libdd-trace-stats v10.0.0 (*)

warning[duplicate]: found 3 duplicate entries for crate 'getrandom'
   ┌─ /home/runner/work/dd-trace-rs/dd-trace-rs/Cargo.lock:84:1
   │  
84 │ ╭ getrandom 0.2.17 registry+https://github.com/rust-lang/crates.io-index
85 │ │ getrandom 0.3.4 registry+https://github.com/rust-lang/crates.io-index
86 │ │ getrandom 0.4.3 registry+https://github.com/rust-lang/crates.io-index
   │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries
   │  
   ├ getrandom v0.2.17
     ├── libdd-remote-config v6.0.0
     │   └── datadog-opentelemetry v0.5.2
     │       ├── (dev) datadog-opentelemetry v0.5.2 (*)
     │       ├── propagator v0.5.2
     │       └── simple_tracing v0.5.2
     ├── libdd-trace-utils v13.0.0
     │   ├── datadog-opentelemetry v0.5.2 (*)
     │   ├── libdd-data-pipeline v11.0.0
     │   │   └── datadog-opentelemetry v0.5.2 (*)
     │   ├── libdd-data-pipeline-core v2.0.0
     │   │   └── libdd-data-pipeline v11.0.0 (*)
     │   ├── libdd-trace-obfuscation v9.0.0
     │   │   ├── libdd-data-pipeline v11.0.0 (*)
     │   │   ├── libdd-data-pipeline-core v2.0.0 (*)
     │   │   └── libdd-trace-stats v10.0.0
     │   │       ├── libdd-data-pipeline v11.0.0 (*)
     │   │       └── libdd-data-pipeline-core v2.0.0 (*)
     │   └── libdd-trace-stats v10.0.0 (*)
     └── rand_core v0.6.4
         ├── rand v0.8.7
         │   ├── datadog-opentelemetry v0.5.2 (*)
         │   ├── libdd-data-pipeline v11.0.0 (*)
         │   ├── libdd-library-config v4.1.0
         │   │   └── datadog-opentelemetry v0.5.2 (*)
         │   └── libdd-trace-utils v13.0.0 (*)
         └── rand_chacha v0.3.1
             └── rand v0.8.7 (*)
   ├ getrandom v0.3.4
     └── rand_core v0.9.5
         ├── rand v0.9.5
         │   ├── opentelemetry_sdk v0.32.1
         │   │   ├── (dev) datadog-opentelemetry v0.5.2
         │   │   │   ├── (dev) datadog-opentelemetry v0.5.2 (*)
         │   │   │   ├── propagator v0.5.2
         │   │   │   └── simple_tracing v0.5.2
         │   │   ├── opentelemetry-otlp v0.32.0
         │   │   │   └── datadog-opentelemetry v0.5.2 (*)
         │   │   ├── opentelemetry-proto v0.32.0
         │   │   │   └── opentelemetry-otlp v0.32.0 (*)
         │   │   ├── opentelemetry-stdout v0.32.0
         │   │   │   └── propagator v0.5.2 (*)
         │   │   └── propagator v0.5.2 (*)
         │   └── proptest v1.11.0
         │       └── (dev) datadog-opentelemetry v0.5.2 (*)
         ├── rand_chacha v0.9.0
         │   ├── proptest v1.11.0 (*)
         │   └── rand v0.9.5 (*)
         └── rand_xorshift v0.4.0
             └── proptest v1.11.0 (*)
   ├ getrandom v0.4.3
     └── uuid v1.24.0
         ├── datadog-opentelemetry v0.5.2
         │   ├── (dev) datadog-opentelemetry v0.5.2 (*)
         │   ├── propagator v0.5.2
         │   └── simple_tracing v0.5.2
         ├── libdd-data-pipeline v11.0.0
         │   └── datadog-opentelemetry v0.5.2 (*)
         ├── libdd-remote-config v6.0.0
         │   └── datadog-opentelemetry v0.5.2 (*)
         └── libdd-telemetry v9.0.0
             ├── datadog-opentelemetry v0.5.2 (*)
             ├── libdd-data-pipeline v11.0.0 (*)
             └── libdd-trace-stats v10.0.0
                 ├── libdd-data-pipeline v11.0.0 (*)
                 └── libdd-data-pipeline-core v2.0.0
                     └── libdd-data-pipeline v11.0.0 (*)

warning[duplicate]: found 3 duplicate entries for crate 'hashbrown'
   ┌─ /home/runner/work/dd-trace-rs/dd-trace-rs/Cargo.lock:89:1
   │  
89 │ ╭ hashbrown 0.15.5 registry+https://github.com/rust-lang/crates.io-index
90 │ │ hashbrown 0.16.1 registry+https://github.com/rust-lang/crates.io-index
91 │ │ hashbrown 0.17.1 registry+https://github.com/rust-lang/crates.io-index
   │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries
   │  
   ├ hashbrown v0.15.5
     └── datadog-opentelemetry v0.5.2
         ├── (dev) datadog-opentelemetry v0.5.2 (*)
         ├── propagator v0.5.2
         └── simple_tracing v0.5.2
   ├ hashbrown v0.16.1
     └── lru v0.16.4
         ├── datadog-opentelemetry v0.5.2
         │   ├── (dev) datadog-opentelemetry v0.5.2 (*)
         │   ├── propagator v0.5.2
         │   └── simple_tracing v0.5.2
         └── libdd-sampling v7.0.0
             └── datadog-opentelemetry v0.5.2 (*)
   ├ hashbrown v0.17.1
     ├── indexmap v2.14.0
     │   ├── h2 v0.4.15
     │   │   ├── hyper v1.11.0
     │   │   │   ├── datadog-opentelemetry v0.5.2
     │   │   │   │   ├── (dev) datadog-opentelemetry v0.5.2 (*)
     │   │   │   │   ├── propagator v0.5.2
     │   │   │   │   └── simple_tracing v0.5.2
     │   │   │   ├── httpmock v0.8.2
     │   │   │   │   └── libdd-trace-utils v13.0.0
     │   │   │   │       ├── datadog-opentelemetry v0.5.2 (*)
     │   │   │   │       ├── libdd-data-pipeline v11.0.0
     │   │   │   │       │   └── datadog-opentelemetry v0.5.2 (*)
     │   │   │   │       ├── libdd-data-pipeline-core v2.0.0
     │   │   │   │       │   └── libdd-data-pipeline v11.0.0 (*)
     │   │   │   │       ├── libdd-trace-obfuscation v9.0.0
     │   │   │   │       │   ├── libdd-data-pipeline v11.0.0 (*)
     │   │   │   │       │   ├── libdd-data-pipeline-core v2.0.0 (*)
     │   │   │   │       │   └── libdd-trace-stats v10.0.0
     │   │   │   │       │       ├── libdd-data-pipeline v11.0.0 (*)
     │   │   │   │       │       └── libdd-data-pipeline-core v2.0.0 (*)
     │   │   │   │       └── libdd-trace-stats v10.0.0 (*)
     │   │   │   ├── hyper-timeout v0.5.2
     │   │   │   │   └── tonic v0.14.5
     │   │   │   │       ├── libdd-data-pipeline v11.0.0 (*)
     │   │   │   │       ├── opentelemetry-otlp v0.32.0
     │   │   │   │       │   └── datadog-opentelemetry v0.5.2 (*)
     │   │   │   │       ├── opentelemetry-proto v0.32.0
     │   │   │   │       │   └── opentelemetry-otlp v0.32.0 (*)
     │   │   │   │       ├── tonic-prost v0.14.5
     │   │   │   │       │   └── opentelemetry-proto v0.32.0 (*)
     │   │   │   │       └── tonic-types v0.14.5
     │   │   │   │           └── opentelemetry-otlp v0.32.0 (*)
     │   │   │   ├── hyper-util v0.1.20
     │   │   │   │   ├── httpmock v0.8.2 (*)
     │   │   │   │   ├── hyper-timeout v0.5.2 (*)
     │   │   │   │   ├── libdd-common v7.0.0
     │   │   │   │   │   ├── datadog-opentelemetry v0.5.2 (*)
     │   │   │   │   │   ├── libdd-capabilities-impl v6.0.0
     │   │   │   │   │   │   ├── datadog-opentelemetry v0.5.2 (*)
     │   │   │   │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
     │   │   │   │   │   │   ├── libdd-remote-config v6.0.0
     │   │   │   │   │   │   │   └── datadog-opentelemetry v0.5.2 (*)
     │   │   │   │   │   │   ├── libdd-shared-runtime v5.0.0
     │   │   │   │   │   │   │   ├── datadog-opentelemetry v0.5.2 (*)
     │   │   │   │   │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
     │   │   │   │   │   │   │   ├── libdd-dogstatsd-client v7.0.0
     │   │   │   │   │   │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
     │   │   │   │   │   │   │   │   └── libdd-trace-stats v10.0.0 (*)
     │   │   │   │   │   │   │   ├── libdd-telemetry v9.0.0
     │   │   │   │   │   │   │   │   ├── datadog-opentelemetry v0.5.2 (*)
     │   │   │   │   │   │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
     │   │   │   │   │   │   │   │   └── libdd-trace-stats v10.0.0 (*)
     │   │   │   │   │   │   │   └── libdd-trace-stats v10.0.0 (*)
     │   │   │   │   │   │   └── libdd-trace-stats v10.0.0 (*)
     │   │   │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
     │   │   │   │   │   ├── libdd-data-pipeline-core v2.0.0 (*)
     │   │   │   │   │   ├── libdd-dogstatsd-client v7.0.0 (*)
     │   │   │   │   │   ├── libdd-remote-config v6.0.0 (*)
     │   │   │   │   │   ├── libdd-sampling v7.0.0
     │   │   │   │   │   │   └── datadog-opentelemetry v0.5.2 (*)
     │   │   │   │   │   ├── libdd-shared-runtime v5.0.0 (*)
     │   │   │   │   │   ├── libdd-telemetry v9.0.0 (*)
     │   │   │   │   │   ├── libdd-trace-obfuscation v9.0.0 (*)
     │   │   │   │   │   ├── libdd-trace-stats v10.0.0 (*)
     │   │   │   │   │   └── libdd-trace-utils v13.0.0 (*)
     │   │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
     │   │   │   │   ├── propagator v0.5.2 (*)
     │   │   │   │   ├── reqwest v0.13.4
     │   │   │   │   │   ├── opentelemetry-http v0.32.0
     │   │   │   │   │   │   ├── opentelemetry-otlp v0.32.0 (*)
     │   │   │   │   │   │   └── propagator v0.5.2 (*)
     │   │   │   │   │   └── opentelemetry-otlp v0.32.0 (*)
     │   │   │   │   └── tonic v0.14.5 (*)
     │   │   │   ├── libdd-common v7.0.0 (*)
     │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
     │   │   │   ├── libdd-trace-utils v13.0.0 (*)
     │   │   │   ├── propagator v0.5.2 (*)
     │   │   │   ├── reqwest v0.13.4 (*)
     │   │   │   └── tonic v0.14.5 (*)
     │   │   └── libdd-data-pipeline v11.0.0 (*)
     │   ├── libdd-trace-utils v13.0.0 (*)
     │   ├── serde_yaml v0.9.34+deprecated
     │   │   └── libdd-library-config v4.1.0
     │   │       └── datadog-opentelemetry v0.5.2 (*)
     │   └── tower v0.5.3
     │       ├── reqwest v0.13.4 (*)
     │       ├── tonic v0.14.5 (*)
     │       └── tower-http v0.6.11
     │           └── reqwest v0.13.4 (*)
     ├── libdd-remote-config v6.0.0 (*)
     ├── libdd-telemetry v9.0.0 (*)
     └── libdd-trace-stats v10.0.0 (*)

warning[duplicate]: found 2 duplicate entries for crate 'r-efi'
    ┌─ /home/runner/work/dd-trace-rs/dd-trace-rs/Cargo.lock:195:1
    │  
195 │ ╭ r-efi 5.3.0 registry+https://github.com/rust-lang/crates.io-index
196 │ │ r-efi 6.0.0 registry+https://github.com/rust-lang/crates.io-index
    │ ╰─────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ r-efi v5.3.0
      └── getrandom v0.3.4
          └── rand_core v0.9.5
              ├── rand v0.9.5
              │   ├── opentelemetry_sdk v0.32.1
              │   │   ├── (dev) datadog-opentelemetry v0.5.2
              │   │   │   ├── (dev) datadog-opentelemetry v0.5.2 (*)
              │   │   │   ├── propagator v0.5.2
              │   │   │   └── simple_tracing v0.5.2
              │   │   ├── opentelemetry-otlp v0.32.0
              │   │   │   └── datadog-opentelemetry v0.5.2 (*)
              │   │   ├── opentelemetry-proto v0.32.0
              │   │   │   └── opentelemetry-otlp v0.32.0 (*)
              │   │   ├── opentelemetry-stdout v0.32.0
              │   │   │   └── propagator v0.5.2 (*)
              │   │   └── propagator v0.5.2 (*)
              │   └── proptest v1.11.0
              │       └── (dev) datadog-opentelemetry v0.5.2 (*)
              ├── rand_chacha v0.9.0
              │   ├── proptest v1.11.0 (*)
              │   └── rand v0.9.5 (*)
              └── rand_xorshift v0.4.0
                  └── proptest v1.11.0 (*)
    ├ r-efi v6.0.0
      └── getrandom v0.4.3
          └── uuid v1.24.0
              ├── datadog-opentelemetry v0.5.2
              │   ├── (dev) datadog-opentelemetry v0.5.2 (*)
              │   ├── propagator v0.5.2
              │   └── simple_tracing v0.5.2
              ├── libdd-data-pipeline v11.0.0
              │   └── datadog-opentelemetry v0.5.2 (*)
              ├── libdd-remote-config v6.0.0
              │   └── datadog-opentelemetry v0.5.2 (*)
              └── libdd-telemetry v9.0.0
                  ├── datadog-opentelemetry v0.5.2 (*)
                  ├── libdd-data-pipeline v11.0.0 (*)
                  └── libdd-trace-stats v10.0.0
                      ├── libdd-data-pipeline v11.0.0 (*)
                      └── libdd-data-pipeline-core v2.0.0
                          └── libdd-data-pipeline v11.0.0 (*)

warning[duplicate]: found 2 duplicate entries for crate 'rand'
    ┌─ /home/runner/work/dd-trace-rs/dd-trace-rs/Cargo.lock:197:1
    │  
197 │ ╭ rand 0.8.7 registry+https://github.com/rust-lang/crates.io-index
198 │ │ rand 0.9.5 registry+https://github.com/rust-lang/crates.io-index
    │ ╰────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ rand v0.8.7
      ├── datadog-opentelemetry v0.5.2
      │   ├── (dev) datadog-opentelemetry v0.5.2 (*)
      │   ├── propagator v0.5.2
      │   └── simple_tracing v0.5.2
      ├── libdd-data-pipeline v11.0.0
      │   └── datadog-opentelemetry v0.5.2 (*)
      ├── libdd-library-config v4.1.0
      │   └── datadog-opentelemetry v0.5.2 (*)
      └── libdd-trace-utils v13.0.0
          ├── datadog-opentelemetry v0.5.2 (*)
          ├── libdd-data-pipeline v11.0.0 (*)
          ├── libdd-data-pipeline-core v2.0.0
          │   └── libdd-data-pipeline v11.0.0 (*)
          ├── libdd-trace-obfuscation v9.0.0
          │   ├── libdd-data-pipeline v11.0.0 (*)
          │   ├── libdd-data-pipeline-core v2.0.0 (*)
          │   └── libdd-trace-stats v10.0.0
          │       ├── libdd-data-pipeline v11.0.0 (*)
          │       └── libdd-data-pipeline-core v2.0.0 (*)
          └── libdd-trace-stats v10.0.0 (*)
    ├ rand v0.9.5
      ├── opentelemetry_sdk v0.32.1
      │   ├── (dev) datadog-opentelemetry v0.5.2
      │   │   ├── (dev) datadog-opentelemetry v0.5.2 (*)
      │   │   ├── propagator v0.5.2
      │   │   └── simple_tracing v0.5.2
      │   ├── opentelemetry-otlp v0.32.0
      │   │   └── datadog-opentelemetry v0.5.2 (*)
      │   ├── opentelemetry-proto v0.32.0
      │   │   └── opentelemetry-otlp v0.32.0 (*)
      │   ├── opentelemetry-stdout v0.32.0
      │   │   └── propagator v0.5.2 (*)
      │   └── propagator v0.5.2 (*)
      └── proptest v1.11.0
          └── (dev) datadog-opentelemetry v0.5.2 (*)

warning[duplicate]: found 2 duplicate entries for crate 'rand_chacha'
    ┌─ /home/runner/work/dd-trace-rs/dd-trace-rs/Cargo.lock:199:1
    │  
199 │ ╭ rand_chacha 0.3.1 registry+https://github.com/rust-lang/crates.io-index
200 │ │ rand_chacha 0.9.0 registry+https://github.com/rust-lang/crates.io-index
    │ ╰───────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ rand_chacha v0.3.1
      └── rand v0.8.7
          ├── datadog-opentelemetry v0.5.2
          │   ├── (dev) datadog-opentelemetry v0.5.2 (*)
          │   ├── propagator v0.5.2
          │   └── simple_tracing v0.5.2
          ├── libdd-data-pipeline v11.0.0
          │   └── datadog-opentelemetry v0.5.2 (*)
          ├── libdd-library-config v4.1.0
          │   └── datadog-opentelemetry v0.5.2 (*)
          └── libdd-trace-utils v13.0.0
              ├── datadog-opentelemetry v0.5.2 (*)
              ├── libdd-data-pipeline v11.0.0 (*)
              ├── libdd-data-pipeline-core v2.0.0
              │   └── libdd-data-pipeline v11.0.0 (*)
              ├── libdd-trace-obfuscation v9.0.0
              │   ├── libdd-data-pipeline v11.0.0 (*)
              │   ├── libdd-data-pipeline-core v2.0.0 (*)
              │   └── libdd-trace-stats v10.0.0
              │       ├── libdd-data-pipeline v11.0.0 (*)
              │       └── libdd-data-pipeline-core v2.0.0 (*)
              └── libdd-trace-stats v10.0.0 (*)
    ├ rand_chacha v0.9.0
      ├── proptest v1.11.0
      │   └── (dev) datadog-opentelemetry v0.5.2
      │       ├── (dev) datadog-opentelemetry v0.5.2 (*)
      │       ├── propagator v0.5.2
      │       └── simple_tracing v0.5.2
      └── rand v0.9.5
          ├── opentelemetry_sdk v0.32.1
          │   ├── (dev) datadog-opentelemetry v0.5.2 (*)
          │   ├── opentelemetry-otlp v0.32.0
          │   │   └── datadog-opentelemetry v0.5.2 (*)
          │   ├── opentelemetry-proto v0.32.0
          │   │   └── opentelemetry-otlp v0.32.0 (*)
          │   ├── opentelemetry-stdout v0.32.0
          │   │   └── propagator v0.5.2 (*)
          │   └── propagator v0.5.2 (*)
          └── proptest v1.11.0 (*)

warning[duplicate]: found 2 duplicate entries for crate 'rand_core'
    ┌─ /home/runner/work/dd-trace-rs/dd-trace-rs/Cargo.lock:201:1
    │  
201 │ ╭ rand_core 0.6.4 registry+https://github.com/rust-lang/crates.io-index
202 │ │ rand_core 0.9.5 registry+https://github.com/rust-lang/crates.io-index
    │ ╰─────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ rand_core v0.6.4
      ├── rand v0.8.7
      │   ├── datadog-opentelemetry v0.5.2
      │   │   ├── (dev) datadog-opentelemetry v0.5.2 (*)
      │   │   ├── propagator v0.5.2
      │   │   └── simple_tracing v0.5.2
      │   ├── libdd-data-pipeline v11.0.0
      │   │   └── datadog-opentelemetry v0.5.2 (*)
      │   ├── libdd-library-config v4.1.0
      │   │   └── datadog-opentelemetry v0.5.2 (*)
      │   └── libdd-trace-utils v13.0.0
      │       ├── datadog-opentelemetry v0.5.2 (*)
      │       ├── libdd-data-pipeline v11.0.0 (*)
      │       ├── libdd-data-pipeline-core v2.0.0
      │       │   └── libdd-data-pipeline v11.0.0 (*)
      │       ├── libdd-trace-obfuscation v9.0.0
      │       │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   ├── libdd-data-pipeline-core v2.0.0 (*)
      │       │   └── libdd-trace-stats v10.0.0
      │       │       ├── libdd-data-pipeline v11.0.0 (*)
      │       │       └── libdd-data-pipeline-core v2.0.0 (*)
      │       └── libdd-trace-stats v10.0.0 (*)
      └── rand_chacha v0.3.1
          └── rand v0.8.7 (*)
    ├ rand_core v0.9.5
      ├── rand v0.9.5
      │   ├── opentelemetry_sdk v0.32.1
      │   │   ├── (dev) datadog-opentelemetry v0.5.2
      │   │   │   ├── (dev) datadog-opentelemetry v0.5.2 (*)
      │   │   │   ├── propagator v0.5.2
      │   │   │   └── simple_tracing v0.5.2
      │   │   ├── opentelemetry-otlp v0.32.0
      │   │   │   └── datadog-opentelemetry v0.5.2 (*)
      │   │   ├── opentelemetry-proto v0.32.0
      │   │   │   └── opentelemetry-otlp v0.32.0 (*)
      │   │   ├── opentelemetry-stdout v0.32.0
      │   │   │   └── propagator v0.5.2 (*)
      │   │   └── propagator v0.5.2 (*)
      │   └── proptest v1.11.0
      │       └── (dev) datadog-opentelemetry v0.5.2 (*)
      ├── rand_chacha v0.9.0
      │   ├── proptest v1.11.0 (*)
      │   └── rand v0.9.5 (*)
      └── rand_xorshift v0.4.0
          └── proptest v1.11.0 (*)

warning[duplicate]: found 2 duplicate entries for crate 'syn'
    ┌─ /home/runner/work/dd-trace-rs/dd-trace-rs/Cargo.lock:249:1
    │  
249 │ ╭ syn 2.0.119 registry+https://github.com/rust-lang/crates.io-index
250 │ │ syn 3.0.3 registry+https://github.com/rust-lang/crates.io-index
    │ ╰───────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ syn v2.0.119
      ├── ctor v0.2.9
      │   └── datadog-opentelemetry v0.5.2
      │       ├── (dev) datadog-opentelemetry v0.5.2 (*)
      │       ├── propagator v0.5.2
      │       └── simple_tracing v0.5.2
      ├── displaydoc v0.2.6
      │   ├── icu_collections v2.2.0
      │   │   ├── icu_normalizer v2.2.0
      │   │   │   └── idna_adapter v1.2.2
      │   │   │       └── idna v1.1.0
      │   │   │           └── url v2.5.8
      │   │   │               ├── httpmock v0.8.2
      │   │   │               │   └── libdd-trace-utils v13.0.0
      │   │   │               │       ├── datadog-opentelemetry v0.5.2 (*)
      │   │   │               │       ├── libdd-data-pipeline v11.0.0
      │   │   │               │       │   └── datadog-opentelemetry v0.5.2 (*)
      │   │   │               │       ├── libdd-data-pipeline-core v2.0.0
      │   │   │               │       │   └── libdd-data-pipeline v11.0.0 (*)
      │   │   │               │       ├── libdd-trace-obfuscation v9.0.0
      │   │   │               │       │   ├── libdd-data-pipeline v11.0.0 (*)
      │   │   │               │       │   ├── libdd-data-pipeline-core v2.0.0 (*)
      │   │   │               │       │   └── libdd-trace-stats v10.0.0
      │   │   │               │       │       ├── libdd-data-pipeline v11.0.0 (*)
      │   │   │               │       │       └── libdd-data-pipeline-core v2.0.0 (*)
      │   │   │               │       └── libdd-trace-stats v10.0.0 (*)
      │   │   │               ├── reqwest v0.13.4
      │   │   │               │   ├── opentelemetry-http v0.32.0
      │   │   │               │   │   ├── opentelemetry-otlp v0.32.0
      │   │   │               │   │   │   └── datadog-opentelemetry v0.5.2 (*)
      │   │   │               │   │   └── propagator v0.5.2 (*)
      │   │   │               │   └── opentelemetry-otlp v0.32.0 (*)
      │   │   │               └── tower-http v0.6.11
      │   │   │                   └── reqwest v0.13.4 (*)
      │   │   └── icu_properties v2.2.0
      │   │       └── idna_adapter v1.2.2 (*)
      │   ├── icu_locale_core v2.2.0
      │   │   ├── icu_properties v2.2.0 (*)
      │   │   └── icu_provider v2.2.0
      │   │       ├── icu_normalizer v2.2.0 (*)
      │   │       └── icu_properties v2.2.0 (*)
      │   ├── icu_provider v2.2.0 (*)
      │   ├── tinystr v0.8.3
      │   │   └── icu_locale_core v2.2.0 (*)
      │   └── zerotrie v0.2.4
      │       ├── icu_properties v2.2.0 (*)
      │       └── icu_provider v2.2.0 (*)
      ├── futures-macro v0.3.33
      │   └── futures-util v0.3.33
      │       ├── futures v0.3.33
      │       │   ├── libdd-common v7.0.0
      │       │   │   ├── datadog-opentelemetry v0.5.2 (*)
      │       │   │   ├── libdd-capabilities-impl v6.0.0
      │       │   │   │   ├── datadog-opentelemetry v0.5.2 (*)
      │       │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   │   │   ├── libdd-remote-config v6.0.0
      │       │   │   │   │   └── datadog-opentelemetry v0.5.2 (*)
      │       │   │   │   ├── libdd-shared-runtime v5.0.0
      │       │   │   │   │   ├── datadog-opentelemetry v0.5.2 (*)
      │       │   │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   │   │   │   ├── libdd-dogstatsd-client v7.0.0
      │       │   │   │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   │   │   │   │   └── libdd-trace-stats v10.0.0 (*)
      │       │   │   │   │   ├── libdd-telemetry v9.0.0
      │       │   │   │   │   │   ├── datadog-opentelemetry v0.5.2 (*)
      │       │   │   │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   │   │   │   │   └── libdd-trace-stats v10.0.0 (*)
      │       │   │   │   │   └── libdd-trace-stats v10.0.0 (*)
      │       │   │   │   └── libdd-trace-stats v10.0.0 (*)
      │       │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   │   ├── libdd-data-pipeline-core v2.0.0 (*)
      │       │   │   ├── libdd-dogstatsd-client v7.0.0 (*)
      │       │   │   ├── libdd-remote-config v6.0.0 (*)
      │       │   │   ├── libdd-sampling v7.0.0
      │       │   │   │   └── datadog-opentelemetry v0.5.2 (*)
      │       │   │   ├── libdd-shared-runtime v5.0.0 (*)
      │       │   │   ├── libdd-telemetry v9.0.0 (*)
      │       │   │   ├── libdd-trace-obfuscation v9.0.0 (*)
      │       │   │   ├── libdd-trace-stats v10.0.0 (*)
      │       │   │   └── libdd-trace-utils v13.0.0 (*)
      │       │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   ├── libdd-remote-config v6.0.0 (*)
      │       │   ├── libdd-shared-runtime v5.0.0 (*)
      │       │   ├── libdd-telemetry v9.0.0 (*)
      │       │   ├── libdd-trace-stats v10.0.0 (*)
      │       │   └── libdd-trace-utils v13.0.0 (*)
      │       ├── futures-executor v0.3.33
      │       │   ├── futures v0.3.33 (*)
      │       │   └── opentelemetry_sdk v0.32.1
      │       │       ├── (dev) datadog-opentelemetry v0.5.2 (*)
      │       │       ├── opentelemetry-otlp v0.32.0 (*)
      │       │       ├── opentelemetry-proto v0.32.0
      │       │       │   └── opentelemetry-otlp v0.32.0 (*)
      │       │       ├── opentelemetry-stdout v0.32.0
      │       │       │   └── propagator v0.5.2 (*)
      │       │       └── propagator v0.5.2 (*)
      │       ├── httpmock v0.8.2 (*)
      │       ├── hyper-util v0.1.20
      │       │   ├── httpmock v0.8.2 (*)
      │       │   ├── hyper-timeout v0.5.2
      │       │   │   └── tonic v0.14.5
      │       │   │       ├── libdd-data-pipeline v11.0.0 (*)
      │       │   │       ├── opentelemetry-otlp v0.32.0 (*)
      │       │   │       ├── opentelemetry-proto v0.32.0 (*)
      │       │   │       ├── tonic-prost v0.14.5
      │       │   │       │   └── opentelemetry-proto v0.32.0 (*)
      │       │   │       └── tonic-types v0.14.5
      │       │   │           └── opentelemetry-otlp v0.32.0 (*)
      │       │   ├── libdd-common v7.0.0 (*)
      │       │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   ├── propagator v0.5.2 (*)
      │       │   ├── reqwest v0.13.4 (*)
      │       │   └── tonic v0.14.5 (*)
      │       ├── js-sys v0.3.103
      │       │   ├── getrandom v0.2.17
      │       │   │   ├── libdd-remote-config v6.0.0 (*)
      │       │   │   ├── libdd-trace-utils v13.0.0 (*)
      │       │   │   └── rand_core v0.6.4
      │       │   │       ├── rand v0.8.7
      │       │   │       │   ├── datadog-opentelemetry v0.5.2 (*)
      │       │   │       │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   │       │   ├── libdd-library-config v4.1.0
      │       │   │       │   │   └── datadog-opentelemetry v0.5.2 (*)
      │       │   │       │   └── libdd-trace-utils v13.0.0 (*)
      │       │   │       └── rand_chacha v0.3.1
      │       │   │           └── rand v0.8.7 (*)
      │       │   ├── opentelemetry v0.32.0
      │       │   │   ├── datadog-opentelemetry v0.5.2 (*)
      │       │   │   ├── opentelemetry-appender-log v0.32.0
      │       │   │   │   └── (dev) datadog-opentelemetry v0.5.2 (*)
      │       │   │   ├── opentelemetry-appender-tracing v0.32.0
      │       │   │   │   └── propagator v0.5.2 (*)
      │       │   │   ├── opentelemetry-http v0.32.0 (*)
      │       │   │   ├── opentelemetry-otlp v0.32.0 (*)
      │       │   │   ├── opentelemetry-proto v0.32.0 (*)
      │       │   │   ├── opentelemetry-stdout v0.32.0 (*)
      │       │   │   ├── opentelemetry_sdk v0.32.1 (*)
      │       │   │   ├── propagator v0.5.2 (*)
      │       │   │   ├── simple_tracing v0.5.2 (*)
      │       │   │   └── tracing-opentelemetry v0.33.0
      │       │   │       └── (dev) datadog-opentelemetry v0.5.2 (*)
      │       │   ├── reqwest v0.13.4 (*)
      │       │   ├── tracing-opentelemetry v0.33.0 (*)
      │       │   ├── uuid v1.24.0
      │       │   │   ├── datadog-opentelemetry v0.5.2 (*)
      │       │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   │   ├── libdd-remote-config v6.0.0 (*)
      │       │   │   └── libdd-telemetry v9.0.0 (*)
      │       │   ├── wasm-bindgen-futures v0.4.76
      │       │   │   ├── libdd-shared-runtime v5.0.0 (*)
      │       │   │   └── reqwest v0.13.4 (*)
      │       │   ├── web-sys v0.3.103
      │       │   │   ├── plotters v0.3.7
      │       │   │   │   └── criterion v0.5.1
      │       │   │   │       └── datadog-opentelemetry v0.5.2 (*)
      │       │   │   └── reqwest v0.13.4 (*)
      │       │   └── web-time v1.1.0
      │       │       ├── libdd-data-pipeline v11.0.0 (*)
      │       │       ├── libdd-telemetry v9.0.0 (*)
      │       │       ├── libdd-trace-stats v10.0.0 (*)
      │       │       └── tracing-opentelemetry v0.33.0 (*)
      │       ├── libdd-capabilities v4.0.0
      │       │   ├── libdd-capabilities-impl v6.0.0 (*)
      │       │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   ├── libdd-data-pipeline-core v2.0.0 (*)
      │       │   ├── libdd-remote-config v6.0.0 (*)
      │       │   ├── libdd-shared-runtime v5.0.0 (*)
      │       │   ├── libdd-telemetry v9.0.0 (*)
      │       │   ├── libdd-trace-stats v10.0.0 (*)
      │       │   └── libdd-trace-utils v13.0.0 (*)
      │       ├── libdd-common v7.0.0 (*)
      │       ├── libdd-remote-config v6.0.0 (*)
      │       ├── libdd-shared-runtime v5.0.0 (*)
      │       ├── manual_future v0.1.4
      │       │   └── libdd-remote-config v6.0.0 (*)
      │       ├── opentelemetry_sdk v0.32.1 (*)
      │       ├── reqwest v0.13.4 (*)
      │       ├── tower v0.5.3
      │       │   ├── reqwest v0.13.4 (*)
      │       │   ├── tonic v0.14.5 (*)
      │       │   └── tower-http v0.6.11 (*)
      │       └── tower-http v0.6.11 (*)
      ├── pin-project-internal v1.1.13
      │   └── pin-project v1.1.13
      │       ├── libdd-common v7.0.0 (*)
      │       └── tonic v0.14.5 (*)
      ├── prost-derive v0.14.4
      │   └── prost v0.14.4
      │       ├── libdd-data-pipeline v11.0.0 (*)
      │       ├── libdd-ddsketch v1.1.2
      │       │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   ├── libdd-telemetry v9.0.0 (*)
      │       │   └── libdd-trace-stats v10.0.0 (*)
      │       ├── libdd-library-config v4.1.0 (*)
      │       ├── libdd-trace-protobuf v5.0.1
      │       │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   ├── libdd-library-config v4.1.0 (*)
      │       │   ├── libdd-remote-config v6.0.0 (*)
      │       │   ├── libdd-trace-normalization v4.1.0
      │       │   │   └── libdd-trace-utils v13.0.0 (*)
      │       │   ├── libdd-trace-obfuscation v9.0.0 (*)
      │       │   ├── libdd-trace-stats v10.0.0 (*)
      │       │   └── libdd-trace-utils v13.0.0 (*)
      │       ├── libdd-trace-utils v13.0.0 (*)
      │       ├── opentelemetry-otlp v0.32.0 (*)
      │       ├── opentelemetry-proto v0.32.0 (*)
      │       ├── prost-types v0.14.4
      │       │   └── tonic-types v0.14.5 (*)
      │       ├── tonic-prost v0.14.5 (*)
      │       └── tonic-types v0.14.5 (*)
      ├── strum_macros v0.26.4
      │   ├── libdd-remote-config v6.0.0 (*)
      │   └── libdd-telemetry v9.0.0 (*)
      ├── synstructure v0.13.2
      │   ├── yoke-derive v0.8.2
      │   │   └── yoke v0.8.3
      │   │       ├── icu_collections v2.2.0 (*)
      │   │       ├── icu_provider v2.2.0 (*)
      │   │       ├── zerotrie v0.2.4 (*)
      │   │       └── zerovec v0.11.6
      │   │           ├── icu_collections v2.2.0 (*)
      │   │           ├── icu_locale_core v2.2.0 (*)
      │   │           ├── icu_normalizer v2.2.0 (*)
      │   │           ├── icu_properties v2.2.0 (*)
      │   │           ├── icu_provider v2.2.0 (*)
      │   │           ├── potential_utf v0.1.5
      │   │           │   └── icu_collections v2.2.0 (*)
      │   │           └── tinystr v0.8.3 (*)
      │   └── zerofrom-derive v0.1.7
      │       └── zerofrom v0.1.8
      │           ├── icu_collections v2.2.0 (*)
      │           ├── icu_provider v2.2.0 (*)
      │           ├── yoke v0.8.3 (*)
      │           ├── zerotrie v0.2.4 (*)
      │           └── zerovec v0.11.6 (*)
      ├── test-case-core v3.3.1
      │   └── test-case-macros v3.3.1
      │       └── test-case v3.3.1
      │           └── (dev) datadog-opentelemetry v0.5.2 (*)
      ├── test-case-macros v3.3.1 (*)
      ├── thiserror-impl v1.0.69
      │   └── thiserror v1.0.69
      │       ├── cargo_metadata v0.18.1
      │       │   ├── libdd-trace-utils v13.0.0 (*)
      │       │   └── tools v0.5.2
      │       └── datadog-opentelemetry v0.5.2 (*)
      ├── tokio-macros v2.7.1
      │   └── tokio v1.53.1
      │       ├── datadog-opentelemetry v0.5.2 (*)
      │       ├── h2 v0.4.15
      │       │   ├── hyper v1.11.0
      │       │   │   ├── datadog-opentelemetry v0.5.2 (*)
      │       │   │   ├── httpmock v0.8.2 (*)
      │       │   │   ├── hyper-timeout v0.5.2 (*)
      │       │   │   ├── hyper-util v0.1.20 (*)
      │       │   │   ├── libdd-common v7.0.0 (*)
      │       │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   │   ├── libdd-trace-utils v13.0.0 (*)
      │       │   │   ├── propagator v0.5.2 (*)
      │       │   │   ├── reqwest v0.13.4 (*)
      │       │   │   └── tonic v0.14.5 (*)
      │       │   └── libdd-data-pipeline v11.0.0 (*)
      │       ├── httpmock v0.8.2 (*)
      │       ├── hyper v1.11.0 (*)
      │       ├── hyper-timeout v0.5.2 (*)
      │       ├── hyper-util v0.1.20 (*)
      │       ├── libdd-capabilities-impl v6.0.0 (*)
      │       ├── libdd-common v7.0.0 (*)
      │       ├── libdd-data-pipeline v11.0.0 (*)
      │       ├── libdd-dogstatsd-client v7.0.0 (*)
      │       ├── libdd-remote-config v6.0.0 (*)
      │       ├── libdd-shared-runtime v5.0.0 (*)
      │       ├── libdd-telemetry v9.0.0 (*)
      │       ├── libdd-trace-stats v10.0.0 (*)
      │       ├── libdd-trace-utils v13.0.0 (*)
      │       ├── opentelemetry-otlp v0.32.0 (*)
      │       ├── propagator v0.5.2 (*)
      │       ├── reqwest v0.13.4 (*)
      │       ├── tokio-stream v0.1.19
      │       │   └── tonic v0.14.5 (*)
      │       ├── tokio-util v0.7.19
      │       │   ├── h2 v0.4.15 (*)
      │       │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   ├── libdd-remote-config v6.0.0 (*)
      │       │   ├── libdd-shared-runtime v5.0.0 (*)
      │       │   ├── libdd-telemetry v9.0.0 (*)
      │       │   └── tower v0.5.3 (*)
      │       ├── tonic v0.14.5 (*)
      │       └── tower v0.5.3 (*)
      ├── tracing-attributes v0.1.31
      │   └── tracing v0.1.44
      │       ├── datadog-opentelemetry v0.5.2 (*)
      │       ├── h2 v0.4.15 (*)
      │       ├── httpmock v0.8.2 (*)
      │       ├── hyper-util v0.1.20 (*)
      │       ├── libdd-data-pipeline v11.0.0 (*)
      │       ├── libdd-dogstatsd-client v7.0.0 (*)
      │       ├── libdd-remote-config v6.0.0 (*)
      │       ├── libdd-shared-runtime v5.0.0 (*)
      │       ├── libdd-telemetry v9.0.0 (*)
      │       ├── libdd-trace-stats v10.0.0 (*)
      │       ├── libdd-trace-utils v13.0.0 (*)
      │       ├── opentelemetry v0.32.0 (*)
      │       ├── opentelemetry-appender-tracing v0.32.0 (*)
      │       ├── propagator v0.5.2 (*)
      │       ├── tonic v0.14.5 (*)
      │       ├── tower v0.5.3 (*)
      │       ├── tracing-opentelemetry v0.33.0 (*)
      │       └── tracing-subscriber v0.3.23
      │           ├── (dev) datadog-opentelemetry v0.5.2 (*)
      │           ├── opentelemetry-appender-tracing v0.32.0 (*)
      │           ├── propagator v0.5.2 (*)
      │           └── tracing-opentelemetry v0.33.0 (*)
      ├── wasm-bindgen-macro-support v0.2.126
      │   └── wasm-bindgen-macro v0.2.126
      │       └── wasm-bindgen v0.2.126
      │           ├── getrandom v0.2.17 (*)
      │           ├── js-sys v0.3.103 (*)
      │           ├── plotters v0.3.7 (*)
      │           ├── reqwest v0.13.4 (*)
      │           ├── uuid v1.24.0 (*)
      │           ├── wasm-bindgen-futures v0.4.76 (*)
      │           ├── web-sys v0.3.103 (*)
      │           └── web-time v1.1.0 (*)
      ├── yoke-derive v0.8.2 (*)
      ├── zerocopy-derive v0.8.55
      │   └── zerocopy v0.8.55
      │       ├── half v2.7.1
      │       │   └── ciborium-ll v0.2.2
      │       │       └── ciborium v0.2.2
      │       │           └── criterion v0.5.1 (*)
      │       └── ppv-lite86 v0.2.21
      │           ├── rand_chacha v0.3.1 (*)
      │           └── rand_chacha v0.9.0
      │               ├── proptest v1.11.0
      │               │   └── (dev) datadog-opentelemetry v0.5.2 (*)
      │               └── rand v0.9.5
      │                   ├── opentelemetry_sdk v0.32.1 (*)
      │                   └── proptest v1.11.0 (*)
      ├── zerofrom-derive v0.1.7 (*)
      └── zerovec-derive v0.11.3
          └── zerovec v0.11.6 (*)
    ├ syn v3.0.3
      ├── async-trait v0.1.91
      │   ├── datadog-opentelemetry v0.5.2
      │   │   ├── (dev) datadog-opentelemetry v0.5.2 (*)
      │   │   ├── propagator v0.5.2
      │   │   └── simple_tracing v0.5.2
      │   ├── httpmock v0.8.2
      │   │   └── libdd-trace-utils v13.0.0
      │   │       ├── datadog-opentelemetry v0.5.2 (*)
      │   │       ├── libdd-data-pipeline v11.0.0
      │   │       │   └── datadog-opentelemetry v0.5.2 (*)
      │   │       ├── libdd-data-pipeline-core v2.0.0
      │   │       │   └── libdd-data-pipeline v11.0.0 (*)
      │   │       ├── libdd-trace-obfuscation v9.0.0
      │   │       │   ├── libdd-data-pipeline v11.0.0 (*)
      │   │       │   ├── libdd-data-pipeline-core v2.0.0 (*)
      │   │       │   └── libdd-trace-stats v10.0.0
      │   │       │       ├── libdd-data-pipeline v11.0.0 (*)
      │   │       │       └── libdd-data-pipeline-core v2.0.0 (*)
      │   │       └── libdd-trace-stats v10.0.0 (*)
      │   ├── libdd-data-pipeline v11.0.0 (*)
      │   ├── libdd-dogstatsd-client v7.0.0
      │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │   │   └── libdd-trace-stats v10.0.0 (*)
      │   ├── libdd-shared-runtime v5.0.0
      │   │   ├── datadog-opentelemetry v0.5.2 (*)
      │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │   │   ├── libdd-dogstatsd-client v7.0.0 (*)
      │   │   ├── libdd-telemetry v9.0.0
      │   │   │   ├── datadog-opentelemetry v0.5.2 (*)
      │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │   │   │   └── libdd-trace-stats v10.0.0 (*)
      │   │   └── libdd-trace-stats v10.0.0 (*)
      │   ├── libdd-telemetry v9.0.0 (*)
      │   ├── libdd-trace-stats v10.0.0 (*)
      │   ├── opentelemetry-http v0.32.0
      │   │   ├── opentelemetry-otlp v0.32.0
      │   │   │   └── datadog-opentelemetry v0.5.2 (*)
      │   │   └── propagator v0.5.2 (*)
      │   └── tonic v0.14.5
      │       ├── libdd-data-pipeline v11.0.0 (*)
      │       ├── opentelemetry-otlp v0.32.0 (*)
      │       ├── opentelemetry-proto v0.32.0
      │       │   └── opentelemetry-otlp v0.32.0 (*)
      │       ├── tonic-prost v0.14.5
      │       │   └── opentelemetry-proto v0.32.0 (*)
      │       └── tonic-types v0.14.5
      │           └── opentelemetry-otlp v0.32.0 (*)
      ├── clap_derive v4.6.4
      │   └── clap v4.6.4
      │       ├── criterion v0.5.1
      │       │   └── datadog-opentelemetry v0.5.2 (*)
      │       └── tools v0.5.2
      ├── ref-cast-impl v1.0.26
      │   └── ref-cast v1.0.26
      │       └── fluent-uri v0.4.1
      │           └── libdd-trace-obfuscation v9.0.0 (*)
      ├── serde_derive v1.0.229
      │   ├── criterion v0.5.1 (*)
      │   └── serde v1.0.229
      │       ├── assert-json-diff v2.0.2
      │       │   └── httpmock v0.8.2 (*)
      │       ├── bytes v1.12.1
      │       │   ├── h2 v0.4.15
      │       │   │   ├── hyper v1.11.0
      │       │   │   │   ├── datadog-opentelemetry v0.5.2 (*)
      │       │   │   │   ├── httpmock v0.8.2 (*)
      │       │   │   │   ├── hyper-timeout v0.5.2
      │       │   │   │   │   └── tonic v0.14.5 (*)
      │       │   │   │   ├── hyper-util v0.1.20
      │       │   │   │   │   ├── httpmock v0.8.2 (*)
      │       │   │   │   │   ├── hyper-timeout v0.5.2 (*)
      │       │   │   │   │   ├── libdd-common v7.0.0
      │       │   │   │   │   │   ├── datadog-opentelemetry v0.5.2 (*)
      │       │   │   │   │   │   ├── libdd-capabilities-impl v6.0.0
      │       │   │   │   │   │   │   ├── datadog-opentelemetry v0.5.2 (*)
      │       │   │   │   │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   │   │   │   │   │   ├── libdd-remote-config v6.0.0
      │       │   │   │   │   │   │   │   └── datadog-opentelemetry v0.5.2 (*)
      │       │   │   │   │   │   │   ├── libdd-shared-runtime v5.0.0 (*)
      │       │   │   │   │   │   │   └── libdd-trace-stats v10.0.0 (*)
      │       │   │   │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   │   │   │   │   ├── libdd-data-pipeline-core v2.0.0 (*)
      │       │   │   │   │   │   ├── libdd-dogstatsd-client v7.0.0 (*)
      │       │   │   │   │   │   ├── libdd-remote-config v6.0.0 (*)
      │       │   │   │   │   │   ├── libdd-sampling v7.0.0
      │       │   │   │   │   │   │   └── datadog-opentelemetry v0.5.2 (*)
      │       │   │   │   │   │   ├── libdd-shared-runtime v5.0.0 (*)
      │       │   │   │   │   │   ├── libdd-telemetry v9.0.0 (*)
      │       │   │   │   │   │   ├── libdd-trace-obfuscation v9.0.0 (*)
      │       │   │   │   │   │   ├── libdd-trace-stats v10.0.0 (*)
      │       │   │   │   │   │   └── libdd-trace-utils v13.0.0 (*)
      │       │   │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   │   │   │   ├── propagator v0.5.2 (*)
      │       │   │   │   │   ├── reqwest v0.13.4
      │       │   │   │   │   │   ├── opentelemetry-http v0.32.0 (*)
      │       │   │   │   │   │   └── opentelemetry-otlp v0.32.0 (*)
      │       │   │   │   │   └── tonic v0.14.5 (*)
      │       │   │   │   ├── libdd-common v7.0.0 (*)
      │       │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   │   │   ├── libdd-trace-utils v13.0.0 (*)
      │       │   │   │   ├── propagator v0.5.2 (*)
      │       │   │   │   ├── reqwest v0.13.4 (*)
      │       │   │   │   └── tonic v0.14.5 (*)
      │       │   │   └── libdd-data-pipeline v11.0.0 (*)
      │       │   ├── headers v0.4.1
      │       │   │   └── httpmock v0.8.2 (*)
      │       │   ├── http v1.4.2
      │       │   │   ├── h2 v0.4.15 (*)
      │       │   │   ├── headers v0.4.1 (*)
      │       │   │   ├── headers-core v0.3.0
      │       │   │   │   └── headers v0.4.1 (*)
      │       │   │   ├── http-body v1.1.0
      │       │   │   │   ├── http-body-util v0.1.4
      │       │   │   │   │   ├── httpmock v0.8.2 (*)
      │       │   │   │   │   ├── libdd-capabilities-impl v6.0.0 (*)
      │       │   │   │   │   ├── libdd-common v7.0.0 (*)
      │       │   │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   │   │   │   ├── libdd-remote-config v6.0.0 (*)
      │       │   │   │   │   ├── libdd-trace-utils v13.0.0 (*)
      │       │   │   │   │   ├── propagator v0.5.2 (*)
      │       │   │   │   │   ├── reqwest v0.13.4 (*)
      │       │   │   │   │   └── tonic v0.14.5 (*)
      │       │   │   │   ├── hyper v1.11.0 (*)
      │       │   │   │   ├── hyper-util v0.1.20 (*)
      │       │   │   │   ├── libdd-common v7.0.0 (*)
      │       │   │   │   ├── libdd-trace-utils v13.0.0 (*)
      │       │   │   │   ├── reqwest v0.13.4 (*)
      │       │   │   │   ├── tonic v0.14.5 (*)
      │       │   │   │   └── tower-http v0.6.11
      │       │   │   │       └── reqwest v0.13.4 (*)
      │       │   │   ├── http-body-util v0.1.4 (*)
      │       │   │   ├── httpmock v0.8.2 (*)
      │       │   │   ├── hyper v1.11.0 (*)
      │       │   │   ├── hyper-util v0.1.20 (*)
      │       │   │   ├── libdd-capabilities v4.0.0
      │       │   │   │   ├── libdd-capabilities-impl v6.0.0 (*)
      │       │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   │   │   ├── libdd-data-pipeline-core v2.0.0 (*)
      │       │   │   │   ├── libdd-remote-config v6.0.0 (*)
      │       │   │   │   ├── libdd-shared-runtime v5.0.0 (*)
      │       │   │   │   ├── libdd-telemetry v9.0.0 (*)
      │       │   │   │   ├── libdd-trace-stats v10.0.0 (*)
      │       │   │   │   └── libdd-trace-utils v13.0.0 (*)
      │       │   │   ├── libdd-capabilities-impl v6.0.0 (*)
      │       │   │   ├── libdd-common v7.0.0 (*)
      │       │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   │   ├── libdd-data-pipeline-core v2.0.0 (*)
      │       │   │   ├── libdd-dogstatsd-client v7.0.0 (*)
      │       │   │   ├── libdd-remote-config v6.0.0 (*)
      │       │   │   ├── libdd-telemetry v9.0.0 (*)
      │       │   │   ├── libdd-trace-stats v10.0.0 (*)
      │       │   │   ├── libdd-trace-utils v13.0.0 (*)
      │       │   │   ├── opentelemetry-http v0.32.0 (*)
      │       │   │   ├── opentelemetry-otlp v0.32.0 (*)
      │       │   │   ├── reqwest v0.13.4 (*)
      │       │   │   ├── tonic v0.14.5 (*)
      │       │   │   └── tower-http v0.6.11 (*)
      │       │   ├── http-body v1.1.0 (*)
      │       │   ├── http-body-util v0.1.4 (*)
      │       │   ├── httpmock v0.8.2 (*)
      │       │   ├── hyper v1.11.0 (*)
      │       │   ├── hyper-util v0.1.20 (*)
      │       │   ├── libdd-capabilities v4.0.0 (*)
      │       │   ├── libdd-capabilities-impl v6.0.0 (*)
      │       │   ├── libdd-common v7.0.0 (*)
      │       │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   ├── libdd-remote-config v6.0.0 (*)
      │       │   ├── libdd-telemetry v9.0.0 (*)
      │       │   ├── libdd-trace-utils v13.0.0 (*)
      │       │   ├── opentelemetry-http v0.32.0 (*)
      │       │   ├── prost v0.14.4
      │       │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   │   ├── libdd-ddsketch v1.1.2
      │       │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   │   │   ├── libdd-telemetry v9.0.0 (*)
      │       │   │   │   └── libdd-trace-stats v10.0.0 (*)
      │       │   │   ├── libdd-library-config v4.1.0
      │       │   │   │   └── datadog-opentelemetry v0.5.2 (*)
      │       │   │   ├── libdd-trace-protobuf v5.0.1
      │       │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   │   │   ├── libdd-library-config v4.1.0 (*)
      │       │   │   │   ├── libdd-remote-config v6.0.0 (*)
      │       │   │   │   ├── libdd-trace-normalization v4.1.0
      │       │   │   │   │   └── libdd-trace-utils v13.0.0 (*)
      │       │   │   │   ├── libdd-trace-obfuscation v9.0.0 (*)
      │       │   │   │   ├── libdd-trace-stats v10.0.0 (*)
      │       │   │   │   └── libdd-trace-utils v13.0.0 (*)
      │       │   │   ├── libdd-trace-utils v13.0.0 (*)
      │       │   │   ├── opentelemetry-otlp v0.32.0 (*)
      │       │   │   ├── opentelemetry-proto v0.32.0 (*)
      │       │   │   ├── prost-types v0.14.4
      │       │   │   │   └── tonic-types v0.14.5 (*)
      │       │   │   ├── tonic-prost v0.14.5 (*)
      │       │   │   └── tonic-types v0.14.5 (*)
      │       │   ├── reqwest v0.13.4 (*)
      │       │   ├── tokio v1.53.1
      │       │   │   ├── datadog-opentelemetry v0.5.2 (*)
      │       │   │   ├── h2 v0.4.15 (*)
      │       │   │   ├── httpmock v0.8.2 (*)
      │       │   │   ├── hyper v1.11.0 (*)
      │       │   │   ├── hyper-timeout v0.5.2 (*)
      │       │   │   ├── hyper-util v0.1.20 (*)
      │       │   │   ├── libdd-capabilities-impl v6.0.0 (*)
      │       │   │   ├── libdd-common v7.0.0 (*)
      │       │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   │   ├── libdd-dogstatsd-client v7.0.0 (*)
      │       │   │   ├── libdd-remote-config v6.0.0 (*)
      │       │   │   ├── libdd-shared-runtime v5.0.0 (*)
      │       │   │   ├── libdd-telemetry v9.0.0 (*)
      │       │   │   ├── libdd-trace-stats v10.0.0 (*)
      │       │   │   ├── libdd-trace-utils v13.0.0 (*)
      │       │   │   ├── opentelemetry-otlp v0.32.0 (*)
      │       │   │   ├── propagator v0.5.2 (*)
      │       │   │   ├── reqwest v0.13.4 (*)
      │       │   │   ├── tokio-stream v0.1.19
      │       │   │   │   └── tonic v0.14.5 (*)
      │       │   │   ├── tokio-util v0.7.19
      │       │   │   │   ├── h2 v0.4.15 (*)
      │       │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   │   │   ├── libdd-remote-config v6.0.0 (*)
      │       │   │   │   ├── libdd-shared-runtime v5.0.0 (*)
      │       │   │   │   ├── libdd-telemetry v9.0.0 (*)
      │       │   │   │   └── tower v0.5.3
      │       │   │   │       ├── reqwest v0.13.4 (*)
      │       │   │   │       ├── tonic v0.14.5 (*)
      │       │   │   │       └── tower-http v0.6.11 (*)
      │       │   │   ├── tonic v0.14.5 (*)
      │       │   │   └── tower v0.5.3 (*)
      │       │   ├── tokio-util v0.7.19 (*)
      │       │   ├── tonic v0.14.5 (*)
      │       │   ├── tonic-prost v0.14.5 (*)
      │       │   └── tower-http v0.6.11 (*)
      │       ├── cargo-platform v0.1.7
      │       │   ├── cargo_metadata v0.18.1
      │       │   │   ├── libdd-trace-utils v13.0.0 (*)
      │       │   │   └── tools v0.5.2 (*)
      │       │   └── libdd-trace-utils v13.0.0 (*)
      │       ├── cargo_metadata v0.18.1 (*)
      │       ├── ciborium v0.2.2
      │       │   └── criterion v0.5.1 (*)
      │       ├── criterion v0.5.1 (*)
      │       ├── datadog-opentelemetry v0.5.2 (*)
      │       ├── httpmock v0.8.2 (*)
      │       ├── libdd-common v7.0.0 (*)
      │       ├── libdd-data-pipeline v11.0.0 (*)
      │       ├── libdd-dogstatsd-client v7.0.0 (*)
      │       ├── libdd-library-config v4.1.0 (*)
      │       ├── libdd-remote-config v6.0.0 (*)
      │       ├── libdd-sampling v7.0.0 (*)
      │       ├── libdd-telemetry v9.0.0 (*)
      │       ├── libdd-tinybytes v1.1.4
      │       │   ├── datadog-opentelemetry v0.5.2 (*)
      │       │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   └── libdd-trace-utils v13.0.0 (*)
      │       ├── libdd-trace-obfuscation v9.0.0 (*)
      │       ├── libdd-trace-protobuf v5.0.1 (*)
      │       ├── libdd-trace-stats v10.0.0 (*)
      │       ├── libdd-trace-utils v13.0.0 (*)
      │       ├── rmp-serde v1.3.1
      │       │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   ├── libdd-library-config v4.1.0 (*)
      │       │   ├── libdd-trace-stats v10.0.0 (*)
      │       │   └── libdd-trace-utils v13.0.0 (*)
      │       ├── serde-transcode v1.1.1
      │       │   └── libdd-trace-utils v13.0.0 (*)
      │       ├── serde_regex v1.2.0
      │       │   └── httpmock v0.8.2 (*)
      │       ├── serde_yaml v0.9.34+deprecated
      │       │   └── libdd-library-config v4.1.0 (*)
      │       └── tinytemplate v1.2.1
      │           └── criterion v0.5.1 (*)
      └── thiserror-impl v2.0.19
          └── thiserror v2.0.19
              ├── httpmock v0.8.2 (*)
              ├── libdd-capabilities v4.0.0 (*)
              ├── libdd-common v7.0.0 (*)
              ├── libdd-data-pipeline-core v2.0.0 (*)
              ├── libdd-remote-config v6.0.0 (*)
              ├── opentelemetry v0.32.0
              │   ├── datadog-opentelemetry v0.5.2 (*)
              │   ├── opentelemetry-appender-log v0.32.0
              │   │   └── (dev) datadog-opentelemetry v0.5.2 (*)
              │   ├── opentelemetry-appender-tracing v0.32.0
              │   │   └── propagator v0.5.2 (*)
              │   ├── opentelemetry-http v0.32.0 (*)
              │   ├── opentelemetry-otlp v0.32.0 (*)
              │   ├── opentelemetry-proto v0.32.0 (*)
              │   ├── opentelemetry-stdout v0.32.0
              │   │   └── propagator v0.5.2 (*)
              │   ├── opentelemetry_sdk v0.32.1
              │   │   ├── (dev) datadog-opentelemetry v0.5.2 (*)
              │   │   ├── opentelemetry-otlp v0.32.0 (*)
              │   │   ├── opentelemetry-proto v0.32.0 (*)
              │   │   ├── opentelemetry-stdout v0.32.0 (*)
              │   │   └── propagator v0.5.2 (*)
              │   ├── propagator v0.5.2 (*)
              │   ├── simple_tracing v0.5.2 (*)
              │   └── tracing-opentelemetry v0.33.0
              │       └── (dev) datadog-opentelemetry v0.5.2 (*)
              ├── opentelemetry-otlp v0.32.0 (*)
              └── opentelemetry_sdk v0.32.1 (*)

warning[duplicate]: found 2 duplicate entries for crate 'thiserror'
    ┌─ /home/runner/work/dd-trace-rs/dd-trace-rs/Cargo.lock:261:1
    │  
261 │ ╭ thiserror 1.0.69 registry+https://github.com/rust-lang/crates.io-index
262 │ │ thiserror 2.0.19 registry+https://github.com/rust-lang/crates.io-index
    │ ╰──────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ thiserror v1.0.69
      ├── cargo_metadata v0.18.1
      │   ├── libdd-trace-utils v13.0.0
      │   │   ├── datadog-opentelemetry v0.5.2
      │   │   │   ├── (dev) datadog-opentelemetry v0.5.2 (*)
      │   │   │   ├── propagator v0.5.2
      │   │   │   └── simple_tracing v0.5.2
      │   │   ├── libdd-data-pipeline v11.0.0
      │   │   │   └── datadog-opentelemetry v0.5.2 (*)
      │   │   ├── libdd-data-pipeline-core v2.0.0
      │   │   │   └── libdd-data-pipeline v11.0.0 (*)
      │   │   ├── libdd-trace-obfuscation v9.0.0
      │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │   │   │   ├── libdd-data-pipeline-core v2.0.0 (*)
      │   │   │   └── libdd-trace-stats v10.0.0
      │   │   │       ├── libdd-data-pipeline v11.0.0 (*)
      │   │   │       └── libdd-data-pipeline-core v2.0.0 (*)
      │   │   └── libdd-trace-stats v10.0.0 (*)
      │   └── tools v0.5.2
      └── datadog-opentelemetry v0.5.2 (*)
    ├ thiserror v2.0.19
      ├── httpmock v0.8.2
      │   └── libdd-trace-utils v13.0.0
      │       ├── datadog-opentelemetry v0.5.2
      │       │   ├── (dev) datadog-opentelemetry v0.5.2 (*)
      │       │   ├── propagator v0.5.2
      │       │   └── simple_tracing v0.5.2
      │       ├── libdd-data-pipeline v11.0.0
      │       │   └── datadog-opentelemetry v0.5.2 (*)
      │       ├── libdd-data-pipeline-core v2.0.0
      │       │   └── libdd-data-pipeline v11.0.0 (*)
      │       ├── libdd-trace-obfuscation v9.0.0
      │       │   ├── libdd-data-pipeline v11.0.0 (*)
      │       │   ├── libdd-data-pipeline-core v2.0.0 (*)
      │       │   └── libdd-trace-stats v10.0.0
      │       │       ├── libdd-data-pipeline v11.0.0 (*)
      │       │       └── libdd-data-pipeline-core v2.0.0 (*)
      │       └── libdd-trace-stats v10.0.0 (*)
      ├── libdd-capabilities v4.0.0
      │   ├── libdd-capabilities-impl v6.0.0
      │   │   ├── datadog-opentelemetry v0.5.2 (*)
      │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │   │   ├── libdd-remote-config v6.0.0
      │   │   │   └── datadog-opentelemetry v0.5.2 (*)
      │   │   ├── libdd-shared-runtime v5.0.0
      │   │   │   ├── datadog-opentelemetry v0.5.2 (*)
      │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │   │   │   ├── libdd-dogstatsd-client v7.0.0
      │   │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │   │   │   │   └── libdd-trace-stats v10.0.0 (*)
      │   │   │   ├── libdd-telemetry v9.0.0
      │   │   │   │   ├── datadog-opentelemetry v0.5.2 (*)
      │   │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
      │   │   │   │   └── libdd-trace-stats v10.0.0 (*)
      │   │   │   └── libdd-trace-stats v10.0.0 (*)
      │   │   └── libdd-trace-stats v10.0.0 (*)
      │   ├── libdd-data-pipeline v11.0.0 (*)
      │   ├── libdd-data-pipeline-core v2.0.0 (*)
      │   ├── libdd-remote-config v6.0.0 (*)
      │   ├── libdd-shared-runtime v5.0.0 (*)
      │   ├── libdd-telemetry v9.0.0 (*)
      │   ├── libdd-trace-stats v10.0.0 (*)
      │   └── libdd-trace-utils v13.0.0 (*)
      ├── libdd-common v7.0.0
      │   ├── datadog-opentelemetry v0.5.2 (*)
      │   ├── libdd-capabilities-impl v6.0.0 (*)
      │   ├── libdd-data-pipeline v11.0.0 (*)
      │   ├── libdd-data-pipeline-core v2.0.0 (*)
      │   ├── libdd-dogstatsd-client v7.0.0 (*)
      │   ├── libdd-remote-config v6.0.0 (*)
      │   ├── libdd-sampling v7.0.0
      │   │   └── datadog-opentelemetry v0.5.2 (*)
      │   ├── libdd-shared-runtime v5.0.0 (*)
      │   ├── libdd-telemetry v9.0.0 (*)
      │   ├── libdd-trace-obfuscation v9.0.0 (*)
      │   ├── libdd-trace-stats v10.0.0 (*)
      │   └── libdd-trace-utils v13.0.0 (*)
      ├── libdd-data-pipeline-core v2.0.0 (*)
      ├── libdd-remote-config v6.0.0 (*)
      ├── opentelemetry v0.32.0
      │   ├── datadog-opentelemetry v0.5.2 (*)
      │   ├── opentelemetry-appender-log v0.32.0
      │   │   └── (dev) datadog-opentelemetry v0.5.2 (*)
      │   ├── opentelemetry-appender-tracing v0.32.0
      │   │   └── propagator v0.5.2 (*)
      │   ├── opentelemetry-http v0.32.0
      │   │   ├── opentelemetry-otlp v0.32.0
      │   │   │   └── datadog-opentelemetry v0.5.2 (*)
      │   │   └── propagator v0.5.2 (*)
      │   ├── opentelemetry-otlp v0.32.0 (*)
      │   ├── opentelemetry-proto v0.32.0
      │   │   └── opentelemetry-otlp v0.32.0 (*)
      │   ├── opentelemetry-stdout v0.32.0
      │   │   └── propagator v0.5.2 (*)
      │   ├── opentelemetry_sdk v0.32.1
      │   │   ├── (dev) datadog-opentelemetry v0.5.2 (*)
      │   │   ├── opentelemetry-otlp v0.32.0 (*)
      │   │   ├── opentelemetry-proto v0.32.0 (*)
      │   │   ├── opentelemetry-stdout v0.32.0 (*)
      │   │   └── propagator v0.5.2 (*)
      │   ├── propagator v0.5.2 (*)
      │   ├── simple_tracing v0.5.2 (*)
      │   └── tracing-opentelemetry v0.33.0
      │       └── (dev) datadog-opentelemetry v0.5.2 (*)
      ├── opentelemetry-otlp v0.32.0 (*)
      └── opentelemetry_sdk v0.32.1 (*)

warning[duplicate]: found 2 duplicate entries for crate 'thiserror-impl'
    ┌─ /home/runner/work/dd-trace-rs/dd-trace-rs/Cargo.lock:263:1
    │  
263 │ ╭ thiserror-impl 1.0.69 registry+https://github.com/rust-lang/crates.io-index
264 │ │ thiserror-impl 2.0.19 registry+https://github.com/rust-lang/crates.io-index
    │ ╰───────────────────────────────────────────────────────────────────────────┘ lock entries
    │  
    ├ thiserror-impl v1.0.69
      └── thiserror v1.0.69
          ├── cargo_metadata v0.18.1
          │   ├── libdd-trace-utils v13.0.0
          │   │   ├── datadog-opentelemetry v0.5.2
          │   │   │   ├── (dev) datadog-opentelemetry v0.5.2 (*)
          │   │   │   ├── propagator v0.5.2
          │   │   │   └── simple_tracing v0.5.2
          │   │   ├── libdd-data-pipeline v11.0.0
          │   │   │   └── datadog-opentelemetry v0.5.2 (*)
          │   │   ├── libdd-data-pipeline-core v2.0.0
          │   │   │   └── libdd-data-pipeline v11.0.0 (*)
          │   │   ├── libdd-trace-obfuscation v9.0.0
          │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
          │   │   │   ├── libdd-data-pipeline-core v2.0.0 (*)
          │   │   │   └── libdd-trace-stats v10.0.0
          │   │   │       ├── libdd-data-pipeline v11.0.0 (*)
          │   │   │       └── libdd-data-pipeline-core v2.0.0 (*)
          │   │   └── libdd-trace-stats v10.0.0 (*)
          │   └── tools v0.5.2
          └── datadog-opentelemetry v0.5.2 (*)
    ├ thiserror-impl v2.0.19
      └── thiserror v2.0.19
          ├── httpmock v0.8.2
          │   └── libdd-trace-utils v13.0.0
          │       ├── datadog-opentelemetry v0.5.2
          │       │   ├── (dev) datadog-opentelemetry v0.5.2 (*)
          │       │   ├── propagator v0.5.2
          │       │   └── simple_tracing v0.5.2
          │       ├── libdd-data-pipeline v11.0.0
          │       │   └── datadog-opentelemetry v0.5.2 (*)
          │       ├── libdd-data-pipeline-core v2.0.0
          │       │   └── libdd-data-pipeline v11.0.0 (*)
          │       ├── libdd-trace-obfuscation v9.0.0
          │       │   ├── libdd-data-pipeline v11.0.0 (*)
          │       │   ├── libdd-data-pipeline-core v2.0.0 (*)
          │       │   └── libdd-trace-stats v10.0.0
          │       │       ├── libdd-data-pipeline v11.0.0 (*)
          │       │       └── libdd-data-pipeline-core v2.0.0 (*)
          │       └── libdd-trace-stats v10.0.0 (*)
          ├── libdd-capabilities v4.0.0
          │   ├── libdd-capabilities-impl v6.0.0
          │   │   ├── datadog-opentelemetry v0.5.2 (*)
          │   │   ├── libdd-data-pipeline v11.0.0 (*)
          │   │   ├── libdd-remote-config v6.0.0
          │   │   │   └── datadog-opentelemetry v0.5.2 (*)
          │   │   ├── libdd-shared-runtime v5.0.0
          │   │   │   ├── datadog-opentelemetry v0.5.2 (*)
          │   │   │   ├── libdd-data-pipeline v11.0.0 (*)
          │   │   │   ├── libdd-dogstatsd-client v7.0.0
          │   │   │   │   ├── libdd-data-pipe...*[Comment body truncated]*

mhlidd and others added 4 commits September 30, 2026 13:13
Move the _dd.sdk.otlp_export=false marker out of the OTel to Datadog span
conversion and into send_trace_chunks, through a new mark_native_export
helper. The exporter is where the output format is chosen, so once OTLP
trace export lands the marker can be gated there on the actual export
mode. The payload is unchanged.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Move the _dd.sdk.otlp_export=false marker back into
otel_trace_chunk_to_dd_trace_chunk and drop the mark_native_export
helper. Add comments at the marker and at its call site noting that
the export mode must be passed in to skip the tag once OTLP trace
export is added. The payload is unchanged.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Tag the first span of each chunk from inside the per-span map, using
enumerate and a small add_native_export_marker helper, instead of
editing the collected Vec afterwards. The conversion chain is the
function's return value again, as on main. The payload is unchanged.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The snapshot tests already check the full payload, including the
marker on the first span of each chunk only, so the inline unit tests
in ddtrace_transform.rs are redundant.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@mhlidd
mhlidd marked this pull request as ready for review September 30, 2026 17:57
@mhlidd
mhlidd requested a review from a team as a code owner September 30, 2026 17:57
@mhlidd
mhlidd requested a balanced review from Copilot October 1, 2026 17:45

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

The marker is correctly limited to each chunk’s first span and is covered by multi-span integration snapshots.

Review effort: Balanced
Findings: None

What changed in this PR

Adds a native-export marker to the first span of every trace chunk sent to the Datadog Agent.

Changes:

  • Adds _dd.sdk.otlp_export: "false" during trace-chunk conversion.
  • Documents future OTLP export-mode handling.
  • Updates integration snapshots to verify first-span-only placement.
File Description
datadog-opentelemetry/​src/​ddtrace_transform.rs Adds the native export marker.
datadog-opentelemetry/​src/​span_exporter.rs Documents future export-mode propagation.
datadog-opentelemetry/​tests/​snapshots/​tracing_api/​test_smoke.json Verifies multi-span marker placement.
datadog-opentelemetry/​tests/​snapshots/​tracing_api/​test_remote_span_extraction_propagation.json Updates expected trace metadata.
datadog-opentelemetry/​tests/​snapshots/​tracing_api/​test_instrument_error_reporting.json Updates expected error-span metadata.
datadog-opentelemetry/​tests/​snapshots/​opentelemetry_api/​test_trace_writer_synchronous_mode.json Updates synchronous-export expectations.
datadog-opentelemetry/​tests/​snapshots/​opentelemetry_api/​test_stats_cardinality_limit.json Updates each expected trace chunk.
datadog-opentelemetry/​tests/​snapshots/​opentelemetry_api/​test_sampling_extraction.json Updates sampling expectations.
datadog-opentelemetry/​tests/​snapshots/​opentelemetry_api/​test_remote_config_sampling_rates.json Updates remote-sampling expectations.
datadog-opentelemetry/​tests/​snapshots/​opentelemetry_api/​test_received_traces.json Updates received-trace expectations.
datadog-opentelemetry/​tests/​snapshots/​opentelemetry_api/​test_injection_extraction.json Updates propagation expectations.
datadog-opentelemetry/​tests/​snapshots/​opentelemetry_api/​test_injection_extraction_extract_behavior_restart_single_context.json Updates restart-mode expectations.
datadog-opentelemetry/​tests/​snapshots/​opentelemetry_api/​test_injection_extraction_extract_behavior_restart_multiple_contexts.json Updates multi-context expectations.
datadog-opentelemetry/​tests/​snapshots/​opentelemetry_api/​test_injection_extraction_extract_behavior_restart_child_not_relinked.json Updates child-link expectations.
datadog-opentelemetry/​tests/​snapshots/​opentelemetry_api/​test_injection_extraction_extract_behavior_ignore.json Updates ignore-mode expectations.
datadog-opentelemetry/​tests/​snapshots/​opentelemetry_api/​test_baggage_with_trace_context_applies_baggage_span_tags.json Updates baggage expectations.
datadog-opentelemetry/​tests/​snapshots/​opentelemetry_api/​test_baggage_only_no_trace_context_applies_baggage_span_tags.json Updates baggage-only expectations.
datadog-opentelemetry/​tests/​snapshots/​opentelemetry_api/​test_baggage_not_applied_to_non_local_root_child.json Updates non-local-root expectations.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants