Skip to content

v5.56.0 proposal#5886

Merged
szegedi merged 29 commits intov5.xfrom
v5.56.0-proposal
Jun 12, 2025
Merged

v5.56.0 proposal#5886
szegedi merged 29 commits intov5.xfrom
v5.56.0-proposal

Conversation

@ghost
Copy link
Copy Markdown

@ghost ghost commented Jun 12, 2025

  • [cafe33b83f] - (SEMVER-PATCH) Update pprof-nodejs to 5.8.2 (Attila Szegedi) #5866
  • [5e417ca367] - (SEMVER-PATCH) fix audit running on pull requests not touching dependencies (Roch Devost) #5879
  • [8e11d857aa] - (SEMVER-MINOR) Implement Config Chaining (Ayan Khan) #5374
  • [c5188d8f27] - (SEMVER-PATCH) fix missing octokit dependency for flakiness report workflow (Roch Devost) #5878
  • [3b64de7abc] - (SEMVER-PATCH) Fix and improve esbuild and add it to the CI (Ruben Bridgewater) #5877
  • [ed2469ea9b] - (SEMVER-PATCH) perf: improve the internal config set function (Thomas Watson) #5872
  • [7f44491fe9] - (SEMVER-PATCH) [test-optimization] [SDTEST-303] Fix jest@30 release (Juan Antonio Fernández de Alba) #4581
  • [85c5d33d57] - (SEMVER-PATCH) chore: bump brace-expansion dev-dependency (Thomas Watson) #5875
  • [fab3ee9408] - (SEMVER-PATCH) chore: temporarily restrict yarn audit to prod deps only in CI (Thomas Watson) #5874
  • [94e55a2e2c] - (SEMVER-PATCH) fix missing repo flag for retry workflow (Roch Devost) #5870
  • [ccc52ef8ee] - (SEMVER-PATCH) [SVLS-5649] Add HTTP Context Propagation to Azure Functions (Jordan Storms) #5839
  • [93d59c4f88] - (SEMVER-PATCH) add comments explaining the flakiness report script (Roch Devost) #5869
  • [5013ed8750] - (SEMVER-PATCH) add flakiness report workflow (Roch Devost) #5856
  • [784197db4d] - (SEMVER-PATCH) test: speed up DI tests (Thomas Watson) #5863
  • [7e78aaaa8f] - (SEMVER-PATCH) [DI] Support custom upload interval (Thomas Watson) #5861
  • [388c91670e] - (SEMVER-PATCH) fix oracle db bug (Ayan Khan) #5868
  • [6796afdd03] - (SEMVER-PATCH) Get response headers on Fastify by the end of the request (Ilyas Shabi) #5831
  • [7ecad193d3] - (SEMVER-PATCH) Cache tainted value of query params in express v5 (Ilyas Shabi) #5716
  • [145dcd7709] - (SEMVER-PATCH) [test-optimization] [SDTEST-303] Unblock CI due to Jest@30 release (Mario Vidal Domínguez) #5862
  • [27eaee58f4] - (SEMVER-PATCH) add workflow to auto-retry main and release branches (Roch Devost) #5851
  • [994323dbca] - (SEMVER-PATCH) Do not extract baggage when config.tracePropagationBehaviorExtract is 'ignore' (Ida Liu) #5860
  • [3c8fe63a34] - (SEMVER-PATCH) [test-optimization] [SDTEST-2144] Fix it.failing in combination with EFD (Mario Vidal Domínguez) #5857
  • [ec706ad4bb] - (SEMVER-PATCH) Fix iast mysql2 (Ugaitz Urien) #5847
  • [e5dcebca20] - (SEMVER-PATCH) test: clean up fake agent start/stop code (Thomas Watson) #5854
  • [38f67f3e16] - (SEMVER-PATCH) test: reduce usage of get-port dependency (Thomas Watson) #5848
  • [b7e4f8e015] - (SEMVER-PATCH) test: destroy active connections when stopping fake agent (Thomas Watson) #5853
  • [ffcef30249] - (SEMVER-PATCH) move cypress tests from apm integrations to test optimization (Roch Devost) #5849
  • [90fe64b984] - (SEMVER-PATCH) Baggage update (Ida Liu) #5815

ida613 and others added 29 commits June 12, 2025 08:38
Use span._baggageItems only for legacy ot-baggage to avoid breaking changes. Use storage('baggage') for otel-compatible baggage exclusively.

---------

Co-authored-by: Ruben Bridgewater <ruben@bridgewater.de>
The fake agent is used in tests and is stopped after the test is done.

When calling its `stop` function, it will wait for active connections (sockets)
to close before considering itself stopped. This can add an unnecessary waiting
period after each test, as the timeout on the socket by default is two seconds
in our code-base:

    https://github.com/DataDog/dd-trace-js/blob/90fe64b9845d04d6273ec2b7a36ba6a7844b8253/packages/dd-trace/src/exporters/common/request.js#L56

For integration tests making heavy use of fake agents, this can add several
minutes of overhead that can be avoided by destroying the sockets when calling
the `stop` function on the fake agent.

This mainly affects tests running on Node.js 18, as sockets there for some
reason takes a little longer to clear out.
* cache tainted value of query params in express v5

* fix tainting value

* taint query object

* remove only from esm test

* cache tainted query

* check if value equal cache

* clone tainted object

* cache only if it's primitive

* use flat structure for cache

* fix linter

* check if cached value equals current

* prevent double access to map

* fix linter
* set headers manually before calling writeHead

* use writeHead dc instead

* linter

* get right fastify span

* merge reply and request headers

* remove get-port

* fix tests

* avoid unecessary object creation

* avoid nullish storedResponseHeaders

* linter
* fix oracle db bug
Add a new config option to control the upload interval used by Dynamic
Instrumentation (DI). By default, data collected by DI is buffered in
memory, and only sent to the agent once every second (if there is data
in the buffer).

The new config option, allows the timeout to be controlled by the
following environment variable:

    DD_DYNAMIC_INSTRUMENTATION_UPLOAD_INTERVAL_SECONDS

There is also a code config alias:

    { dynamicInstrumentation: { uploadIntervalSeconds: 1 } }

The value of this config option is parsed as a float.

The main use-case for this config option is to make tests run faster, as
they don't have to wait for the one second timeout. It's not expected
that end-users would need to modify the default value.
Increase the RC poll interval in the Dynamic Instrumentation integration
tests, so that they run faster.
There's a potential ReDoS vulnerability in `brace-expansion` which is a
dev-sub-dependency of ours (the `dd-trace` is not vulnerable). As of
now, we don't have an upgrade path, which unfortunately means this
blocks all CI.

Temporarily disable running `yarn audit` on dev-dependencies to allow work
to be done in the repo.
The function is now almost twice as fast and doesn't create any temprary
objects in memory.
* Test latest versions together with esbuild

* Fix esbuild not picking up all files and test more

This makes sure we run our tests with the oldest and newest esbuild
version as well as adding the tests to our CI. They did not yet
run in the CI before.
It seems like esbuild does not pick up dynamic require calls, so I
changed the ones I could find. This should fix the profiler to also
be included in esbuild outputs in the future.
Enhances configuration telemetry to capture data from all sources, sending updates only when changes occur.

Adds a `seq_id` to each payload, allowing the backend to assume the configuration with the highest `seq_id` is the one in active use by the tracer.

Co-authored-by: Thomas Watson <thomas.watson@datadoghq.com>
@ghost ghost mentioned this pull request Jun 12, 2025
@github-actions
Copy link
Copy Markdown
Contributor

Overall package size

Self size: 9.64 MB
Deduped: 101.59 MB
No deduping: 102.11 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.6.0 | 30.47 MB | 30.47 MB | | @datadog/native-appsec | 8.5.2 | 19.33 MB | 19.34 MB | | @datadog/native-iast-taint-tracking | 4.0.0 | 11.72 MB | 11.73 MB | | @datadog/pprof | 5.8.2 | 9.56 MB | 9.93 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 | | import-in-the-middle | 1.14.0 | 120.58 kB | 841.68 kB | | source-map | 0.7.4 | 226 kB | 226 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | lru-cache | 7.18.3 | 133.92 kB | 133.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 | 5.3.2 | 53.63 kB | 53.63 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.2 | 23.54 kB | 23.54 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

name: Retry

on:
workflow_run:
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 Code Vulnerability

Dangerous GitHub actions trigger (...read more)

View in Datadog  Leave us feedback  Documentation

@codecov
Copy link
Copy Markdown

codecov Bot commented Jun 12, 2025

Codecov Report

Attention: Patch coverage is 98.85057% with 1 line in your changes missing coverage. Please review.

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

Files with missing lines Patch % Lines
...d-trace/src/appsec/iast/security-controls/index.js 0.00% 1 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             v5.x    #5886   +/-   ##
=======================================
  Coverage        ?   80.74%           
=======================================
  Files           ?      463           
  Lines           ?    19910           
  Branches        ?        0           
=======================================
  Hits            ?    16076           
  Misses          ?     3834           
  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.

@datadog-datadog-prod-us1
Copy link
Copy Markdown

Datadog Report

Branch report: v5.56.0-proposal
Commit report: 929da71
Test service: dd-trace-js-integration-tests

✅ 0 Failed, 1063 Passed, 0 Skipped, 16m 43.91s Total Time

@pr-commenter
Copy link
Copy Markdown

pr-commenter Bot commented Jun 12, 2025

Benchmarks

Benchmark execution time: 2025-06-12 08:48:00

Comparing candidate commit 957103f in PR branch v5.56.0-proposal with baseline commit 5d674b3 in branch v5.x.

Found 2 performance improvements and 1 performance regressions! Performance is the same for 1269 metrics, 51 unstable metrics.

scenario:plugin-bluebird-control-22

  • 🟥 cpu_user_time [+6.343ms; +10.310ms] or [+5.575%; +9.062%]

scenario:startup-with-tracer-22

  • 🟩 cpu_user_time [-26.100ms; -18.474ms] or [-12.787%; -9.051%]
  • 🟩 execution_time [-21.110ms; -18.566ms] or [-7.886%; -6.936%]

@szegedi szegedi marked this pull request as ready for review June 12, 2025 08:53
@szegedi szegedi requested review from a team as code owners June 12, 2025 08:53
@szegedi szegedi requested a review from gnufede June 12, 2025 08:53
@szegedi szegedi merged commit 16b531d into v5.x Jun 12, 2025
685 of 687 checks passed
@szegedi szegedi deleted the v5.56.0-proposal branch June 12, 2025 09:03
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.