Skip to content
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

v4.53.0 proposal #5030

Merged
merged 75 commits into from
Dec 18, 2024
Merged

v4.53.0 proposal #5030

merged 75 commits into from
Dec 18, 2024

Conversation

rochdev
Copy link
Member

@rochdev rochdev commented Dec 17, 2024

  • [b7ccd40dc7] - (SEMVER-PATCH) update type tests to typescript 4.9.4 (Roch Devost) #5041
  • [c5dc10c9a3] - (SEMVER-PATCH) repo: ask for config details on bug creation (Thomas Hunter II) #5027
  • [9bff311dc2] - (SEMVER-PATCH) fix runtime metrics test not waiting for gc observer to run (Roch Devost) #5039
  • [bfe48c9d89] - (SEMVER-PATCH) update package size job to node 20 (Roch Devost) #5040
  • [216bf5d13b] - (SEMVER-MINOR) [serverless] Add DynamoDB Span Pointers (Nicholas Hulston) #4912
  • [391ab8b6d3] - (SEMVER-PATCH) set node types minimum version to oldest (Roch Devost) #5029
  • [6cda847920] - (SEMVER-PATCH) K8s tests: Run on parallel matrix (Roberto Montero) #5038
  • [275bb7ef9d] - (SEMVER-MINOR) Support tainted strings coming from database for SQLi, SSTi and Code injection (Ugaitz Urien) #4904
  • [28bca839ec] - (SEMVER-PATCH) [DI] Improve trace/span-id probe results tests (Thomas Watson) #5036
  • [50619f7408] - (SEMVER-MINOR) [DI] Associate probe results with active span (Thomas Watson) #5035
  • [7d53c26746] - (SEMVER-PATCH) [test optimization] [SDTEST-1332] Fetch di_enabled flag (Juan Antonio Fernández de Alba) #5006
  • [a38aaddd8b] - (SEMVER-MINOR) enable crashtracking by default outside of ssi (Roch Devost) #5026
  • [fb9ccca583] - (SEMVER-PATCH) update native-metrics to 3.1.0 (Roch Devost) #5022
  • [a17c93f64f] - (SEMVER-PATCH) repo: mandatory issue templates (Thomas Hunter II) #5023
  • [e4d4cc3456] - (SEMVER-PATCH) consolidate instances of loadInst, so code isn't repeated (Bryan English) #5020
  • [048868e2f7] - (SEMVER-MINOR) New automatic user event collection (simon-id) #4674
  • [02fba54df8] - (SEMVER-PATCH) Add some checks to avoid runtime errors (Igor Unanua) #4945
  • [23720bb6ef] - (SEMVER-PATCH) Upgrade iast rewriter version to 2.6.1 (Igor Unanua) #5010
  • [75865b4685] - (SEMVER-PATCH) Test aerospike node 16 with ubuntu-22.04 (Ugaitz Urien) #5017
  • [baf22d9f4f] - (SEMVER-PATCH) Verify yaml (Bryan English) #4639
  • [69b27b3c3d] - (SEMVER-PATCH) telemetry: make count logic faster (Thomas Hunter II) #5013
  • [749b9a8949] - (SEMVER-PATCH) use gc observer for gc runtime metrics when available (Roch Devost) #4961
  • [880f15ae97] - (SEMVER-PATCH) run benchmarks also on node 20 and 22 (Roch Devost) #4975
  • [7b5ccb2ab4] - (SEMVER-PATCH) [DI] Improve sampling tests (Thomas Watson) #4999
  • [83c69285e1] - (SEMVER-PATCH) Fix flaky dns and net timeline event tests (Attila Szegedi) #5011
  • [25d46fc785] - (SEMVER-PATCH) [DI] Clean up all logs emitted by the debugger (Thomas Watson) #5008
  • [43046841de] - (SEMVER-PATCH) copy prototypes in shimmer where necessary (Bryan English) #5009
  • [d0ba71d4a6] - (SEMVER-PATCH) telemetry: increment .count when deduping telemetry logs (Thomas Hunter II) #5001
  • [e6ad5b3b6f] - (SEMVER-PATCH) speed up shimmer by about 50x (Bryan English) #4633
  • [329bdf9bcf] - (SEMVER-PATCH) remove dependency on msgpack-lite (Roch Devost) #4969
  • [594ca4c4f3] - (SEMVER-PATCH) clarify startup benchmark (Bryan English) #3019
  • [de0b516846] - (SEMVER-PATCH) [DI] Add support for sampling (Thomas Watson) #4998
  • [c6defbc8b5] - (SEMVER-MINOR) enable log collection & log calls review (Igor Unanua) #4932
  • [95b6f956ea] - (SEMVER-PATCH) update pyenv (Fayssal DEFAA) #5005
  • [f2a3601b09] - (SEMVER-MINOR) Add Support for DD_DOGSTATSD_HOST (mhlidd) #4989
  • [04f3610708] - (SEMVER-PATCH) [DI] Improve test setup by allowing breakpoint URL to be dynamic (Thomas Watson) #4996
  • [111c61ba7a] - (SEMVER-PATCH) Add summary.json to the benchmark .gitignore file (Thomas Watson) #5003
  • [ab449ca629] - (SEMVER-PATCH) Fix numbers stated in benchmark README.md (Thomas Watson) #5002
  • [e8ff00a127] - (SEMVER-PATCH) [DI] Improve separation between RC and breakpoint logic (Thomas Watson) #4992
  • [41e8a55e2f] - (SEMVER-PATCH) [DI] Ensure the tracer doesn't block instrumented app from exiting (Thomas Watson) #4993
  • [a50d854dbd] - (SEMVER-PATCH) Ensure the fake agent in integration tests doesn't swallow exceptions (Thomas Watson) #4995
  • [1a95b0b0c5] - (SEMVER-PATCH) [DI] Handle async errors in mocha tests (Thomas Watson) #4991
  • [50bb0dd2d4] - (SEMVER-MINOR) Add support for endpoint_counts (Attila Szegedi) #4980
  • [01c3ba1eb5] - (SEMVER-PATCH) install node22 (Fayssal DEFAA) #4985
  • [ea3ab7d23c] - (SEMVER-MINOR) Update @datadog/native-iast-rewriter to 2.6.0 to support optional chainings (Ugaitz Urien) #4990
  • [b04ced437a] - (SEMVER-MINOR) Express 5 Instrumentation (ishabi) #4913
  • [4e9b1ffa7d] - (SEMVER-PATCH) Force update of nanoid to 3.3.8 (Ugaitz Urien) #4986
  • [8384ba437d] - (SEMVER-PATCH) [test optimization] Fix test name extraction in playwright (Juan Antonio Fernández de Alba) #4981
  • [af176d1ead] - (SEMVER-PATCH) make sampling rule matching case insensitive (Ida Liu) #4972
  • [9eb1180409] - (SEMVER-PATCH) fix guardrail on node version outside of ssi (Roch Devost) #4974
  • [c131b4cb38] - (SEMVER-PATCH) Delete unused benchmark for profiler (Thomas Watson) #4978
  • [e8e074e0dc] - (SEMVER-PATCH) Bump path-to-regexp from v0.1.10 to v0.1.12 (Thomas Watson) #4979
  • [528c013716] - (SEMVER-PATCH) fix next test using an incompatible version of react (Roch Devost) #4977
  • [de5b2c8112] - (SEMVER-PATCH) modernize eslint config (Bryan English) #4759
  • [823cfd44e0] - (SEMVER-PATCH) fix next esm tests installing wrong version of react (Roch Devost) #4973
  • [66ac25add8] - (SEMVER-PATCH) Explain why keeping query in http end translator (ishabi) #4967
  • [d6fd88c107] - (SEMVER-PATCH) remove try catch from iast plugin (ishabi) #4804
  • [048736ef14] - (SEMVER-MINOR) Use sampling on timeline events (Attila Szegedi) #4861
  • [b1cbf8f822] - (SEMVER-PATCH) [DI] Adhere to diagnostics JSON schema (version -> probeVersion) (Thomas Watson) #4964
  • [b771888058] - (SEMVER-MINOR) [test optimization] Add Dynamic Instrumentation support for Vitest (Juan Antonio Fernández de Alba) #4959
  • [3296eb8e18] - (SEMVER-MINOR) [test optimization] Add dynamic instrumentation support for cucumber (Juan Antonio Fernández de Alba) #4956
  • [844d62377f] - (SEMVER-PATCH) fix mysql2 3.11.5 support (Roch Devost) #4962
  • [c9be2d49ab] - (SEMVER-PATCH) fix(config): test for completeness of config telemetry (Brian Marks) #4941
  • [865654c9cd] - (SEMVER-PATCH) Protect req.socket.remoteAddress in appsec reporter (Ugaitz Urien) #4954
  • [ccc13e260b] - (SEMVER-MINOR) [test optimization] Add Dynamic Instrumentation to mocha retries (Juan Antonio Fernández de Alba) #4944
  • [b6c11a6c72] - (SEMVER-PATCH) use weakmap to avoid references from node to datadog stores (Roch Devost) #4953
  • [ec3f21089a] - (SEMVER-PATCH) Fix original url instanceOf url.URL (Ugaitz Urien) #4955
  • [2ad4cd0414] - (SEMVER-MINOR) [test optimization] Do not init on package managers (Juan Antonio Fernández de Alba) #4946
  • [63b6cf8465] - (SEMVER-PATCH) [test optimization] Fix logic to bypass jest's require cache (Juan Antonio Fernández de Alba) #4950
  • [ac19207555] - (SEMVER-PATCH) update guardrails to report telemetry in old node versions (Roch Devost) #4949
  • [82c489b548] - (SEMVER-PATCH) add runtime version to crash report metadata (Roch Devost) #4948
  • [5c6d12624b] - (SEMVER-MINOR) [test optimization] Add Dynamic Instrumentation to jest retries (Juan Antonio Fernández de Alba) #4876
  • [d19f3b03ad] - (SEMVER-PATCH) Fix IAST standalone sampling priority propagation (Carles Capell) #4927
  • [b456550ce0] - (SEMVER-PATCH) fix baggage extraction (Ida Liu) #4935

ida613 and others added 30 commits December 17, 2024 15:46
* WIP

* Disable vuln deduplication in OCE test

* Test vuln deduplication on the fly

* Skip vuln dedup in multiple sends test

* Fix lint issues

* Remove multiple send test

* Move on the fly span creation for vulns out of req to addVulnerability method

* Move finish out-of-request span

* Update packages/dd-trace/src/appsec/iast/vulnerability-reporter.js

Co-authored-by: Igor Unanua <[email protected]>

---------

Co-authored-by: Igor Unanua <[email protected]>
* fix(config): test for completeness of config telemetry

* fully case sensitive checks

* handle blocked key prefixes

* handle aggregation and nodejs specific rules

* Update to latest config rules

* Run eslint

* Apply new config mappings

* revert .gitignore

* Update config_norm_rules.json
* remove try catch from iast plugin

* fix linter
* remove query from http end translator

* add nextjs comment

* fix typo
* fix next esm tests installing wrong version of react

* ignore prereleases when installing test peer dependencies
* modernize eslint config

* Switch from the old eslintrc format to the newer format via:
  `npx @eslint/migrate-config .eslintrc.json`
* ECMAScript version is now set at 2022, in line with code supported in
  Node.js 16. This is needed for a bunch of ESM syntax like top-level
  await.
* Fixes:
    * ESM files are now covered.
    * Test globals and other test-specific config are now isolated to
      tests.
    * text_map.js has an invalid switch case. Fixed that in what I
      thought was the most reasonable way.

* replace max-len with @stylistic/js/max-len

* switch to stylistic for other rules

* update LICENSE-3rdparty.csv

* review feedback applied
The folder `benchmark/profiler` contained benchmark code for the
Profiler. However, it hasn't been used in a while and is currently
broken. Deleting to avoid confusion.
Co-authored-by: William Conti <[email protected]>
Co-authored-by: simon-id <[email protected]>
Copy link

codecov bot commented Dec 17, 2024

Codecov Report

Attention: Patch coverage is 37.79412% with 423 lines in your changes missing coverage. Please review.

Please upload report for BASE (v4.x@349020d). Learn more about missing BASE report.

Files with missing lines Patch % Lines
packages/dd-trace/src/msgpack/encoder.js 57.36% 81 Missing ⚠️
packages/dd-trace/src/appsec/user_tracking.js 15.15% 56 Missing ⚠️
packages/dd-trace/src/runtime_metrics.js 16.66% 55 Missing ⚠️
packages/dd-trace/src/profiling/profiler.js 7.89% 35 Missing ⚠️
packages/dd-trace/src/guardrails/telemetry.js 34.21% 25 Missing ⚠️
...ackages/dd-trace/src/profiling/profilers/events.js 0.00% 18 Missing ⚠️
...dd-trace/src/appsec/iast/vulnerability-reporter.js 0.00% 17 Missing ⚠️
packages/dd-trace/src/appsec/sdk/track_event.js 6.66% 14 Missing ⚠️
packages/dd-trace/src/debugger/index.js 0.00% 13 Missing ⚠️
...ackages/dd-trace/src/appsec/remote_config/index.js 28.57% 10 Missing ⚠️
... and 26 more
Additional details and impacted files
@@           Coverage Diff           @@
##             v4.x    #5030   +/-   ##
=======================================
  Coverage        ?   58.16%           
=======================================
  Files           ?      290           
  Lines           ?    13431           
  Branches        ?        0           
=======================================
  Hits            ?     7812           
  Misses          ?     5619           
  Partials        ?        0           

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

@pr-commenter
Copy link

pr-commenter bot commented Dec 17, 2024

Benchmarks

Benchmark execution time: 2024-12-18 21:57:12

Comparing candidate commit c82a7f2 in PR branch v4.53.0-proposal with baseline commit 349020d in branch v4.x.

Found 2 performance improvements and 0 performance regressions! Performance is the same for 1046 metrics, 16 unstable metrics.

scenario:appsec-iast-with-vulnerability-iast-enabled-always-active-22

  • 🟩 max_rss_usage [-9.968MB; -7.915MB] or [-7.529%; -5.978%]

scenario:encoders-0.4-18

  • 🟩 instructions [-641.1M instructions; -615.4M instructions] or [-8.258%; -7.926%]

Copy link

github-actions bot commented Dec 18, 2024

Overall package size

Self size: 8.38 MB
Deduped: 96.69 MB
No deduping: 97.21 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.3.0 | 29.43 MB | 29.43 MB | | @datadog/native-appsec | 8.3.0 | 19.37 MB | 19.38 MB | | @datadog/native-iast-taint-tracking | 3.2.0 | 13.9 MB | 13.91 MB | | @datadog/pprof | 5.4.1 | 9.76 MB | 10.13 MB | | protobufjs | 7.2.5 | 2.77 MB | 7.01 MB | | @datadog/native-iast-rewriter | 2.6.1 | 2.59 MB | 2.73 MB | | @opentelemetry/core | 1.14.0 | 872.87 kB | 1.47 MB | | @datadog/native-metrics | 3.1.0 | 1.06 MB | 1.46 MB | | @opentelemetry/api | 1.8.0 | 1.21 MB | 1.21 MB | | import-in-the-middle | 1.11.2 | 112.74 kB | 826.22 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.0 | 109.9 kB | 109.9 kB | | semver | 7.6.3 | 95.82 kB | 95.82 kB | | lodash.sortby | 4.7.0 | 75.76 kB | 75.76 kB | | ignore | 5.3.1 | 51.46 kB | 51.46 kB | | shell-quote | 1.8.1 | 44.96 kB | 44.96 kB | | istanbul-lib-coverage | 3.2.0 | 29.34 kB | 29.34 kB | | rfdc | 1.3.1 | 25.21 kB | 25.21 kB | | @isaacs/ttlcache | 1.4.1 | 25.2 kB | 25.2 kB | | tlhunter-sorted-set | 0.1.0 | 24.94 kB | 24.94 kB | | limiter | 1.1.5 | 23.17 kB | 23.17 kB | | dc-polyfill | 0.1.4 | 23.1 kB | 23.1 kB | | retry | 0.13.1 | 18.85 kB | 18.85 kB | | jest-docblock | 29.7.0 | 8.99 kB | 12.76 kB | | crypto-randomuuid | 1.0.0 | 11.18 kB | 11.18 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.3 | 4.47 kB | 4.47 kB |

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

juan-fernandez and others added 9 commits December 18, 2024 15:37
Add test that checks if everything works as expected even if tracing is
disabled.
* Add span pointer support for updateItem and deleteItem

* putItem support

* transactWriteItem support

* batchWriteItem support

* Add unit+integration tests (very large commit)

* Move `DD_AWS_SDK_DYNAMODB_TABLE_PRIMARY_KEYS` parsing logic to config.js

* Code refactoring

* Move util functions to packages/datadog-plugin-aws-sdk/

* lint

* log when encountering errors in `encodeValue`; fix test

* Send config env var as string to telemetry; handle parsing logic in dynamodb.js

* Update config_norm_rules.json

* fix test

* Add unit tests for DynamoDB generatePointerHash

* better logging + checks
@rochdev rochdev marked this pull request as ready for review December 18, 2024 22:01
@rochdev rochdev requested a review from a team as a code owner December 18, 2024 22:01
@rochdev rochdev merged commit 2fa7f97 into v4.x Dec 18, 2024
308 checks passed
@rochdev rochdev deleted the v4.53.0-proposal branch December 18, 2024 22: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.