Skip to content

[PROF-11524] Upgrade libdatadog dependency to 17.1 #4577

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 8 commits into
base: master
Choose a base branch
from

Conversation

ivoanjo
Copy link
Member

@ivoanjo ivoanjo commented Apr 11, 2025

What does this PR do?

Updates the native bits in the gem (profiling, crashtracking) to be able to work with the latest libdatadog 17.

I'm opening it as a draft so we can use it to test the upcoming libdatadog 17.1 release. Once that release is out and on rubygems.org, I plan to:

  1. Push the actual gem dependency change on this PR
  2. Do a pass on the TODO/FIXME things that are still missing

Motivation:

There's a number of fixes and additions in libdatadog that we want to make use of.

Change log entry

Yes. Upgrade libdatadog dependency to 17.1

Additional Notes:

With this PR, I'm able to build both crashtracking AND profiling with libdatadog master as of 11th of April. I'm also able to get a green test suite for profiling, but not for crashtracking: I've reported the issue to the folks working on that, so they're aware.

How to test the change?

Once everything is in place, our existing test coverage will be enough to validate these changes. Until then it's expected that CI is going to be red.

ivoanjo added 7 commits April 11, 2025 10:31
…on every report

Reusing an `encoded_profile` object will no longer be possible with
libdatadog 17+.

This does change what the benchmark was covering, so comparing with
prior results is not particularly relevant.

I did consider removing this benchmark (we haven't used it for a
long time for anything in particular), but on the other hand these
microbenchmarks that exercise libdatadog have been useful sometimes so
why not.
This tag will be set automatically by libdatadog 17+ so we no longer
need to set it. See DataDog/libdatadog#954
for the change on the libdatadog side.
Still missing: cancellation token changes.
The removed spec for the invalid sample no longer triggers on
release builds of libdatadog (it's only for debug builds).
Still discussing with folks what the next steps are on this one.
With the move to handles, I'm unsure if our previous approach was
correct, so I've tweaked our usage and added a bit more validation to
catch any unexpected issues.
@github-actions github-actions bot added the profiling Involves Datadog profiling label Apr 11, 2025
@datadog-datadog-prod-us1
Copy link
Contributor

datadog-datadog-prod-us1 bot commented Apr 11, 2025

Datadog Report

Branch report: ivoanjo/prof-11524-upgrade-libdatadog17-try3
Commit report: e8bf7f4
Test service: dd-trace-rb

✅ 0 Failed, 19991 Passed, 1953 Skipped, 3m 46.92s Total Time

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.

1 participant