Skip to content

v5.59.0 proposal #6069

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

Open
wants to merge 29 commits into
base: v5.x
Choose a base branch
from
Open

v5.59.0 proposal #6069

wants to merge 29 commits into from

Conversation

dd-trace-js[bot]
Copy link

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

  • [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 13 commits July 10, 2025 05:08
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>
@dd-trace-js dd-trace-js bot mentioned this pull request Jul 10, 2025
Copy link

github-actions bot commented Jul 10, 2025

Overall package size

Self size: 9.66 MB
Deduped: 109.38 MB
No deduping: 109.77 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 | | limiter | 3.0.0 | 157.92 kB | 157.92 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 | | 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 10, 2025

Codecov Report

Attention: Patch coverage is 91.66667% with 1 line 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/helpers/hooks.js 0.00% 1 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             v5.x    #6069   +/-   ##
=======================================
  Coverage        ?   81.86%           
=======================================
  Files           ?      473           
  Lines           ?    19548           
  Branches        ?        0           
=======================================
  Hits            ?    16002           
  Misses          ?     3546           
  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 10, 2025

Benchmarks

Benchmark execution time: 2025-07-14 15:19:54

Comparing candidate commit 095abaa in PR branch v5.59.0-proposal with baseline commit c646449 in branch v5.x.

Found 60 performance improvements and 0 performance regressions! Performance is the same for 1096 metrics, 52 unstable metrics.

scenario:shimmer-startup-arrow-wrap-18

  • 🟩 cpu_user_time [-47.317ms; -37.664ms] or [-9.609%; -7.649%]
  • 🟩 execution_time [-56.364ms; -49.161ms] or [-10.040%; -8.757%]
  • 🟩 instructions [-171.8M instructions; -130.8M instructions] or [-8.075%; -6.145%]
  • 🟩 max_rss_usage [-18.609MB; -17.141MB] or [-14.081%; -12.970%]

scenario:shimmer-startup-arrow-wrap-20

  • 🟩 cpu_user_time [-51.961ms; -42.174ms] or [-12.089%; -9.812%]
  • 🟩 execution_time [-63.254ms; -58.369ms] or [-12.742%; -11.758%]
  • 🟩 instructions [-199.2M instructions; -165.2M instructions] or [-9.305%; -7.717%]
  • 🟩 max_rss_usage [-20.748MB; -19.753MB] or [-15.792%; -15.035%]

scenario:shimmer-startup-arrow-wrap-22

  • 🟩 cpu_user_time [-41.460ms; -30.434ms] or [-10.239%; -7.516%]
  • 🟩 execution_time [-51.466ms; -39.228ms] or [-10.897%; -8.306%]
  • 🟩 instructions [-198.5M instructions; -155.3M instructions] or [-9.794%; -7.664%]
  • 🟩 max_rss_usage [-17.626MB; -15.918MB] or [-12.968%; -11.711%]

scenario:shimmer-startup-arrow-wrapfn-18

  • 🟩 instructions [-63.8M instructions; -59.7M instructions] or [-6.001%; -5.613%]

scenario:shimmer-startup-arrow-wrapfn-20

  • 🟩 instructions [-61.1M instructions; -56.5M instructions] or [-6.218%; -5.743%]

scenario:shimmer-startup-arrow-wrapfn-22

  • 🟩 instructions [-57.7M instructions; -52.8M instructions] or [-6.179%; -5.650%]

scenario:shimmer-startup-asyncarrow-wrap-18

  • 🟩 cpu_user_time [-49.361ms; -38.053ms] or [-9.460%; -7.293%]
  • 🟩 execution_time [-57.371ms; -48.475ms] or [-9.729%; -8.221%]
  • 🟩 instructions [-164.5M instructions; -126.8M instructions] or [-7.415%; -5.716%]
  • 🟩 max_rss_usage [-17.955MB; -16.694MB] or [-13.611%; -12.655%]

scenario:shimmer-startup-asyncarrow-wrap-20

  • 🟩 cpu_user_time [-55.950ms; -44.316ms] or [-12.424%; -9.841%]
  • 🟩 execution_time [-69.984ms; -56.648ms] or [-13.510%; -10.936%]
  • 🟩 instructions [-242.0M instructions; -165.3M instructions] or [-10.752%; -7.341%]
  • 🟩 max_rss_usage [-20.465MB; -19.451MB] or [-15.607%; -14.834%]

scenario:shimmer-startup-asyncarrow-wrap-22

  • 🟩 cpu_user_time [-40.264ms; -28.630ms] or [-9.439%; -6.712%]
  • 🟩 execution_time [-50.685ms; -38.866ms] or [-10.256%; -7.864%]
  • 🟩 instructions [-216.8M instructions; -186.0M instructions] or [-10.146%; -8.707%]
  • 🟩 max_rss_usage [-17.201MB; -16.061MB] or [-12.700%; -11.858%]

scenario:shimmer-startup-asyncdeclared-wrap-18

  • 🟩 cpu_user_time [-49.852ms; -40.549ms] or [-9.547%; -7.765%]
  • 🟩 execution_time [-54.741ms; -47.178ms] or [-9.270%; -7.990%]
  • 🟩 instructions [-180.4M instructions; -135.1M instructions] or [-8.072%; -6.045%]
  • 🟩 max_rss_usage [-17.871MB; -16.746MB] or [-13.556%; -12.703%]

scenario:shimmer-startup-asyncdeclared-wrap-20

  • 🟩 cpu_user_time [-57.007ms; -37.569ms] or [-12.622%; -8.319%]
  • 🟩 execution_time [-68.957ms; -51.757ms] or [-13.329%; -10.005%]
  • 🟩 instructions [-240.6M instructions; -176.1M instructions] or [-10.737%; -7.859%]
  • 🟩 max_rss_usage [-20.706MB; -19.724MB] or [-15.768%; -15.019%]

scenario:shimmer-startup-asyncdeclared-wrap-22

  • 🟩 cpu_user_time [-40.530ms; -27.855ms] or [-9.525%; -6.546%]
  • 🟩 execution_time [-48.899ms; -36.296ms] or [-9.900%; -7.349%]
  • 🟩 instructions [-206.9M instructions; -178.8M instructions] or [-9.702%; -8.381%]
  • 🟩 max_rss_usage [-17.228MB; -15.962MB] or [-12.718%; -11.784%]

scenario:shimmer-startup-declared-wrap-18

  • 🟩 cpu_user_time [-46.197ms; -35.432ms] or [-9.329%; -7.155%]
  • 🟩 execution_time [-55.521ms; -45.460ms] or [-9.840%; -8.057%]
  • 🟩 instructions [-186.3M instructions; -139.7M instructions] or [-8.702%; -6.523%]
  • 🟩 max_rss_usage [-18.703MB; -17.174MB] or [-14.099%; -12.947%]

scenario:shimmer-startup-declared-wrap-20

  • 🟩 cpu_user_time [-58.447ms; -36.549ms] or [-13.438%; -8.403%]
  • 🟩 execution_time [-72.833ms; -53.003ms] or [-14.514%; -10.562%]
  • 🟩 instructions [-212.9M instructions; -166.4M instructions] or [-9.946%; -7.772%]
  • 🟩 max_rss_usage [-20.719MB; -19.569MB] or [-15.775%; -14.899%]

scenario:shimmer-startup-declared-wrap-22

  • 🟩 cpu_user_time [-39.235ms; -29.098ms] or [-9.738%; -7.222%]
  • 🟩 execution_time [-49.031ms; -38.632ms] or [-10.425%; -8.214%]
  • 🟩 instructions [-200.4M instructions; -161.7M instructions] or [-9.898%; -7.990%]
  • 🟩 max_rss_usage [-17.947MB; -16.466MB] or [-13.212%; -12.122%]

scenario:shimmer-startup-declared-wrapfn-18

  • 🟩 cpu_user_time [-28.318ms; -21.987ms] or [-7.261%; -5.637%]
  • 🟩 execution_time [-26.252ms; -22.069ms] or [-6.396%; -5.377%]
  • 🟩 instructions [-167.8M instructions; -151.5M instructions] or [-8.453%; -7.636%]

scenario:shimmer-startup-declared-wrapfn-20

  • 🟩 cpu_user_time [-29.403ms; -21.500ms] or [-8.795%; -6.431%]
  • 🟩 execution_time [-28.535ms; -21.419ms] or [-8.087%; -6.070%]
  • 🟩 instructions [-152.3M instructions; -138.5M instructions] or [-8.569%; -7.793%]

scenario:shimmer-startup-declared-wrapfn-22

  • 🟩 cpu_user_time [-23.584ms; -17.141ms] or [-7.606%; -5.528%]
  • 🟩 execution_time [-22.505ms; -17.479ms] or [-6.827%; -5.302%]
  • 🟩 instructions [-142.2M instructions; -132.4M instructions] or [-8.498%; -7.916%]

@dd-trace-js dd-trace-js bot force-pushed the v5.59.0-proposal branch from 8e3c632 to d37c15d Compare July 11, 2025 05:09
@dd-trace-js dd-trace-js bot force-pushed the v5.59.0-proposal branch from d37c15d to c936a97 Compare July 12, 2025 05:07
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.
@dd-trace-js dd-trace-js bot force-pushed the v5.59.0-proposal branch from c936a97 to facb822 Compare July 14, 2025 05:10
Mariovido and others added 6 commits July 14, 2025 15:10
…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 }
    }]
@dd-trace-js dd-trace-js bot force-pushed the v5.59.0-proposal branch from facb822 to 095abaa Compare July 14, 2025 15:10
@watson watson marked this pull request as ready for review July 14, 2025 15:10
@watson watson requested review from a team as code owners July 14, 2025 15:10
@watson watson requested a review from calvinbayer July 14, 2025 15:10
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.

8 participants