-
Notifications
You must be signed in to change notification settings - Fork 327
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
v5.48.0 proposal #5574
Conversation
* 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.
e088248
to
a854233
Compare
Overall package sizeSelf size: 9.33 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 |
Codecov ReportAll modified and coverable lines are covered by tests ✅
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. 🚀 New features to boost your workflow:
|
Datadog ReportBranch report: ✅ 0 Failed, 923 Passed, 0 Skipped, 11m 13.81s Total Time |
947e63fd01
] - (SEMVER-PATCH) [DI] Add debug log when translating breakpoint location using source map (Thomas Watson) #557232f2f27160
] - (SEMVER-MINOR) [DI] Process log template (Thomas Watson) #55484c9b1c264f
] - (SEMVER-MINOR) Login events SDK v2 (Ugaitz Urien) #5333