-
Notifications
You must be signed in to change notification settings - Fork 340
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
v5.59.0 proposal #6109
Conversation
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.
* move test cleanup to hook
* 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.
* Include RC test in test:trace:core * Rename RC test folder + fix tests * Switch to tap * Remove timeout from RC client Id test * Move integration test to correct folder
Overall package sizeSelf size: 9.68 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 |
Codecov ReportAttention: Patch coverage is
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. 🚀 New features to boost your workflow:
|
BenchmarksBenchmark execution time: 2025-07-17 10:26:17 Comparing candidate commit 2949b80 in PR branch Found 54 performance improvements and 0 performance regressions! Performance is the same for 1216 metrics, 53 unstable metrics. scenario:shimmer-startup-arrow-wrap-18
scenario:shimmer-startup-arrow-wrap-20
scenario:shimmer-startup-arrow-wrap-22
scenario:shimmer-startup-arrow-wrapfn-18
scenario:shimmer-startup-arrow-wrapfn-20
scenario:shimmer-startup-arrow-wrapfn-22
scenario:shimmer-startup-asyncarrow-wrap-18
scenario:shimmer-startup-asyncarrow-wrap-20
scenario:shimmer-startup-asyncarrow-wrap-22
scenario:shimmer-startup-asyncdeclared-wrap-18
scenario:shimmer-startup-asyncdeclared-wrap-20
scenario:shimmer-startup-asyncdeclared-wrap-22
scenario:shimmer-startup-declared-wrap-18
scenario:shimmer-startup-declared-wrap-20
scenario:shimmer-startup-declared-wrap-22
scenario:shimmer-startup-declared-wrapfn-18
scenario:shimmer-startup-declared-wrapfn-20
scenario:shimmer-startup-declared-wrapfn-22
|
5b5c94c
to
1b82e90
Compare
…6113) This is the case in CI for PRs targeting a release branch, as can be seen here: https://github.com/DataDog/dd-trace-js/blob/2caa6151a133fb782a51fa3c2c96f1a8d88da2ac/packages/dd-trace/test/setup/core.js#L24-L28
1b82e90
to
2949b80
Compare
9d0189aa18
] - (SEMVER-PATCH) ci: skip guardrail telemetry unit tests if DD_INJECT_FORCE is used (Thomas Watson) #61132caa6151a1
] - (SEMVER-PATCH) chore: make as much of profiler internals private as possible (Attila Szegedi) #6108bda7db414e
] - (SEMVER-PATCH) ci: update one pipeline reference (Roberto Montero) #611299e7bb4b09
] - (SEMVER-PATCH) Fix fs and rasp/iast problems (Ugaitz Urien) #60883c6d91c215
] - (SEMVER-MINOR) Tag profiles with a sequence number (Attila Szegedi) #61068097aa4e14
] - (SEMVER-PATCH) test: fix remote_config tests (Carles Capell) #61026aba693d31
] - (SEMVER-PATCH) bump flakiness report green requirement (Roch Devost) #61059607dcd898
] - (SEMVER-MINOR) Add ASM_EXCLUSION_DATA capability + RC management + test and refactor (Carles Capell) #6101e2dbaa8934
] - (SEMVER-PATCH) ci: add explicit dependabot label for use in automation (Roch Devost) #610020f126508d
] - (SEMVER-PATCH) ci: add job count for parametric system tests (Roch Devost) #6099a99f622ba6
] - (SEMVER-PATCH) Revert "next uncapping in source code" (Roch Devost) #60982244cf0e76
] - (SEMVER-MINOR) feat(langchain, llmobs): expand langchain support for tools and vectorstores (Sam Brenner) #5760765635b968
] - (SEMVER-PATCH) ci: disable legacy Gitlab exec in order to fix jobs failing with green status (Dmytro Yurchenko) #609700c4e732f2
] - (SEMVER-PATCH) replace get-port with OS default port in ip_extractor.spec.js (simon-id) #6095195f0ce523
] - (SEMVER-PATCH) ci: cap supported next version to be <15.4.1 (Thomas Watson) #6094551f314f76
] - (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) #6093590bba7f9f
] - (SEMVER-PATCH) test: rewrite aws sqs batch test to be deterministic (Roch Devost) #608309a838b82f
] - (SEMVER-PATCH) test: update confluent kafka tests to use dynamic topic (Roch Devost) #6079d65e486711
] - (SEMVER-PATCH) ci: add paths config to workflows for github & pull_request trigger (Roch Devost) #589185a50a53fe
] - (SEMVER-PATCH) ci: add stats and branch/date options to flakiness report (Roch Devost) #60763d58866e72
] - (SEMVER-PATCH) [test-optimization] downgrade limiter to v1.1.5 for old cypress (Ruben Bridgewater) #6091aaae9c2551
] - (SEMVER-PATCH) datastreams: skip null array entries (Ruben Bridgewater) #6090e8ac8bf622
] - (SEMVER-PATCH) remove async storage from child_process instrumentation (William Conti) #5960f97d2cde99
] - (SEMVER-PATCH) fix: some guardrail telemetry should only be sent once (Thomas Watson) #6029c67baf6e80
] - (SEMVER-MINOR) [test-optimization] [SDTEST-2290] Fix support for Cucumber 12+ (Mario Vidal Domínguez) #6087ea0d023890
] - (SEMVER-MINOR) [DI] Add support for loading probes from JSON file (Thomas Watson) #594146c7a7c1b9
] - (SEMVER-PATCH) ci: exercise more of the guardrails code during testing (Thomas Watson) #60346804d6d550
] - (SEMVER-PATCH) chore(llmobs): add internal ability to tag tool id on tool messages (Sam Brenner) #60229e3721cd71
] - (SEMVER-PATCH) [test-optimization] [SDTEST-2290] Remove Cucumber and Selenium tests (Mario Vidal Domínguez) #6086fd626ea4ec
] - (SEMVER-PATCH) [Code Origin] Take source maps into account in stack traces (Thomas Watson) #6070d5f5adf973
] - (SEMVER-PATCH) fix indeterministic request id failing di snapshot test (Roch Devost) #6084ebe303e882
] - (SEMVER-PATCH) Update WAF rules to v1.15.0 (Carles Capell) #6082cb54870963
] - (SEMVER-MINOR) [test-optimization] [SDTEST-2264] Upgrade attempt_to_fix tov5
(Mario Vidal Domínguez) #6074fe0e057f39
] - (SEMVER-PATCH) fix sqs test race condition when deleting the queue (Roch Devost) #60683c8de0a523
] - (SEMVER-PATCH) move test optimization integration tests to dedicated folder (Roch Devost) #60479a2ca1d8b2
] - (SEMVER-PATCH) ESLint: Clean up Node.js built-in ignores (Thomas Watson) #6059d5b6932cba
] - (SEMVER-PATCH) [test-optimization] [SDTEST-2272] Fixattempt_to_fix
tagging in Playwright (Mario Vidal Domínguez) #6071d04f2b4e87
] - (SEMVER-PATCH) [test-optimization] [SDTEST-2267] RemovegetPort
from Test Optimization tests (Mario Vidal Domínguez) #6064a9eaa1cf08
] - (SEMVER-MINOR) Bump native-appsec package + ASM multi DD config capability (Carles Capell) #604947d3c6312a
] - (SEMVER-MINOR) instrumentation: add hono support (Ruben Bridgewater) #60611e4c9f3ca0
] - (SEMVER-PATCH) support blocking on fastify multipart (Ilyas Shabi) #5980a57677c113
] - (SEMVER-PATCH) Use files property in package.json instead of .npmignore (Thomas Watson) #53204a08404136
] - (SEMVER-PATCH) test: use dynamic queue name for aws sqs tests (Roch Devost) #6050d4c55ba452
] - (SEMVER-PATCH) [test-optimization] Add logs for Playwright test (Mario Vidal Domínguez) #6055d3764398de
] - (SEMVER-PATCH) ESLint: Scope certain files to other Node.js versions than v18.0.0 (Thomas Watson) #60309453dcf991
] - (SEMVER-PATCH) datastreams: safer and faster schema serialization (Ruben Bridgewater) #6042ef608d6c48
] - (SEMVER-PATCH) test: remove get-port usage in core tests and appsec (Roch Devost) #6060b4edcab2a2
] - (SEMVER-PATCH) test: remove get-port usage from inferred proxy test (Roch Devost) #6054f2f650b528
] - (SEMVER-PATCH) ESLint: Require 'use strict' header (Thomas Watson) #53341f4d857a96
] - (SEMVER-PATCH) chore: update dependencies & dependabot & less cache lookups (Ruben Bridgewater) #6041e7cf286691
] - (SEMVER-PATCH) Enable recommended rules for eslint-plugin-n (Thomas Watson) #52169ff794ccfc
] - (SEMVER-PATCH) perf: improve algorithm for getting callsites in AppSec (Thomas Watson) #6044