Skip to content

v5.48.0 proposal #5574

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 4 commits into from
Apr 14, 2025
Merged

v5.48.0 proposal #5574

merged 4 commits into from
Apr 14, 2025

Conversation

github-actions[bot]
Copy link

  • [947e63fd01] - (SEMVER-PATCH) [DI] Add debug log when translating breakpoint location using source map (Thomas Watson) #5572
  • [32f2f27160] - (SEMVER-MINOR) [DI] Process log template (Thomas Watson) #5548
  • [4c9b1c264f] - (SEMVER-MINOR) Login events SDK v2 (Ugaitz Urien) #5333

uurien and others added 3 commits April 14, 2025 11:56
* initial version, missing tests and probably refactor

* Tests and definitions and tiny fixes

* Fix lint

* Tiny format changes

* Use new method `setUserTagsSdk` to force setting the tag `_dd.appsec.user.collection_mode`

* Fix test

* Restore proxyquire nocache

* Tiny code style changes

* Add noop functions for v2

* Remove duplicated telemetry code

* Reorder exports

* Remove unnecessary setUserTagsSdk method

* Small fixes

* Rename appsec.v2 to appsec.eventTrackingV2

* Address PR comments

* Small fixes

* Remove unused code in track_event.spec.js

* Run ST in a branch

* Undo last commit

* Replace v2 to eventTrackingV2 in log messages

* Apply suggestions from code review

Co-authored-by: simon-id <[email protected]>

* Update packages/dd-trace/test/appsec/sdk/track_event.spec.js

Co-authored-by: simon-id <[email protected]>

* Address PR comments

* Update format

* tiny change

* Fix lint

* Fix test

* update doc

---------

Co-authored-by: simon-id <[email protected]>
Evaluate the log message template in the context of the line the probe is
instrumenting.

If there's more than one probe on a specific file/line/column, all evaluations
happen in a single `Debugger.evaluateOnCallFrame` call, as to minimise the
number of roundtrips over the Chrome DevTools Protocol, and hence, minimise the
time the inspected thread is paused.

The `util.inspect` method is used to stringify the results of the code
evaluations (expect for strings which are just returned as is). Options are
passed to `util.inspect` to keep the returned string small, and to align as
much as possible with the same implementation in the other tracers.

The total length of the full message is also truncated at 8KiB.

The only two major differences between this implementation and the
implementations in the other tracers are:

- If any of the objects traversed by `util.inspect` contains the magic
`[Symbol.toStringTag]` getter, it will get executed. This is technically a
side-effect, which we don't like, but in this specific case, it has been
considered tolerable, as anyone including such a function, will do so with the
express intent of modifying the string representation of instances of a given
class.

- The RFC for how message templates are evaluated, states that any objects with
fields, should have their field count capped at 5 in when stringified. This is
not possible to do with `util.inspect`, so for now all fields are included in
the string representation. This is an ok compromise for an MVP.
@pr-commenter
Copy link

pr-commenter bot commented Apr 14, 2025

Benchmarks

Benchmark execution time: 2025-04-14 12:19:35

Comparing candidate commit a854233 in PR branch v5.48.0-proposal with baseline commit bd33d10 in branch v5.x.

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

@watson watson force-pushed the v5.48.0-proposal branch from e088248 to a854233 Compare April 14, 2025 12:10
Copy link
Author

Overall package size

Self size: 9.33 MB
Deduped: 102.56 MB
No deduping: 103.08 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.5.1 | 29.73 MB | 29.73 MB | | @datadog/native-appsec | 8.5.2 | 19.33 MB | 19.34 MB | | @datadog/native-iast-taint-tracking | 3.3.1 | 13.99 MB | 13.99 MB | | @datadog/pprof | 5.7.1 | 9.51 MB | 9.88 MB | | @opentelemetry/core | 1.30.1 | 908.66 kB | 7.16 MB | | protobufjs | 7.4.0 | 2.77 MB | 5.42 MB | | @datadog/wasm-js-rewriter | 4.0.0 | 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.13.1 | 117.64 kB | 839.26 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.0 | 29.34 kB | 29.34 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.8 | 25.08 kB | 25.08 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 | | 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

Copy link

codecov bot commented Apr 14, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

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

Additional details and impacted files
@@           Coverage Diff           @@
##             v5.x    #5574   +/-   ##
=======================================
  Coverage        ?   79.28%           
=======================================
  Files           ?      514           
  Lines           ?    23355           
  Branches        ?        0           
=======================================
  Hits            ?    18517           
  Misses          ?     4838           
  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.

@watson watson marked this pull request as ready for review April 14, 2025 12:14
@watson watson requested a review from a team as a code owner April 14, 2025 12:14
@datadog-datadog-prod-us1
Copy link

Datadog Report

Branch report: v5.48.0-proposal
Commit report: 74cdec5
Test service: dd-trace-js-integration-tests

✅ 0 Failed, 923 Passed, 0 Skipped, 11m 13.81s Total Time

@watson watson merged commit 7c43255 into v5.x Apr 14, 2025
429 checks passed
@watson watson deleted the v5.48.0-proposal branch April 14, 2025 12:54
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.

4 participants