Skip to content

Make HTTP clients fit in the plugin hierarchy#3178

Merged
jbertran merged 2 commits into
masterfrom
jbertran/http-client-tree
Jun 1, 2023
Merged

Make HTTP clients fit in the plugin hierarchy#3178
jbertran merged 2 commits into
masterfrom
jbertran/http-client-tree

Conversation

@jbertran

Copy link
Copy Markdown
Contributor

What does this PR do?

  • Move HTTP and HTTP2 clients to ClientPlugin
  • Stop subscribing to connect channels in all OutboundPlugins, since only cassandra actually uses this channel

Motivation

To introduce peer service (see #3177), it's helpful for all client/producer plugins to have at least OutboundPlugin in their inheritance path.

Plugin Checklist

  • Unit tests.

Additional Notes

@github-actions

github-actions Bot commented May 22, 2023

Copy link
Copy Markdown
Contributor

Overall package size

Self size: 4.18 MB
Deduped: 58.38 MB
No deduping: 58.43 MB

Dependency sizes

name version self size total size
@datadog/pprof 2.2.1 14.24 MB 15.12 MB
@datadog/native-iast-taint-tracking 1.4.1 14.85 MB 14.86 MB
@datadog/native-appsec 3.2.0 13.38 MB 13.39 MB
protobufjs 7.1.2 2.76 MB 6.55 MB
@datadog/native-iast-rewriter 2.0.1 2.09 MB 2.1 MB
@datadog/native-metrics 2.0.0 898.77 kB 1.3 MB
opentracing 0.14.7 194.81 kB 194.81 kB
semver 7.3.8 88.2 kB 118.6 kB
@datadog/sketches-js 2.1.0 109.9 kB 109.9 kB
lodash.sortby 4.7.0 75.76 kB 75.76 kB
lru-cache 7.14.0 74.95 kB 74.95 kB
ipaddr.js 2.0.1 59.52 kB 59.52 kB
ignore 5.2.0 48.87 kB 48.87 kB
import-in-the-middle 1.3.5 34.34 kB 38.81 kB
istanbul-lib-coverage 3.2.0 29.34 kB 29.34 kB
retry 0.10.1 27.44 kB 27.44 kB
lodash.uniq 4.5.0 25.01 kB 25.01 kB
limiter 1.1.5 23.17 kB 23.17 kB
lodash.kebabcase 4.1.1 17.75 kB 17.75 kB
lodash.pick 4.4.0 16.33 kB 16.33 kB
node-abort-controller 3.0.1 14.33 kB 14.33 kB
crypto-randomuuid 1.0.0 11.18 kB 11.18 kB
diagnostics_channel 1.1.0 7.07 kB 7.07 kB
path-to-regexp 0.1.7 6.78 kB 6.78 kB
koalas 1.0.2 6.47 kB 6.47 kB
methods 1.1.2 5.29 kB 5.29 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

@jbertran
jbertran force-pushed the jbertran/http-client-tree branch from b58b131 to 41fce29 Compare May 22, 2023 16:08
@codecov

codecov Bot commented May 22, 2023

Copy link
Copy Markdown

Codecov Report

Merging #3178 (cfae42e) into master (d638b4b) will decrease coverage by 0.01%.
The diff coverage is 100.00%.

❗ Current head cfae42e differs from pull request most recent head cac2cd6. Consider uploading reports for the commit cac2cd6 to get more accurate results

@@            Coverage Diff             @@
##           master    #3178      +/-   ##
==========================================
- Coverage   86.57%   86.56%   -0.01%     
==========================================
  Files         333      333              
  Lines       11934    11928       -6     
  Branches       33       33              
==========================================
- Hits        10332    10326       -6     
  Misses       1602     1602              
Impacted Files Coverage Δ
packages/dd-trace/src/plugins/outbound.js 50.00% <ø> (ø)
...kages/datadog-plugin-cassandra-driver/src/index.js 93.33% <100.00%> (+1.66%) ⬆️
packages/datadog-plugin-http/src/client.js 96.90% <100.00%> (-0.10%) ⬇️
packages/datadog-plugin-http2/src/client.js 96.80% <100.00%> (-0.07%) ⬇️

... and 3 files with indirect coverage changes

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@jbertran
jbertran marked this pull request as ready for review May 22, 2023 16:13
@jbertran
jbertran requested a review from a team as a code owner May 22, 2023 16:13
@pr-commenter

pr-commenter Bot commented May 22, 2023

Copy link
Copy Markdown

Benchmarks

Comparing candidate commit cac2cd6 in PR branch jbertran/http-client-tree with baseline commit d638b4b in branch master.

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

@jbertran
jbertran force-pushed the jbertran/http-client-tree branch 5 times, most recently from 1d03fe3 to 8ab1379 Compare May 24, 2023 13:33
@jbertran
jbertran force-pushed the jbertran/http-client-tree branch from 8ab1379 to cfae42e Compare May 30, 2023 09:04
tlhunter
tlhunter previously approved these changes May 30, 2023

@tlhunter tlhunter left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

This looks good to me. It makes sense that an HTTP client would extend from ClientPlugin, being a client and all.

This appears to be entirely a refactor, nothing new, and the untouched tests all pass.

That said I would like @rochdev to take a quick look.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Why not keep it there? If there are no publishers, this doesn't impact anything.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I wasn't sure of the impact of subscribing to a channel, so I removed it by default. I'll revert this so we have an easy way to grab connect events in every client.

@jbertran
jbertran merged commit 3159b79 into master Jun 1, 2023
uurien pushed a commit that referenced this pull request Jun 1, 2023
* move http client to clientPlugin

* move http2 client to clientPlugin
uurien pushed a commit that referenced this pull request Jun 1, 2023
* move http client to clientPlugin

* move http2 client to clientPlugin
uurien pushed a commit that referenced this pull request Jun 1, 2023
* move http client to clientPlugin

* move http2 client to clientPlugin
This was referenced Jun 1, 2023
uurien pushed a commit that referenced this pull request Jun 2, 2023
* move http client to clientPlugin

* move http2 client to clientPlugin
uurien pushed a commit that referenced this pull request Jun 2, 2023
* move http client to clientPlugin

* move http2 client to clientPlugin
uurien pushed a commit that referenced this pull request Jun 2, 2023
* move http client to clientPlugin

* move http2 client to clientPlugin
@tlhunter
tlhunter deleted the jbertran/http-client-tree branch January 19, 2024 22:20
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