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

Will Pixie support HTTP2/gRPC out of the box in the future? #323

Closed
lukeplausin opened this issue Sep 30, 2021 · 6 comments
Closed

Will Pixie support HTTP2/gRPC out of the box in the future? #323

lukeplausin opened this issue Sep 30, 2021 · 6 comments

Comments

@lukeplausin
Copy link

Is your feature request related to a problem? Please describe.
I'm using Pixie as part of a New Relic One trial. Pixie was bundled with the Kubernetes onboarding runtime.

I can see simple HTTP spans and some SQL statements in the console but nothing related to the app, which uses HTTP2 and gRPC for internal communication.

I note from the Pixie docs that HTTP2 data is not automatically traced.
https://docs.px.dev/about-pixie/data-sources/

Is there a way to manually enable HTTP2 tracing? And will HTTP2 be automatically supported in a future release?

Describe the solution you'd like
Guidance on HTTP2 tracing

Describe alternatives you've considered
I've looked for a way to ingest zipkin spans, it seems it's possible in New Relic, although not via Pixie.

Additional context
Pixie roadmap (HTTP2 not mentioned)
https://docs.px.dev/about-pixie/roadmap/

@htroisi
Copy link
Contributor

htroisi commented Sep 30, 2021

@lukeplausin - Pixie automatically traces HTTP2/gRPC requests for Golang apps compiled with debug info. We plan to support more languages in the future. If your app is written in Go, make sure that it includes debug information (directions). As you correctly noted, Pixie does not yet support ingestion, however, ingestion is on our roadmap.

@lukeplausin
Copy link
Author

@htroisi thanks for the info.

Can you say something about why HTTP2 is available for Go apps only? Is it due to a technical limitation in the platform or just because this is what has currently been developed? Will other runtimes be supported in the future?

We are running mainly NodeJS and some Java apps. It would not be practical to ask the dev team to port the project to Go.

@htroisi
Copy link
Contributor

htroisi commented Oct 5, 2021

@lukeplausin - Good question!

Pixie will soon have wider support for HTT2/gRPC. The limited current support is not due to a technical limitation, but rather a prioritization of other features.

Tracing encrypted traffic requires adding support for each encryption library (versus unencrypted traffic which can be traced at the lower Linux syscall level). You can read more about how Pixie traces encrypted and unencrypted traffic using eBPF here.

@lukeplausin
Copy link
Author

Thanks for the insight!

@jberryman
Copy link

Pixie will soon have wider support for HTT2/gRPC. The limited current support is not due to a technical limitation, but rather a prioritization of other features.

the docs suggest still golang only?
we're exploring pixie, but we've also realized our microservices need to transition to http2...

@ddelnano
Copy link
Member

@jberryman the HTTP2/grpc tracing is still golang only today. Other features have taken priority over expanding this support, but we are always looking for feedback from the community to fine tune our prioritization.

We also welcome community contributions and will help through the process. Protocol expansion is usually a great place to get involved because Pixie's support for adding new protocols is pretty established. The current MQTT protocol parsing work is an example of that #341.

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

No branches or pull requests

5 participants