Skip to content

v5.59.0 proposal #6109

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

Merged
merged 53 commits into from
Jul 17, 2025
Merged

v5.59.0 proposal #6109

merged 53 commits into from
Jul 17, 2025

Conversation

dd-trace-js[bot]
Copy link

@dd-trace-js dd-trace-js bot commented Jul 17, 2025

  • [9d0189aa18] - (SEMVER-PATCH) ci: skip guardrail telemetry unit tests if DD_INJECT_FORCE is used (Thomas Watson) #6113
  • [2caa6151a1] - (SEMVER-PATCH) chore: make as much of profiler internals private as possible (Attila Szegedi) #6108
  • [bda7db414e] - (SEMVER-PATCH) ci: update one pipeline reference (Roberto Montero) #6112
  • [99e7bb4b09] - (SEMVER-PATCH) Fix fs and rasp/iast problems (Ugaitz Urien) #6088
  • [3c6d91c215] - (SEMVER-MINOR) Tag profiles with a sequence number (Attila Szegedi) #6106
  • [8097aa4e14] - (SEMVER-PATCH) test: fix remote_config tests (Carles Capell) #6102
  • [6aba693d31] - (SEMVER-PATCH) bump flakiness report green requirement (Roch Devost) #6105
  • [9607dcd898] - (SEMVER-MINOR) Add ASM_EXCLUSION_DATA capability + RC management + test and refactor (Carles Capell) #6101
  • [e2dbaa8934] - (SEMVER-PATCH) ci: add explicit dependabot label for use in automation (Roch Devost) #6100
  • [20f126508d] - (SEMVER-PATCH) ci: add job count for parametric system tests (Roch Devost) #6099
  • [a99f622ba6] - (SEMVER-PATCH) Revert "next uncapping in source code" (Roch Devost) #6098
  • [2244cf0e76] - (SEMVER-MINOR) feat(langchain, llmobs): expand langchain support for tools and vectorstores (Sam Brenner) #5760
  • [765635b968] - (SEMVER-PATCH) ci: disable legacy Gitlab exec in order to fix jobs failing with green status (Dmytro Yurchenko) #6097
  • [00c4e732f2] - (SEMVER-PATCH) replace get-port with OS default port in ip_extractor.spec.js (simon-id) #6095
  • [195f0ce523] - (SEMVER-PATCH) ci: cap supported next version to be <15.4.1 (Thomas Watson) #6094
  • [551f314f76] - (SEMVER-PATCH) Revert "ci: add paths config to workflows for github & pull_request trigger (add paths config to workflows for pull_request trigger #5891)" (Thomas Watson) #6093
  • [590bba7f9f] - (SEMVER-PATCH) test: rewrite aws sqs batch test to be deterministic (Roch Devost) #6083
  • [09a838b82f] - (SEMVER-PATCH) test: update confluent kafka tests to use dynamic topic (Roch Devost) #6079
  • [d65e486711] - (SEMVER-PATCH) ci: add paths config to workflows for github & pull_request trigger (Roch Devost) #5891
  • [85a50a53fe] - (SEMVER-PATCH) ci: add stats and branch/date options to flakiness report (Roch Devost) #6076
  • [3d58866e72] - (SEMVER-PATCH) [test-optimization] downgrade limiter to v1.1.5 for old cypress (Ruben Bridgewater) #6091
  • [aaae9c2551] - (SEMVER-PATCH) datastreams: skip null array entries (Ruben Bridgewater) #6090
  • [e8ac8bf622] - (SEMVER-PATCH) remove async storage from child_process instrumentation (William Conti) #5960
  • [f97d2cde99] - (SEMVER-PATCH) fix: some guardrail telemetry should only be sent once (Thomas Watson) #6029
  • [c67baf6e80] - (SEMVER-MINOR) [test-optimization] [SDTEST-2290] Fix support for Cucumber 12+ (Mario Vidal Domínguez) #6087
  • [ea0d023890] - (SEMVER-MINOR) [DI] Add support for loading probes from JSON file (Thomas Watson) #5941
  • [46c7a7c1b9] - (SEMVER-PATCH) ci: exercise more of the guardrails code during testing (Thomas Watson) #6034
  • [6804d6d550] - (SEMVER-PATCH) chore(llmobs): add internal ability to tag tool id on tool messages (Sam Brenner) #6022
  • [9e3721cd71] - (SEMVER-PATCH) [test-optimization] [SDTEST-2290] Remove Cucumber and Selenium tests (Mario Vidal Domínguez) #6086
  • [fd626ea4ec] - (SEMVER-PATCH) [Code Origin] Take source maps into account in stack traces (Thomas Watson) #6070
  • [d5f5adf973] - (SEMVER-PATCH) fix indeterministic request id failing di snapshot test (Roch Devost) #6084
  • [ebe303e882] - (SEMVER-PATCH) Update WAF rules to v1.15.0 (Carles Capell) #6082
  • [cb54870963] - (SEMVER-MINOR) [test-optimization] [SDTEST-2264] Upgrade attempt_to_fix to v5 (Mario Vidal Domínguez) #6074
  • [fe0e057f39] - (SEMVER-PATCH) fix sqs test race condition when deleting the queue (Roch Devost) #6068
  • [3c8de0a523] - (SEMVER-PATCH) move test optimization integration tests to dedicated folder (Roch Devost) #6047
  • [9a2ca1d8b2] - (SEMVER-PATCH) ESLint: Clean up Node.js built-in ignores (Thomas Watson) #6059
  • [d5b6932cba] - (SEMVER-PATCH) [test-optimization] [SDTEST-2272] Fix attempt_to_fix tagging in Playwright (Mario Vidal Domínguez) #6071
  • [d04f2b4e87] - (SEMVER-PATCH) [test-optimization] [SDTEST-2267] Remove getPort from Test Optimization tests (Mario Vidal Domínguez) #6064
  • [a9eaa1cf08] - (SEMVER-MINOR) Bump native-appsec package + ASM multi DD config capability (Carles Capell) #6049
  • [47d3c6312a] - (SEMVER-MINOR) instrumentation: add hono support (Ruben Bridgewater) #6061
  • [1e4c9f3ca0] - (SEMVER-PATCH) support blocking on fastify multipart (Ilyas Shabi) #5980
  • [a57677c113] - (SEMVER-PATCH) Use files property in package.json instead of .npmignore (Thomas Watson) #5320
  • [4a08404136] - (SEMVER-PATCH) test: use dynamic queue name for aws sqs tests (Roch Devost) #6050
  • [d4c55ba452] - (SEMVER-PATCH) [test-optimization] Add logs for Playwright test (Mario Vidal Domínguez) #6055
  • [d3764398de] - (SEMVER-PATCH) ESLint: Scope certain files to other Node.js versions than v18.0.0 (Thomas Watson) #6030
  • [9453dcf991] - (SEMVER-PATCH) datastreams: safer and faster schema serialization (Ruben Bridgewater) #6042
  • [ef608d6c48] - (SEMVER-PATCH) test: remove get-port usage in core tests and appsec (Roch Devost) #6060
  • [b4edcab2a2] - (SEMVER-PATCH) test: remove get-port usage from inferred proxy test (Roch Devost) #6054
  • [f2f650b528] - (SEMVER-PATCH) ESLint: Require 'use strict' header (Thomas Watson) #5334
  • [1f4d857a96] - (SEMVER-PATCH) chore: update dependencies & dependabot & less cache lookups (Ruben Bridgewater) #6041
  • [e7cf286691] - (SEMVER-PATCH) Enable recommended rules for eslint-plugin-n (Thomas Watson) #5216
  • [9ff794ccfc] - (SEMVER-PATCH) perf: improve algorithm for getting callsites in AppSec (Thomas Watson) #6044

watson and others added 30 commits July 17, 2025 01:02
Use the `Error.captureStackTrace` API when triggering
`Error.prepareStackTrace` in order to be able to provide a constructor
function. This is used to reduce the number of unnecessary frames being
generated.
Enables all recommended rules from the `eslint-plugin-n` ESLint plugin that can
reasonably be enabled without too much work. The following rules have been
disabled as they cause too many errors:

- `n/hashbang`
- `n/no-process-exit`
- `n/no-missing-require` (only disabled in benchmarks and tests)

All `eslint-plugin-n` rules are also disabled for `**/*.mjs` files as these for
some reason resulting in parsing errors.

Finally a select list of experimental Node.js APIs have been allowed in
`n/no-unsupported-features/node-builtins`, so that we can use them without
having to add ESLint comments all over the place:

- `Response`
- `async_hooks.createHook`
- `async_hooks.executionAsyncId`
- `async_hooks.executionAsyncResource`
- `fetch`
- `fs/promises.cp`
* chore: update lru-cache, less lookups, dependabot ignore update

This updates the lru-cache to the latest version that supports
Node.js 18. The version above is ignored in dependabot. It also
ignores path-to-regexp, since that has to stay aligned with the
one used in express.js v4.
Express itself is updated as dev dependencies. That way we should
notice earlier in case more things break.
The cache lookups got a bit optimized to not have to check multiple
times if an entry exists or not.

* chore: outcommend alternative in docker-compose

Only one should be used per port.
* Fix issues related to adding strict-mode

These issues are either just a different behavior in strict-mode,
changes to tests that expect specific lines, or hiding real errors.
* remove get-port usage in core tests and a few more

* remove get-port usage from appsec plugin tests

* remove explicit hostname from appsec express test

* remove explicit hostname from appsec request helper test

* make port explicit and add comment to explain why an arbitrary port is fine
The original implementation contained unused code and used
replace calls after serializing an object to JSON. The strings
could have contained parts that the replace call would have
matched (while unlikely due to the content). This now directly
serializes to JSON and does not have that issue anymore. That
should also be faster overall.
…6030)

Not all of our files have Node.js 18.0.0 as the target version.
* should call promise for sending sqs messages with await syntax

---------

Co-authored-by: William Conti <william.conti@datadoghq.com>
The instrumentation does not yet handle middlewares, while
the basic functionality should work just fine.

---------

Co-authored-by: Luke Dunscombe <dunscombe1@gmail.com>
Ensure that the stack traces reported via Code Origin for Spans are
resolved using source maps, if Node.js is running with the
`--enable-source-maps` flag.
…6022)

* add ability to tag tool id on tool messages

* add type doc

* fix test

* remove documenting
Add support for loading Dynamic Instrumentation / Live Debugger probes via a
JSON file instead of Remote Configuration (RC).

To use this feature, specify a path to the JSON file using either the
environment variable `DD_DYNAMIC_INSTRUMENTATION_PROBE_FILE` or the
programmatic configuration `dynamicInstrumentation.probeFile`.

This can be used in combination with RC.

The JSON should be an array of probe objects in the same format as received via
the RC `config` object, for example:

    [{
      id: '100c9a5c-45ad-49dc-818b-c570d31e11d1',
      version: 0,
      type: 'LOG_PROBE',
      where: { sourceFile: 'index.js', lines: ['25'] },
      template: 'Hello World',
      segments: [{ str: 'Hello World' }],
      captureSnapshot: true,
      capture: { maxReferenceDepth: 3 },
      sampling: { snapshotsPerSecond: 100 }
    }]
Fixes bug in the guardrail telemetry `hasSeen` function which meant that all
telemetry was always sent even though `abort` and `abort.integration` should
only be sent once.
CarlesDD and others added 5 commits July 17, 2025 01:02
Copy link

github-actions bot commented Jul 17, 2025

Overall package size

Self size: 9.68 MB
Deduped: 109.27 MB
No deduping: 109.65 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.7.0 | 35.02 MB | 35.02 MB | | @datadog/native-appsec | 10.0.0 | 20.3 MB | 20.31 MB | | @datadog/native-iast-taint-tracking | 4.0.0 | 11.72 MB | 11.73 MB | | @datadog/pprof | 5.9.0 | 9.77 MB | 10.14 MB | | @opentelemetry/core | 1.30.1 | 908.66 kB | 7.16 MB | | protobufjs | 7.5.3 | 2.95 MB | 5.6 MB | | @datadog/wasm-js-rewriter | 4.0.1 | 2.85 MB | 3.58 MB | | @datadog/native-metrics | 3.1.1 | 1.02 MB | 1.43 MB | | @opentelemetry/api | 1.8.0 | 1.21 MB | 1.21 MB | | jsonpath-plus | 10.3.0 | 617.18 kB | 1.08 MB | | import-in-the-middle | 1.14.2 | 122.36 kB | 850.93 kB | | lru-cache | 10.4.3 | 804.3 kB | 804.3 kB | | source-map | 0.7.4 | 226 kB | 226 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | pprof-format | 2.1.0 | 111.69 kB | 111.69 kB | | @datadog/sketches-js | 2.1.1 | 109.9 kB | 109.9 kB | | lodash.sortby | 4.7.0 | 75.76 kB | 75.76 kB | | ignore | 7.0.5 | 63.38 kB | 63.38 kB | | istanbul-lib-coverage | 3.2.2 | 34.37 kB | 34.37 kB | | rfdc | 1.4.1 | 27.15 kB | 27.15 kB | | @isaacs/ttlcache | 1.4.1 | 25.2 kB | 25.2 kB | | dc-polyfill | 0.1.9 | 25.11 kB | 25.11 kB | | tlhunter-sorted-set | 0.1.0 | 24.94 kB | 24.94 kB | | shell-quote | 1.8.3 | 23.74 kB | 23.74 kB | | limiter | 1.1.5 | 23.17 kB | 23.17 kB | | retry | 0.13.1 | 18.85 kB | 18.85 kB | | semifies | 1.0.0 | 15.84 kB | 15.84 kB | | jest-docblock | 29.7.0 | 8.99 kB | 12.76 kB | | crypto-randomuuid | 1.0.0 | 11.18 kB | 11.18 kB | | ttl-set | 1.0.0 | 4.61 kB | 9.69 kB | | mutexify | 1.4.0 | 5.71 kB | 8.74 kB | | path-to-regexp | 0.1.12 | 6.6 kB | 6.6 kB | | koalas | 1.0.2 | 6.47 kB | 6.47 kB | | module-details-from-path | 1.0.4 | 3.96 kB | 3.96 kB |

🤖 This report was automatically generated by heaviest-objects-in-the-universe

Copy link

codecov bot commented Jul 17, 2025

Codecov Report

Attention: Patch coverage is 91.30435% with 4 lines in your changes missing coverage. Please review.

Please upload report for BASE (v5.x@c646449). Learn more about missing BASE report.

Files with missing lines Patch % Lines
...ages/datadog-instrumentations/src/child_process.js 83.33% 3 Missing ⚠️
...ages/datadog-instrumentations/src/helpers/hooks.js 0.00% 1 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             v5.x    #6109   +/-   ##
=======================================
  Coverage        ?   82.68%           
=======================================
  Files           ?      475           
  Lines           ?    19603           
  Branches        ?        0           
=======================================
  Hits            ?    16209           
  Misses          ?     3394           
  Partials        ?        0           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@pr-commenter
Copy link

pr-commenter bot commented Jul 17, 2025

Benchmarks

Benchmark execution time: 2025-07-17 10:26:17

Comparing candidate commit 2949b80 in PR branch v5.59.0-proposal with baseline commit c646449 in branch v5.x.

Found 54 performance improvements and 0 performance regressions! Performance is the same for 1216 metrics, 53 unstable metrics.

scenario:shimmer-startup-arrow-wrap-18

  • 🟩 cpu_user_time [-51.830ms; -42.015ms] or [-10.482%; -8.497%]
  • 🟩 execution_time [-56.263ms; -50.215ms] or [-10.021%; -8.944%]
  • 🟩 instructions [-185.8M instructions; -151.6M instructions] or [-8.745%; -7.135%]
  • 🟩 max_rss_usage [-17.888MB; -16.492MB] or [-13.522%; -12.467%]

scenario:shimmer-startup-arrow-wrap-20

  • 🟩 cpu_user_time [-54.101ms; -38.999ms] or [-12.578%; -9.067%]
  • 🟩 execution_time [-64.061ms; -49.584ms] or [-12.871%; -9.962%]
  • 🟩 instructions [-205.6M instructions; -168.2M instructions] or [-9.580%; -7.838%]
  • 🟩 max_rss_usage [-20.899MB; -19.950MB] or [-15.923%; -15.200%]

scenario:shimmer-startup-arrow-wrap-22

  • 🟩 cpu_user_time [-35.129ms; -24.173ms] or [-8.734%; -6.010%]
  • 🟩 execution_time [-43.911ms; -32.383ms] or [-9.322%; -6.875%]
  • 🟩 instructions [-185.9M instructions; -143.0M instructions] or [-9.184%; -7.064%]
  • 🟩 max_rss_usage [-17.595MB; -15.581MB] or [-12.990%; -11.503%]

scenario:shimmer-startup-arrow-wrapfn-18

  • 🟩 instructions [-63.7M instructions; -60.1M instructions] or [-5.991%; -5.649%]

scenario:shimmer-startup-arrow-wrapfn-20

  • 🟩 instructions [-61.0M instructions; -56.5M instructions] or [-6.204%; -5.748%]

scenario:shimmer-startup-arrow-wrapfn-22

  • 🟩 instructions [-56.9M instructions; -53.4M instructions] or [-6.090%; -5.715%]

scenario:shimmer-startup-asyncarrow-wrap-18

  • 🟩 max_rss_usage [-17.888MB; -14.523MB] or [-13.587%; -11.032%]

scenario:shimmer-startup-asyncarrow-wrap-20

  • 🟩 cpu_user_time [-54.386ms; -34.606ms] or [-12.118%; -7.710%]
  • 🟩 execution_time [-67.814ms; -49.231ms] or [-13.108%; -9.516%]
  • 🟩 instructions [-202.0M instructions; -148.7M instructions] or [-9.006%; -6.631%]
  • 🟩 max_rss_usage [-20.559MB; -19.472MB] or [-15.701%; -14.871%]

scenario:shimmer-startup-asyncarrow-wrap-22

  • 🟩 cpu_user_time [-39.883ms; -30.040ms] or [-9.393%; -7.075%]
  • 🟩 execution_time [-49.809ms; -41.511ms] or [-10.095%; -8.414%]
  • 🟩 instructions [-208.7M instructions; -165.2M instructions] or [-9.764%; -7.728%]
  • 🟩 max_rss_usage [-18.152MB; -16.697MB] or [-13.366%; -12.294%]

scenario:shimmer-startup-asyncdeclared-wrap-18

  • 🟩 max_rss_usage [-17.998MB; -14.994MB] or [-13.648%; -11.370%]

scenario:shimmer-startup-asyncdeclared-wrap-20

  • 🟩 cpu_user_time [-54.757ms; -37.213ms] or [-12.195%; -8.288%]
  • 🟩 execution_time [-71.499ms; -51.944ms] or [-13.812%; -10.034%]
  • 🟩 instructions [-256.5M instructions; -187.5M instructions] or [-11.345%; -8.296%]
  • 🟩 max_rss_usage [-20.178MB; -19.191MB] or [-15.439%; -14.684%]

scenario:shimmer-startup-asyncdeclared-wrap-22

  • 🟩 cpu_user_time [-38.297ms; -28.443ms] or [-8.993%; -6.679%]
  • 🟩 execution_time [-44.248ms; -35.841ms] or [-9.009%; -7.297%]
  • 🟩 instructions [-202.1M instructions; -169.2M instructions] or [-9.484%; -7.938%]
  • 🟩 max_rss_usage [-17.528MB; -16.153MB] or [-12.947%; -11.931%]

scenario:shimmer-startup-declared-wrap-18

  • 🟩 cpu_user_time [-45.973ms; -37.636ms] or [-9.322%; -7.632%]
  • 🟩 execution_time [-54.515ms; -47.841ms] or [-9.718%; -8.528%]
  • 🟩 instructions [-163.7M instructions; -127.8M instructions] or [-7.726%; -6.031%]
  • 🟩 max_rss_usage [-18.718MB; -17.278MB] or [-14.139%; -13.051%]

scenario:shimmer-startup-declared-wrap-20

  • 🟩 cpu_user_time [-49.712ms; -41.536ms] or [-11.681%; -9.760%]
  • 🟩 execution_time [-65.617ms; -60.047ms] or [-13.156%; -12.039%]
  • 🟩 instructions [-208.4M instructions; -170.1M instructions] or [-9.690%; -7.907%]
  • 🟩 max_rss_usage [-20.333MB; -19.337MB] or [-15.553%; -14.791%]

scenario:shimmer-startup-declared-wrap-22

  • 🟩 cpu_user_time [-42.990ms; -33.387ms] or [-10.489%; -8.146%]
  • 🟩 execution_time [-52.307ms; -40.827ms] or [-10.967%; -8.560%]
  • 🟩 instructions [-212.1M instructions; -164.7M instructions] or [-10.434%; -8.100%]
  • 🟩 max_rss_usage [-18.622MB; -16.688MB] or [-13.653%; -12.235%]

scenario:shimmer-startup-declared-wrapfn-18

  • 🟩 cpu_user_time [-27.675ms; -22.587ms] or [-7.090%; -5.786%]
  • 🟩 execution_time [-25.277ms; -22.154ms] or [-6.155%; -5.394%]
  • 🟩 instructions [-162.2M instructions; -151.8M instructions] or [-8.180%; -7.655%]

scenario:shimmer-startup-declared-wrapfn-20

  • 🟩 cpu_user_time [-28.437ms; -21.677ms] or [-8.562%; -6.526%]
  • 🟩 execution_time [-28.988ms; -23.957ms] or [-8.245%; -6.814%]
  • 🟩 instructions [-153.2M instructions; -142.3M instructions] or [-8.637%; -8.023%]

scenario:shimmer-startup-declared-wrapfn-22

  • 🟩 cpu_user_time [-23.659ms; -15.947ms] or [-7.646%; -5.153%]
  • 🟩 execution_time [-24.368ms; -18.594ms] or [-7.365%; -5.620%]
  • 🟩 instructions [-147.3M instructions; -135.4M instructions] or [-8.775%; -8.065%]

@watson watson force-pushed the v5.59.0-proposal branch 7 times, most recently from 5b5c94c to 1b82e90 Compare July 17, 2025 09:05
@dd-trace-js dd-trace-js bot force-pushed the v5.59.0-proposal branch from 1b82e90 to 2949b80 Compare July 17, 2025 10:17
@watson watson marked this pull request as ready for review July 17, 2025 10:27
@watson watson requested review from a team as code owners July 17, 2025 10:27
@watson watson merged commit d6b92d7 into v5.x Jul 17, 2025
766 of 767 checks passed
@watson watson deleted the v5.59.0-proposal branch July 17, 2025 10:38
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.