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

Add support for HTTP2 #312

Open
rochdev opened this issue Oct 15, 2018 · 11 comments
Open

Add support for HTTP2 #312

rochdev opened this issue Oct 15, 2018 · 11 comments

Comments

@rochdev
Copy link
Member

rochdev commented Oct 15, 2018

This includes instrumentation and propagation.

@csabakos
Copy link

Any updates on this? It seems that there is a http2 plugin but it has been disabled in #547

@rochdev
Copy link
Member Author

rochdev commented Apr 13, 2020

We've hit a few blockers for HTTP2 because of the way the span from the http plugin is merged with any Web framework span to make sure it stays as the root span, which is why it was disabled for now. The plan was to re-enable this plugin once the blocker has been resolved.

What is your use case for HTTP2? It's possible we can support it in another way for now, for example if you are using a framework adding support for that framework, similar to what we did with gRPC.

@csabakos
Copy link

Thanks for your response @rochdev.

What is your use case for HTTP2? It's possible we can support it in another way for now, for example if you are using a framework adding support for that framework, similar to what we did with gRPC.

I'm using https://github.com/grantila/fetch-h2 to talk to an envoy proxy via http2 (http2-prior-knowledge).

@rochdev
Copy link
Member Author

rochdev commented Apr 13, 2020

So you're using an HTTP2 client and not a server (in Node)? Since the issue we were having was with server, I could always re-add support but only for clients for now.

@csabakos
Copy link

So you're using an HTTP2 client and not a server (in Node)?

Correct

Since the issue we were having was with server, I could always re-add support but only for clients for now.

That would be much appreciated!

@rochdev
Copy link
Member Author

rochdev commented Apr 14, 2020

Enabled the client instrumentation in #912.

@mmanela
Copy link

mmanela commented Apr 12, 2023

@rochdev Any update on this issue? We just hit this in prod and are curious if there are any work arounds besides not using http2?

Fyi @shahmirn

@rochdev
Copy link
Member Author

rochdev commented Apr 12, 2023

@mmanela This is still a limitation with the product, and not really something we can fix on the library side. I would recommend reaching out to support so we can involve other teams more easily.

@shahmirn
Copy link

@rochdev We apparently were using an older version of the JS library, and found #2415 and https://github.com/DataDog/dd-trace-js/releases/tag/v3.4.0

Does that not solve this ticket, or is there some concerns with "compatibility mode"? We're not sure what compatibility mode over here means.

@rochdev
Copy link
Member Author

rochdev commented Apr 13, 2023

Ah yes sorry for the confusion, since we landed support for the compatibility API a while back I assumed you were referring to the core API. The difference is that the compatibility API basically just exposes the same API as http but uses HTTP2 under the hood, while the core API is the real HTTP2 API with all streaming and session functionalities. We support the former when using http2 with the same API as http, but not when using the full-featured API.

You can find more information about these in the Core API and Compatibility API docs.

@shahmirn
Copy link

shahmirn commented Apr 17, 2023

@rochdev Cool, thanks for the clarification!

For our use case, the compatibility API supports works just fine; we did run into one issue with express, with the router plugin, and have a PR for that: #3012

Could you or someone else take a look when they get a chance? Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants