Skip to content

chore(deps): bump libdatadog to 48da0d8 for client-computed header fix#1244

Draft
lucaspimentel wants to merge 3 commits into
mainfrom
lpimentel/bump-libdatadog-client-computed-headers
Draft

chore(deps): bump libdatadog to 48da0d8 for client-computed header fix#1244
lucaspimentel wants to merge 3 commits into
mainfrom
lpimentel/bump-libdatadog-client-computed-headers

Conversation

@lucaspimentel
Copy link
Copy Markdown
Member

@lucaspimentel lucaspimentel commented Jun 3, 2026

Overview

Bump all libdd-* dependencies from db05e1f to 48da0d8 to pick up
libdatadog PR #2071, which fixes how
the datadog-client-computed-stats and
datadog-client-computed-top-level headers are parsed so the behavior matches the Go trace-agent.

Bottlecap consumes this exact path in bottlecap/src/traces/trace_agent.rs via
(&parts.headers).into(), so it directly benefits from the fix.

Adapting to breaking API changes between the two revisions

  • libdd_capabilities HttpClientTrait was renamed to HttpClientCapability
    (updated http_client.rs and stats_flusher.rs).
  • SendData::send now requires C: HttpClientCapability + SleepCapability, so
    implemented SleepCapability for HttpClient (backed by tokio::time::sleep,
    mirroring libdatadog's NativeSleepCapability).

Testing

Added Tier 0 coverage in trace_agent.rs pinning the new header-parsing
behavior at the (&headers).into() boundary handle_traces uses:

  • truthy values (true, yes, t, 1) -> flag set
  • false-like values (false, 0, f, F, FALSE, False) -> flag clear
  • absent/empty -> clear
  • client_computed_top_level no longer set by presence alone (pre-bump regression)

These would fail on the pre-bump rev (db05e1f), so they lock in the fix.

"Turns out yes means yes and false means false. Took a whole PR to teach the parser what every toddler already knows." — Claude 🤖

Bump all libdd-* dependencies from db05e1f to 48da0d8 to pick up
libdatadog PR #2071, which fixes how `From<&HeaderMap> for
TracerHeaderTags` parses the `datadog-client-computed-stats` and
`datadog-client-computed-top-level` headers so the behavior matches the
Go trace-agent. Bottlecap consumes this path in
traces/trace_agent.rs via `(&parts.headers).into()`.

Adapt to breaking API changes between the two revisions:

- libdd_capabilities `HttpClientTrait` was renamed to
  `HttpClientCapability`.
- `SendData::send` now requires `C: HttpClientCapability +
  SleepCapability`, so implement `SleepCapability` for `HttpClient`
  (backed by tokio::time::sleep, mirroring libdatadog's
  NativeSleepCapability).
@datadog-prod-us1-4
Copy link
Copy Markdown

datadog-prod-us1-4 Bot commented Jun 3, 2026

Pipelines

Fix all issues with BitsAI

⚠️ Warnings

🚦 4 Pipeline jobs failed

DataDog/datadog-lambda-extension | integration-suite: [auth]   View in Datadog   GitLab

See error Failed to create ChangeSet due to existing resources conflicting with CloudFormation stack. Resources must have DeletionPolicy set to 'Retain' or 'RetainExceptOnCreate'.

DataDog/datadog-lambda-extension | integration-suite: [snapstart]   View in Datadog   GitLab

See error Failed to create ChangeSet due to existing resources that must retain the DeletionPolicy attribute for successful import. Resource: /aws/lambda/integ-7c77ad64-snapstart-java-lambda

DataDog/datadog-lambda-extension | publish layer e2e sandbox (amd64)   View in Datadog   GitLab

See error ThrottlingException: Rate exceeded during ListLayerVersions operation after maximum retries.

View all 4 failed jobs.

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 7c77ad6 | Docs | Datadog PR Page | Give us feedback!

@lucaspimentel lucaspimentel changed the title chore(deps): bump libdatadog to 48da0d8 for client-computed header fix chore(deps): bump libdatadog to 48da0d8 for client-computed header fix Jun 3, 2026
…the libdatadog bump

Adds a #[cfg(test)] mod tests block at the (&headers).into() boundary that
handle_traces uses, giving the db05e1f -> 48da0d8 bump its missing behavioral
coverage for libdatadog#2071. Assertions are Go-agent-aligned (isHeaderTrue/
ParseBool): truthy values -> true, absent/empty -> false, falsey literals
(false/0/f/F/FALSE/False) -> false, and client_computed_top_level no longer set
by presence alone. These would fail on the pre-bump rev.
lucaspimentel added a commit that referenced this pull request Jun 3, 2026
…datadog bump PR

The Tier 0 tests assert libdatadog parsing behavior (not the _dd.compute_stats
feature), and libdatadog#2071 changes that behavior via the db05e1f -> 48da0d8
bump in PR #1244. Move them there so the bump carries its own behavioral
coverage and the assertions don't need to assert opposite things on two
branches. Feature branch keeps Tiers 1-3; rebase onto #1244 after it merges.
lucaspimentel added a commit that referenced this pull request Jun 3, 2026
…datadog bump PR

The Tier 0 tests assert libdatadog parsing behavior (not the _dd.compute_stats
feature), and libdatadog#2071 changes that behavior via the db05e1f -> 48da0d8
bump in PR #1244. Move them there so the bump carries its own behavioral
coverage and the assertions don't need to assert opposite things on two
branches. Feature branch keeps Tiers 1-3; rebase onto #1244 after it merges.
Describe the exact false-set the parser recognizes and note that non-ParseBool
values like "yes" resolve to true, matching what the truthy-values test asserts.

🤖 Co-Authored-By: Claude Code <noreply@anthropic.com>
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.

1 participant