Skip to content

[PROF-13732] Upgrade libdatadog dependency to version 28.0.2#5274

Merged
gyuheon0h merged 2 commits intomasterfrom
ivoanjo/libdatadog-26-ruby
Mar 2, 2026
Merged

[PROF-13732] Upgrade libdatadog dependency to version 28.0.2#5274
gyuheon0h merged 2 commits intomasterfrom
ivoanjo/libdatadog-26-ruby

Conversation

@ivoanjo
Copy link
Copy Markdown
Member

@ivoanjo ivoanjo commented Jan 23, 2026

What does this PR do?

This PR bumps the libdatadog dependency from version 25.0.1.1.0 to version 26.0.0.1.0 27.0.0.1.0.

This PR bumps the libdatadog dependency from version 25.0.1.1.0 to version 28.0.0.1.0 28.0.2.1.0.

This new version cleans up the profile exporting API so I've updated our code to match.

Update: It also changes how the sample types get specified, and the format of the crashtracking message.

Also, this will be the first libdatadog version with macOS builds!
(Foreshadowing...)

Motivation:

Adopt latest libdatadog.

Change log entry

Yes. Upgrade libdatadog dependency to version 28.0.2

Additional Notes:

N/A

How to test the change?

Green CI is good, as usual.

@ivoanjo ivoanjo requested review from a team as code owners January 23, 2026 16:21
@github-actions github-actions bot added the profiling Involves Datadog profiling label Jan 23, 2026
marcotc
marcotc previously approved these changes Jan 23, 2026
@ivoanjo
Copy link
Copy Markdown
Member Author

ivoanjo commented Jan 23, 2026

Hmm we're hitting the packaging limits, I've ping'd @lloeki for help on that one...

@datadog-datadog-prod-us1
Copy link
Copy Markdown
Contributor

datadog-datadog-prod-us1 bot commented Jan 23, 2026

✅ Tests

🎉 All green!

❄️ No new flaky tests detected
🧪 All tests passed

🎯 Code Coverage (details)
Patch Coverage: 100.00%
Overall Coverage: 95.11% (+0.00%)

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 1ea1e8d | Docs | Datadog PR Page | Was this helpful? React with 👍/👎 or give us feedback!

@pr-commenter
Copy link
Copy Markdown

pr-commenter bot commented Jan 23, 2026

Benchmarks

Benchmark execution time: 2026-03-02 21:04:41

Comparing candidate commit 1ea1e8d in PR branch ivoanjo/libdatadog-26-ruby with baseline commit f130f04 in branch master.

Found 0 performance improvements and 4 performance regressions! Performance is the same for 40 metrics, 2 unstable metrics.

Explanation

This is an A/B test comparing a candidate commit's performance against that of a baseline commit. Performance changes are noted in the tables below as:

  • 🟩 = significantly better candidate vs. baseline
  • 🟥 = significantly worse candidate vs. baseline

We compute a confidence interval (CI) over the relative difference of means between metrics from the candidate and baseline commits, considering the baseline as the reference.

If the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD), the change is considered significant.

Feel free to reach out to #apm-benchmarking-platform on Slack if you have any questions.

More details about the CI and significant changes

You can imagine this CI as a range of values that is likely to contain the true difference of means between the candidate and baseline commits.

CIs of the difference of means are often centered around 0%, because often changes are not that big:

---------------------------------(------|---^--------)-------------------------------->
                              -0.6%    0%  0.3%     +1.2%
                                 |          |        |
         lower bound of the CI --'          |        |
sample mean (center of the CI) -------------'        |
         upper bound of the CI ----------------------'

As described above, a change is considered significant if the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD).

For instance, for an execution time metric, this confidence interval indicates a significantly worse performance:

----------------------------------------|---------|---(---------^---------)---------->
                                       0%        1%  1.3%      2.2%      3.1%
                                                  |   |         |         |
       significant impact threshold --------------'   |         |         |
                      lower bound of CI --------------'         |         |
       sample mean (center of the CI) --------------------------'         |
                      upper bound of CI ----------------------------------'

scenario:profiling - Allocations ()

  • 🟥 throughput [-175027.883op/s; -168889.023op/s] or [-5.319%; -5.133%]

scenario:profiling - http_transport

  • 🟥 throughput [-390.498op/s; -385.603op/s] or [-14.428%; -14.247%]

scenario:profiling - intern_all 1000 repeated strings

  • 🟥 throughput [-2180.761op/s; -2071.745op/s] or [-8.385%; -7.966%]

scenario:profiling - stack collector (ruby frames - native filenames enabled)

  • 🟥 throughput [-256.222op/s; -253.959op/s] or [-7.545%; -7.478%]

@ivoanjo
Copy link
Copy Markdown
Member Author

ivoanjo commented Jan 26, 2026

Update: We're investigating a possible bug in the profiling reporting code, I'm moving this to draft for now until we confirm it's all good (or else that we need a libdatadog bugfix release)

@ivoanjo ivoanjo marked this pull request as draft January 26, 2026 15:02
@ivoanjo
Copy link
Copy Markdown
Member Author

ivoanjo commented Jan 30, 2026

Update we're treating DataDog/libdatadog#1492 and DataDog/libdatadog#1493 as blockers to getting this merged

@ivoanjo ivoanjo force-pushed the ivoanjo/libdatadog-26-ruby branch from 81b55e3 to 0413bfb Compare February 5, 2026 09:22
@ivoanjo
Copy link
Copy Markdown
Member Author

ivoanjo commented Feb 5, 2026

Update:

Strech
Strech previously approved these changes Feb 5, 2026
@ivoanjo
Copy link
Copy Markdown
Member Author

ivoanjo commented Feb 11, 2026

Update: Libdatadog v27 has now been released. I pushed a commit with the changes needed to make it work, but it's not yet on rubygems -- I tested this on my local machine.

ivoanjo added a commit to DataDog/libdatadog that referenced this pull request Feb 11, 2026
**What does this PR do?**

This PR includes the changes documented in the "Releasing a new version
to rubygems.org" part of the README:
https://github.com/datadog/libdatadog/tree/main/ruby#releasing-a-new-version-to-rubygemsorg

**Motivation:**

Enable Ruby to use libdatadog v27.0.0. In particular, this will be
the first release where we provide macOS binaries for libdatadog
on rubygems.org.

**Additional Notes:**

N/A

**How to test the change?**

I've tested this change locally with the changes in
DataDog/dd-trace-rb#5274 and was able to get a
green test suite run for Ruby.

As a reminder, new libdatadog releases don't get automatically picked up
by dd-trace-rb, so the PR that bumps the dependency will also test this
release against all supported Ruby versions.
@ivoanjo ivoanjo changed the title [NO-TICKET] Upgrade libdatadog dependency to version 26.0.0 [NO-TICKET] Upgrade libdatadog dependency to version 27.0.0 Feb 11, 2026
gh-worker-dd-mergequeue-cf854d bot pushed a commit to DataDog/libdatadog that referenced this pull request Feb 11, 2026
# What does this PR do?

This PR includes the changes documented in the "Releasing a new version to rubygems.org" part of the README:
https://github.com/datadog/libdatadog/tree/main/ruby#releasing-a-new-version-to-rubygemsorg

# Motivation:

Enable Ruby to use libdatadog v27.0.0. In particular, this will be the first release where we provide macOS binaries for libdatadog on rubygems.org.

# Additional Notes:

N/A

# How to test the change?

I've tested this change locally with the changes in DataDog/dd-trace-rb#5274 and was able to get a green test suite run for Ruby.

As a reminder, new libdatadog releases don't get automatically picked up by dd-trace-rb, so the PR that bumps the dependency will also test this release against all supported Ruby versions.

Co-authored-by: ivo.anjo <[email protected]>
@ivoanjo ivoanjo marked this pull request as ready for review February 12, 2026 09:47
@ivoanjo
Copy link
Copy Markdown
Member Author

ivoanjo commented Feb 12, 2026

Almost there! We have an SSI validation failing:

linux-amd64 size 218M exceeds max threshold of 200M

but otherwise we're good to go. Since I've made quite a few changes after the last reviews, I'm going to dismiss them and ask folks again.

@ivoanjo ivoanjo requested review from Strech and marcotc February 12, 2026 11:06
@ivoanjo ivoanjo dismissed stale reviews from Strech and marcotc February 12, 2026 11:07

Added more changes since

@ivoanjo ivoanjo changed the title [NO-TICKET] Upgrade libdatadog dependency to version 27.0.0 [PROF-13732] Upgrade libdatadog dependency to version 27.0.0 Feb 12, 2026
@ivoanjo
Copy link
Copy Markdown
Member Author

ivoanjo commented Feb 12, 2026

Update: Vaccine is failing because of DataDog/libdatadog#1498 so that's not a real issue. We're probably going to remove that spec from vaccine or vaccine entirely as we already have test coverage for this in system-tests (e.g. DataDog/system-tests#6275 )

@lloeki lloeki mentioned this pull request Feb 12, 2026
@lloeki lloeki mentioned this pull request Feb 12, 2026
Copy link
Copy Markdown
Member

@Strech Strech left a comment

Choose a reason for hiding this comment

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

LGTM 👍🏼

@ivoanjo
Copy link
Copy Markdown
Member Author

ivoanjo commented Feb 20, 2026

Arghhh there's some internal discussion in the libdatadog channel that v27 might have another regression :(

We should probably hold on this again until we can figure that one out

@ivoanjo
Copy link
Copy Markdown
Member Author

ivoanjo commented Feb 23, 2026

DataDog/libdatadog#1619 is the current blocker :/

@ivoanjo ivoanjo marked this pull request as draft February 23, 2026 07:33
@gyuheon0h gyuheon0h force-pushed the ivoanjo/libdatadog-26-ruby branch from d2c6ffa to b5a8d2f Compare February 23, 2026 10:07
Copy link
Copy Markdown
Contributor

gyuheon0h commented Feb 23, 2026

@gyuheon0h gyuheon0h force-pushed the ivoanjo/libdatadog-26-ruby branch from c64957e to b5a8d2f Compare February 23, 2026 10:17
@gyuheon0h gyuheon0h changed the title [PROF-13732] Upgrade libdatadog dependency to version 27.0.0 [PROF-13732] Upgrade libdatadog dependency to version 28.0.0 Feb 23, 2026
gh-worker-dd-mergequeue-cf854d bot pushed a commit to DataDog/libdatadog that referenced this pull request Feb 23, 2026
# What does this PR do?

This PR includes the changes documented in the "Releasing a new version to rubygems.org" part of the README:
https://github.com/datadog/libdatadog/tree/main/ruby#releasing-a-new-version-to-rubygemsorg

The v28 release is here: https://github.com/DataDog/libdatadog/releases/tag/v28.0.0

# Motivation

Enable Ruby to use libdatadog v28.0.0. **IMPORTANT**: this version will not be merged into main for dd-trace-rb as there is a regression in the profiler exporter in v28. However, we still want to release this version as an an effort to keep a running upgrade version ready. 



# Additional Notes

Anything else we should know when reviewing?

# How to test the change?

I've tested this change locally with the changes in DataDog/dd-trace-rb#5274 and was able to get a green test suite run for Ruby.

As a reminder, new libdatadog releases don't get automatically picked up by dd-trace-rb, so the PR that bumps the dependency will also test this release against all supported Ruby versions.


Co-authored-by: gyuheon.oh <[email protected]>
@gyuheon0h gyuheon0h force-pushed the ivoanjo/libdatadog-26-ruby branch from 29113a3 to 30c93b0 Compare February 24, 2026 12:39
gh-worker-dd-mergequeue-cf854d bot pushed a commit to DataDog/libdatadog that referenced this pull request Mar 2, 2026
# What does this PR do?

Packages libdatadog for 28.0.2 gem release. This is useful because this release fixes slow TLS exporter issue that has been delaying [libdatadog upgrade](DataDog/dd-trace-rb#5274) for dd-trace-rb


# Motivation

What inspired you to submit this pull request?

# Additional Notes

Anything else we should know when reviewing?

# How to test the change?

Describe here in detail how the change can be validated.


Co-authored-by: gyuheon.oh <[email protected]>
@gyuheon0h gyuheon0h force-pushed the ivoanjo/libdatadog-26-ruby branch from 30c93b0 to 31e40be Compare March 2, 2026 15:53
@gyuheon0h gyuheon0h changed the title [PROF-13732] Upgrade libdatadog dependency to version 28.0.0 [PROF-13732] Upgrade libdatadog dependency to version 28.0.2 Mar 2, 2026
@gyuheon0h gyuheon0h marked this pull request as ready for review March 2, 2026 15:54
@gyuheon0h gyuheon0h force-pushed the ivoanjo/libdatadog-26-ruby branch 2 times, most recently from 5ca940e to 913e09d Compare March 2, 2026 18:45
**What does this PR do?**

This PR bumps the libdatadog dependency from version 25.0.1.1.0 to
version 28.0.2.1.0.

This new version cleans up the profile exporting API so I've updated
our code to match.

Also, this is the first libdatadog version with macOS builds!
(Foreshadowing...)

**Motivation:**

Adopt latest libdadog.

**Additional Notes:**

N/A

**How to test the change?**

Green CI is good, as usual.

Update lockfiles

Bump libdatadog dependency to version 27.0.0

There's a breaking change in profiling
(`ddog_prof_ValueType` -> `ddog_prof_SampleType`) +
the crashtracking report format changed slightly but otherwise
everything looks in good shape.

Update lockfiles to use libdatadog 27

[🤖] Lock Dependency: https://github.com/DataDog/dd-trace-rb/actions/runs/21941519831

Update to match libdatadog v27 format for message

Minor: Simplify specs

Upgrade to v28

[🤖] Lock Dependency: https://github.com/DataDog/dd-trace-rb/actions/runs/22346650666

Bump to 28.0.2.1.0

[🤖] Lock Dependency: https://github.com/DataDog/dd-trace-rb/actions/runs/22583912066
@gyuheon0h gyuheon0h force-pushed the ivoanjo/libdatadog-26-ruby branch from 913e09d to 9330399 Compare March 2, 2026 18:47
@gyuheon0h gyuheon0h merged commit 158e037 into master Mar 2, 2026
933 of 939 checks passed
@gyuheon0h gyuheon0h deleted the ivoanjo/libdatadog-26-ruby branch March 2, 2026 21:34
@github-actions github-actions bot added this to the 2.30.0 milestone Mar 2, 2026
@Strech Strech mentioned this pull request Mar 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

profiling Involves Datadog profiling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants