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

Remove legacyStorage in favor of namespaced storages #5206

Merged
merged 13 commits into from
Feb 6, 2025

Conversation

bm1549
Copy link
Contributor

@bm1549 bm1549 commented Feb 5, 2025

What does this PR do?

  • Removes legacyStorage in favor of a namespaced 'legacy' storage
  • Adds JSDoc comments to storage.js so my IDE knows how to code for me

Motivation

This gets us one step closer to getting rid of getHandle as we are now fully converted to namespaced storages

Plugin Checklist

Additional Notes

@bm1549 bm1549 requested review from a team as code owners February 5, 2025 15:34
@bm1549 bm1549 requested a review from juan-fernandez February 5, 2025 15:34
Copy link

github-actions bot commented Feb 5, 2025

Overall package size

Self size: 8.63 MB
Deduped: 95.03 MB
No deduping: 95.55 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 5, 2025

Codecov Report

Attention: Patch coverage is 84.61538% with 18 lines in your changes missing coverage. Please review.

Project coverage is 81.12%. Comparing base (3b782cd) to head (7b79ef7).
Report is 3 commits behind head on master.

Files with missing lines Patch % Lines
packages/datadog-plugin-mocha/src/index.js 0.00% 8 Missing ⚠️
packages/datadog-plugin-cucumber/src/index.js 0.00% 5 Missing ⚠️
packages/dd-trace/src/appsec/index.js 50.00% 2 Missing ⚠️
packages/dd-trace/src/plugins/plugin.js 75.00% 2 Missing ⚠️
packages/datadog-plugin-mariadb/src/index.js 66.66% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #5206      +/-   ##
==========================================
- Coverage   81.16%   81.12%   -0.05%     
==========================================
  Files         482      481       -1     
  Lines       21522    21448      -74     
==========================================
- Hits        17468    17399      -69     
+ Misses       4054     4049       -5     

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

@datadog-datadog-prod-us1
Copy link

datadog-datadog-prod-us1 bot commented Feb 5, 2025

Datadog Report

Branch report: brian.marks/remove-legacy-storage
Commit report: f0755fc
Test service: dd-trace-js-integration-tests

✅ 0 Failed, 628 Passed, 0 Skipped, 12m 19.57s Total Time

@pr-commenter
Copy link

pr-commenter bot commented Feb 5, 2025

Benchmarks

Benchmark execution time: 2025-02-06 02:02:04

Comparing candidate commit 7b79ef7 in PR branch brian.marks/remove-legacy-storage with baseline commit 3b782cd in branch master.

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

@bm1549 bm1549 requested a review from bengl February 5, 2025 20:17
@bm1549 bm1549 force-pushed the brian.marks/remove-legacy-storage branch from e48ac5a to 20d81a7 Compare February 5, 2025 22:56
Copy link
Member

@rochdev rochdev left a comment

Choose a reason for hiding this comment

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

First thank you for taking on this massive PR to address tech debt.

With that said, one of the goals of this API is to decouple storages. Using a shared constant actually introduces coupling. It also differs of usage in other places for the similar channel API. A more consistent pattern would be to simply use a string, and possibly combining that with a single instance per file (or even an instance shared in multiple files of the same component). This would also help with performance by avoiding multiple lookups at runtime. Basically, a storage instance should be ideally looked up only at most once per file, and it should not pollute a core module with information about the caller.

It's also worth noting that removing getHandle would require an actual span store, which this isn't. In that sense even the namespace name is incorrect. It would be called something like "default" or "global", but I think calling it "legacy" explicitly would be better to make it obvious that its usage going forward is discouraged and alternatives are to be considered.

@bm1549 bm1549 requested a review from rochdev February 6, 2025 02:00
@bm1549
Copy link
Contributor Author

bm1549 commented Feb 6, 2025

Bypassing merge protections bc mongoose is a broken test (cc @rochdev )

@bm1549 bm1549 merged commit f49e6ff into master Feb 6, 2025
352 of 354 checks passed
@bm1549 bm1549 deleted the brian.marks/remove-legacy-storage branch February 6, 2025 02:14
@rochdev rochdev mentioned this pull request Feb 7, 2025
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.

2 participants