chore(deps): bump dd-trace-rs to datadog-opentelemetry-v0.5.0#144
Conversation
Bumps the datadog-opentelemetry git rev pinned by datadog-agent-config from f51cefc4 (pre-v0.3.0) to 50bfea87 (v0.5.0). Regenerates Cargo.lock and LICENSE-3rdparty.csv accordingly. v0.5.0 adds native B3 (single and multi-header) trace propagation support, which is needed to fix "Unknown trace propagation style: 'b3multi'" errors reported by customers using B3 propagation with the Lambda extension. This is a prerequisite for bumping dd-trace-rs in DataDog/datadog-lambda-extension, whose own direct pin of datadog-opentelemetry must stay in lockstep with this crate's pin (datadog-agent-config re-exports datadog_opentelemetry::configuration:: TracePropagationStyle, so the two pins must resolve to the same revision). Verified: cargo check/clippy/fmt clean across the workspace, datadog-agent-config's 79 unit tests pass, dd-rust-license-tool check passes. Two pre-existing dogstatsd::flusher test failures are unrelated (reproduce identically on unmodified main). JIRA: https://datadoghq.atlassian.net/browse/SLES-2907
There was a problem hiding this comment.
Pull request overview
Updates the datadog-agent-config crate’s pinned datadog-opentelemetry (dd-trace-rs) revision to datadog-opentelemetry-v0.5.0, primarily to enable native B3 (single/multi-header) trace propagation support and regenerate dependency metadata accordingly.
Changes:
- Bump
datadog-opentelemetrygitrevincrates/datadog-agent-config. - Regenerate
Cargo.lockto reflect updated transitive dependency graph. - Regenerate
LICENSE-3rdparty.csvto include newly introduced transitive crates.
Reviewed changes
Copilot reviewed 2 out of 3 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| LICENSE-3rdparty.csv | Adds newly introduced transitive crates to third-party license inventory. |
| crates/datadog-agent-config/Cargo.toml | Updates the pinned datadog-opentelemetry git revision to v0.5.0. |
| Cargo.lock | Updates the full resolved dependency graph for the workspace after the bump. |
| serde_json = { version = "1.0", default-features = false, features = ["alloc"] } | ||
| tracing = { version = "0.1", default-features = false } | ||
| datadog-opentelemetry = { git = "https://github.com/DataDog/dd-trace-rs", rev = "f51cefc4ad24bec81b38fb2f36b1ed93f21ae913", default-features = false } | ||
| datadog-opentelemetry = { git = "https://github.com/DataDog/dd-trace-rs", rev = "50bfea8755b75e448a80ac04d53fa7edd414eefe", default-features = false } |
There was a problem hiding this comment.
Good catch. Digging in, libdd-trace-utils and libdd-trace-obfuscation did just bump major versions (8→9, 4→5), so actually collapsing this means either patching in a shared libdatadog rev bump across ~13 pin sites in this workspace, or switching these two crates to the crates.io versions directly — both untested major bumps in code that also handles span obfuscation, and it'd touch dogstatsd/trace-agent/serverless-compat too, not just this crate.
Given that, I checked what it's actually costing us: built the downstream Lambda extension binary before/after this bump (release profile, LTO+strip) — 7,664,816 → 7,665,072 bytes, +256 bytes. LTO strips the unreachable duplicate SDK code since we only touch the propagation module. So there's no real size cost right now to justify the risk.
Leaving it as-is and tracking the version alignment separately so it gets its own test pass instead of riding along here.
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>
…v0.5.0 Bumps datadog-agent-config's libdd-trace-utils/libdd-trace-obfuscation git rev from a820699 (8.0.0/4.0.0) to 85ce322a (9.0.0/5.0.0), matching the exact versions datadog-opentelemetry v0.5.0 already pulls from crates.io. Combined with a [patch.crates-io] on the consuming side (datadog-lambda-extension), this collapses the duplicate compiled copies flagged by Copilot on #144, without switching this crate's dependency declarations away from git pins (unlike an earlier attempt that moved to crates.io versions directly - reverted because it broke type identity for downstream consumers that also depend on these crates via a git pin, e.g. bottlecap's ReplaceRule usage). Verified: cargo check/clippy/fmt clean for datadog-agent-config (default + https features), 79/79 tests pass, dd-rust-license-tool check passes. See LIBDATADOG_VERSION_ALIGNMENT.md in datadog-lambda-extension for full context and the chosen approach (Option A: patch + shared rev bump) vs alternatives considered.
What does this PR do?
Bumps the
datadog-opentelemetry(dd-trace-rs) gitrevpinned bydatadog-agent-configfromf51cefc4(pre-v0.3.0) to50bfea87(
datadog-opentelemetry-v0.5.0). RegeneratesCargo.lockandLICENSE-3rdparty.csvaccordingly.Motivation
v0.5.0 adds native B3 (single- and multi-header) trace propagation
support. Without it,
DD_TRACE_PROPAGATION_STYLE=b3multi(andb3)fail to parse with
Unknown trace propagation style: 'b3multi', whichis exactly the error a customer hit — see
SLES-2907.
This is also a prerequisite for bumping dd-trace-rs in
DataDog/datadog-lambda-extension: that repo depends directly ondatadog-opentelemetrytoo, anddatadog-agent-configre-exportsdatadog_opentelemetry::configuration::TracePropagationStyle— soboth pins need to resolve to the same revision, or the Lambda
extension build will end up with two incompatible copies of that type.
This PR lands the
serverless-components-side half first.Additional Notes
libdd-trace-utilsalready had two coexisting versions inCargo.lockbefore this change (one git-pinned directly, one pulledtransitively via
datadog-opentelemetry's crates.io deps) — this PRdoesn't introduce that duplication, just updates the transitive
version (8.0.0 → 9.0.0 pre-existing pattern, no new duplicate
introduced for
datadog-opentelemetryitself, which resolves to asingle entry).
datadog-agent-configonly touchesdatadog_opentelemetry::configuration::TracePropagationStyle, whichremains unconditionally public in v0.5.0, so no new Cargo feature
flag is needed on this crate's dependency declaration.
Describe how to test/QA your changes
cargo check --workspace— cleancargo clippy -p datadog-agent-config --all-targets --all-features— cleancargo fmt --all -- --check— cleancargo test -p datadog-agent-config— 79/79 passcargo test --workspace— 2 pre-existingdogstatsd::flushertestfailures reproduce identically on unmodified
main(unrelated HTTP-mockflakiness, not caused by this change)
dd-rust-license-tool check— passesDownstream PR: DataDog/datadog-lambda-extension#1302