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

simplify storage.js, adding a bunch of comments for clarity #5203

Merged
merged 1 commit into from
Feb 4, 2025

Conversation

bengl
Copy link
Collaborator

@bengl bengl commented Feb 4, 2025

What does this PR do?

  • Make DatadogStorage extend from AsyncLocalStorage
  • Add comments everywhere

Motivation

This file is a confusing chunk of code, and it's worth spending a few minutes now to explain it as best as possible.

@bengl bengl requested a review from a team as a code owner February 4, 2025 17:44
Copy link

github-actions bot commented Feb 4, 2025

Overall package size

Self size: 8.62 MB
Deduped: 95.02 MB
No deduping: 95.54 MB

Dependency sizes | name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.4.0 | 29.44 MB | 29.44 MB | | @datadog/native-appsec | 8.4.0 | 19.25 MB | 19.26 MB | | @datadog/native-iast-taint-tracking | 3.2.0 | 13.9 MB | 13.91 MB | | @datadog/pprof | 5.5.1 | 9.79 MB | 10.17 MB | | protobufjs | 7.2.5 | 2.77 MB | 5.16 MB | | @datadog/native-iast-rewriter | 2.8.0 | 2.6 MB | 2.74 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 | | 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 Feb 4, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 81.16%. Comparing base (c403eee) to head (70c16b2).
Report is 5 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #5203      +/-   ##
==========================================
+ Coverage   80.62%   81.16%   +0.53%     
==========================================
  Files         464      482      +18     
  Lines       20932    21522     +590     
==========================================
+ Hits        16877    17468     +591     
+ Misses       4055     4054       -1     

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

@datadog-datadog-prod-us1
Copy link

Datadog Report

Branch report: bengl/storage-cleanup
Commit report: 362e574
Test service: dd-trace-js-integration-tests

✅ 0 Failed, 616 Passed, 0 Skipped, 15m 31.17s Total Time

@bengl bengl merged commit 3b782cd into master Feb 4, 2025
354 of 355 checks passed
@bengl bengl deleted the bengl/storage-cleanup branch February 4, 2025 18:21
Comment on lines +5 to +10
/// This is exactly the same as AsyncLocalStorage, with the exception that it
/// uses a WeakMap to store the store object. This is because ALS stores the
/// store object as a property of the resource object, which causes all sorts
/// of problems with logging and memory. We substitute the `store` object with
/// a "handle" object, which is used as a key in a WeakMap, where the values
/// are the real store objects.
Copy link
Collaborator

Choose a reason for hiding this comment

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

I haven't seen this tripple slash commenting style before - is that on purpose?

}

// This is method is a passthrough to the real `getStore()`, so that, when we
Copy link
Collaborator

Choose a reason for hiding this comment

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

Suggested change
// This is method is a passthrough to the real `getStore()`, so that, when we
// This method is a passthrough to the real `getStore()`, so that, when we

rochdev pushed a commit that referenced this pull request Feb 7, 2025
* Make DatadogStorage extend from AsyncLocalStorage
* Add comments everywhere
@rochdev rochdev mentioned this pull request Feb 7, 2025
rochdev pushed a commit that referenced this pull request Feb 10, 2025
* Make DatadogStorage extend from AsyncLocalStorage
* Add comments everywhere
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants