[SLES-2907] chore(deps): bump dd-trace-rs to datadog-opentelemetry-v0.5.0#1302
[SLES-2907] chore(deps): bump dd-trace-rs to datadog-opentelemetry-v0.5.0#1302litianningdatadog wants to merge 5 commits into
Conversation
….5.0 Bumps datadog-opentelemetry from f51cefc4 (pre-v0.3.0) to 50bfea87 (v0.5.0), adding features = ["_unstable_propagation"] since the propagation module bottlecap uses is now feature-gated upstream. Bumps dogstatsd/datadog-fips/datadog-agent-config to the serverless-components commit that carries the matching dd-trace-rs pin (DataDog/serverless-components#144, currently unmerged - rev will be amended to the merged SHA before this PR leaves draft). v0.5.0 adds native B3 (single and multi-header) propagation support, fixing "Unknown trace propagation style: 'b3multi'" errors reported by customers (SLES-2907). Code changes required by the bump: - src/config/propagation_wrapper.rs: implement the new required PropagationConfig::trace_propagation_behavior_extract method (hardcoded to Continue, matching prior implicit behavior; bottlecap does not expose DD_TRACE_PROPAGATION_BEHAVIOR_EXTRACT). - src/traces/propagation/mod.rs: DatadogCompositePropagator::extract now returns ExtractResult instead of Option<SpanContext>; adapted the wrapper to match on it. - src/lifecycle/invocation/triggers/step_function_event.rs: the constants module re-export was removed upstream (moved to libdd-sampling internally); hardcoded the one test-only usage of SAMPLING_DECISION_MAKER_TAG_KEY ("_dd.p.dm") instead of adding a new dependency for it. Verified: cargo check/clippy/fmt clean, cargo test --lib 530/530 pass, dd-rust-license-tool check passes. --features fips hits a pre-existing local-macOS-only dylib issue in libddwaf-sys, confirmed identical on unmodified main.
|
DataDog/serverless-components#144 merged as 56779dec9f4c9bcc48abcc9833ca4fa4b9d8d627. Re-pin dogstatsd/datadog-fips/datadog-agent-config to that commit instead of the pre-merge draft SHA, and regenerate Cargo.lock. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Updates Bottlecap’s tracing propagation stack to a newer datadog-opentelemetry (dd-trace-rs) revision to pick up native B3 (single/multi) propagation support and align related serverless-components dependencies, with small adapter changes to keep Bottlecap behavior consistent with the updated upstream APIs.
Changes:
- Bump
datadog-opentelemetrytodatadog-opentelemetry-v0.5.0and enable the upstream feature gate (_unstable_propagation) needed for Bottlecap’s propagation usage. - Adapt Bottlecap’s propagation wrapper to the new upstream APIs (
ExtractResultand the requiredPropagationConfig::trace_propagation_behavior_extract). - Remove reliance on an upstream re-exported constant in Step Function trigger tests by hardcoding the stable wire-protocol tag key; update 3rd-party license inventory accordingly.
Reviewed changes
Copilot reviewed 5 out of 6 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| bottlecap/src/traces/propagation/mod.rs | Updates extraction adapter to handle upstream ExtractResult while preserving Bottlecap’s prior Option<SpanContext> behavior and baggage attachment. |
| bottlecap/src/lifecycle/invocation/triggers/step_function_event.rs | Replaces removed upstream constant re-export with a test-local hardcoded tag key. |
| bottlecap/src/config/propagation_wrapper.rs | Implements newly required PropagationConfig::trace_propagation_behavior_extract using upstream default behavior. |
| bottlecap/LICENSE-3rdparty.csv | Adds newly introduced transitive dependencies to the 3rd-party license inventory. |
| bottlecap/Cargo.toml | Bumps dd-trace-rs pin and aligns serverless-components git revs; enables required feature gate. |
| bottlecap/Cargo.lock | Locks the updated dependency graph produced by the bumps. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 1303670371
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
The b3/b3multi extractors in datadog-opentelemetry v0.5.0 return a full 128-bit trace_id but don't set the _dd.p.tid tag (unlike the Datadog format extractor). Downstream code casts trace_id to u64 and relies on that tag to avoid losing the high bits, so 128-bit B3 trace IDs were silently truncated to 64 bits when re-injected into headers or spans. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Overview
Bumps
datadog-opentelemetry(dd-trace-rs) fromf51cefc4(pre-v0.3.0) to50bfea87(datadog-opentelemetry-v0.5.0), addingfeatures = ["_unstable_propagation"]since thepropagationmodulebottlecap uses is now feature-gated upstream (was unconditionally public at
our old pin).
Also bumps
dogstatsd/datadog-fips/datadog-agent-configto theserverless-componentscommit that carries the matching dd-trace-rs pin —DataDog/serverless-components#144,
currently unmerged (draft). This PR is opened as draft for the same
reason: the
revfor those three deps will be amended to the merged SHAbefore this leaves draft.
v0.5.0 adds native B3 (single- and multi-header) trace propagation support,
fixing
Failed to parse trace propagation style: Unknown trace propagation style: 'b3multi', ignoringerrors reported by a customer — seeSLES-2907.
Code changes required by the bump
src/config/propagation_wrapper.rs— implements the new requiredPropagationConfig::trace_propagation_behavior_extractmethod (hardcodedto
Continue, matching prior implicit behavior; bottlecap doesn't exposeDD_TRACE_PROPAGATION_BEHAVIOR_EXTRACT).src/traces/propagation/mod.rs—DatadogCompositePropagator::extractnowreturns
ExtractResultinstead ofOption<SpanContext>; adapted thewrapper to match on it (
Continue(ctx) -> Some(ctx), everything else ->None, preserving current behavior).src/lifecycle/invocation/triggers/step_function_event.rs— thedatadog_opentelemetry::constantsre-export was removed upstream (movedto
libdd-samplinginternally); hardcoded the one test-only usage ofSAMPLING_DECISION_MAKER_TAG_KEY("_dd.p.dm") rather than adding a newdependency for it.
Testing
cargo check --all-targets— cleancargo clippy --all-targets -- -D warnings— cleancargo fmt --all -- --check— cleancargo test --lib— 530/530 passdd-rust-license-tool check— passescargo tree --duplicates— no newdatadog-opentelemetry/tonic/prostduplication;
opentelemetry/opentelemetry_sdk/-semantic-conventionsdo pick up a new duplicate version (0.31 direct vs. 0.32 via dd-trace-rs) —
non-blocking, binary-size-only, bottlecap never shares those types across
the
datadog_opentelemetryboundary--features fipshits a pre-existing local-macOS-only dylib loading issuein
libddwaf-sys, confirmed identical on unmodifiedmain(needsLinux/CI, unrelated to this change)
Dependency graph:
