dd-trace-rb icon indicating copy to clipboard operation
dd-trace-rb copied to clipboard

Update injector

Open lloeki opened this issue 1 month ago β€’ 4 comments

What does this PR do?

  • Update Ruby injector to latest version
  • Adjust OCI package contents to match

Motivation:

Add various fixes + deployment mode

Change log entry

TODO: will be backfilled once undrafted.

Additional Notes:

TODO: this is a draft to trigger onboarding tests.

How to test the change?

CI should pass

lloeki avatar Nov 17 '25 14:11 lloeki

:wave: Hey @lloeki, please fill "Change log entry" section in the pull request description.

If changes need to be present in CHANGELOG.md you can state it this way

**Change log entry**

Yes. A brief summary to be placed into the CHANGELOG.md

(possible answers Yes/Yep/Yeah)

Or you can opt out like that

**Change log entry**

None.

(possible answers No/Nope/None)

Visited at: 2025-12-18 15:42:52 UTC

github-actions[bot] avatar Nov 17 '25 14:11 github-actions[bot]

βœ…Β Tests

πŸŽ‰ All green!

❄️ No new flaky tests detected
πŸ§ͺ All tests passed

🎯 Code Coverage
β€’ Patch Coverage: 100.00%
β€’ Overall Coverage: 95.26%
View detailed report

This comment will be updated automatically if new data arrives.
πŸ”— Commit SHA: 3e23a15 | Docs | Datadog PR Page | Was this helpful? Give us feedback!

datadog-official[bot] avatar Nov 17 '25 15:11 datadog-official[bot]

Benchmarks

Benchmark execution time: 2025-12-18 17:59:34

Comparing candidate commit 3e23a158db13eeb8c5154b4b243cdc61c93f7736 in PR branch lloeki/update-injector with baseline commit 1317a2fcd1a2672bdef434ebe701418c95b31838 in branch master.

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

scenario:profiling - intern_all 1000 repeated strings

  • 🟩 throughput [+2831.394op/s; +2905.645op/s] or [+11.850%; +12.161%]

scenario:profiling - stack collector (varying depth)

  • 🟩 throughput [+51.123op/s; +51.618op/s] or [+5.653%; +5.707%]

scenario:tracing - 100 span trace - no writer

  • 🟩 throughput [+17.139op/s; +17.888op/s] or [+5.770%; +6.022%]

scenario:tracing - Propagation - Datadog

  • 🟩 throughput [+2825.812op/s; +2900.471op/s] or [+9.776%; +10.034%]

pr-commenter[bot] avatar Nov 17 '25 15:11 pr-commenter[bot]

Odd behaviour at the create-multi-arch-lib-injection-image stage:

$ echo "TAGS are $TAGS_AS_ARGUMENT"
TAGS are --tag registry.ddbuild.io/ssi/dd-lib-ruby-init:8119bb9fc46d2b7c8fa7440144ef0ab4c33a570d --tag registry.ddbuild.io/ssi/dd-lib-ruby-init:glci83149026 --tag registry.ddbuild.io/ssi/dd-lib-ruby-init:glci83149026-g8119bb9fc46d2b7c8fa7440144ef0ab4c33a570d 
$ datadog-package decompose --single-manifest-image packaging/*linux*amd64*.tar scripts/lib-injection/decomposed-amd64
Using local package package at packaging/datadog-apm-library-ruby-2.23.0.dev.bedb6bb.glci1244730020.g8119bb9f-linux-amd64.tar
2025/11/19 14:52:02 could not extract layer: could not create symlink: symlink injector.rb scripts/lib-injection/decomposed-amd64/contents/auto_inject.rb: no such file or directory

The odd part is that if I examine the artifacts from the previous stage they contain perfectly valid symlinks as expected, are the same as before, and have been working just fine til now:

$ tar xf datadog-apm-library-ruby-2.23.0.dev.bedb6bb.glci1244730020.g8119bb9f-linux-amd64.tar
$ tar tvzf datadog-apm-library-ruby-2.23.0.dev.bedb6bb.glci1244730020.g8119bb9f-linux-amd64/blobs/sha256/80abb142a762d320db497f3ee946859166151287e14bc8bfe3658ee2bf7e1d3c | head -3
lrwxrwxrwx  0 root   1000        0 Nov 19 15:48 auto_inject.rb -> injector.rb
lrwxrwxrwx  0 root   1000        0 Nov 19 15:48 host_inject.rb -> injector.rb
-rw-r--r--  0 root   1000     2628 Nov 19 15:48 injector.rb

So far no idea what's going on with that datadog-package decompose command failing, except no such file or directory seems to suggest a path component of scripts/lib-injection/decomposed-amd64/contents isn't there.

lloeki avatar Nov 19 '25 16:11 lloeki