Skip to content

chore(deps): bump dd-trace-rs to datadog-opentelemetry-v0.5.0#144

Merged
litianningdatadog merged 1 commit into
mainfrom
tianning.li/bump-dd-trace-rs-v0.5.0
Jul 14, 2026
Merged

chore(deps): bump dd-trace-rs to datadog-opentelemetry-v0.5.0#144
litianningdatadog merged 1 commit into
mainfrom
tianning.li/bump-dd-trace-rs-v0.5.0

Conversation

@litianningdatadog

@litianningdatadog litianningdatadog commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

What does this PR do?

Bumps the datadog-opentelemetry (dd-trace-rs) git rev pinned by
datadog-agent-config from f51cefc4 (pre-v0.3.0) to 50bfea87
(datadog-opentelemetry-v0.5.0). Regenerates Cargo.lock and
LICENSE-3rdparty.csv accordingly.

Motivation

v0.5.0 adds native B3 (single- and multi-header) trace propagation
support. Without it, DD_TRACE_PROPAGATION_STYLE=b3multi (and b3)
fail to parse with Unknown trace propagation style: 'b3multi', which
is 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 on
datadog-opentelemetry too, and datadog-agent-config re-exports
datadog_opentelemetry::configuration::TracePropagationStyle — so
both 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-utils already had two coexisting versions in
    Cargo.lock before this change (one git-pinned directly, one pulled
    transitively via datadog-opentelemetry's crates.io deps) — this PR
    doesn't introduce that duplication, just updates the transitive
    version (8.0.0 → 9.0.0 pre-existing pattern, no new duplicate
    introduced for datadog-opentelemetry itself, which resolves to a
    single entry).
  • datadog-agent-config only touches
    datadog_opentelemetry::configuration::TracePropagationStyle, which
    remains 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 — clean
  • cargo clippy -p datadog-agent-config --all-targets --all-features — clean
  • cargo fmt --all -- --check — clean
  • cargo test -p datadog-agent-config — 79/79 pass
  • cargo test --workspace — 2 pre-existing dogstatsd::flusher test
    failures reproduce identically on unmodified main (unrelated HTTP-mock
    flakiness, not caused by this change)
  • dd-rust-license-tool check — passes

mermaid-diagram-1783968869812

Downstream PR: DataDog/datadog-lambda-extension#1302

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

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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-opentelemetry git rev in crates/datadog-agent-config.
  • Regenerate Cargo.lock to reflect updated transitive dependency graph.
  • Regenerate LICENSE-3rdparty.csv to 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 }

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

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.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 2 out of 3 changed files in this pull request and generated no new comments.

@litianningdatadog litianningdatadog merged commit 56779de into main Jul 14, 2026
29 checks passed
@litianningdatadog litianningdatadog deleted the tianning.li/bump-dd-trace-rs-v0.5.0 branch July 14, 2026 16:59
litianningdatadog added a commit to DataDog/datadog-lambda-extension that referenced this pull request Jul 14, 2026
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>
litianningdatadog added a commit that referenced this pull request Jul 14, 2026
…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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants