Update injector
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
: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
β Β Tests
π All green!
βοΈ No new flaky tests detected
π§ͺ All tests passed
π― Code Coverage
β’ Patch Coverage: 100.00%
β’ Overall Coverage: 95.26%
View detailed report
π Commit SHA: 3e23a15 | Docs | Datadog PR Page | Was this helpful? Give us feedback!
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%]
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.