Skip to content

Dev-docs: Add HTTP Tracer explanation doc #1782

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

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

prateek041
Copy link

No description provided.

Signed-off-by: Prateek Singh <prateeksingh9741@gmail.com>
@CLAassistant
Copy link

CLAassistant commented Mar 31, 2025

CLA assistant check
All committers have signed the CLA.

@grcevski grcevski self-assigned this Apr 2, 2025
@marctc
Copy link
Contributor

marctc commented Jun 19, 2025

hey @prateek041, is this still a draft? do you want keep adding stuff or we can review it?

@prateek041
Copy link
Author

prateek041 commented Jun 19, 2025

Hey @marctc so I raised this MR a while back because I was assessing if the project wanted documentation like this on the project. Specifically in the DevDocs sections.

If the project has a need for it, there is tons of more content I can write.

@marctc
Copy link
Contributor

marctc commented Jun 24, 2025

Hey @prateek041, that sounds amazing. We would like to have such documentation like this. Feel free to put as ready for review and we can take a look.

@rafaelroquetto
Copy link
Contributor

The HTTP tracer has been removed - the job is now done in https://github.com/open-telemetry/opentelemetry-ebpf-instrumentation/blob/main/bpf/tpinjector/tpinjector.c

@prateek041
Copy link
Author

@rafaelroquetto thanks for pointing that out, but the idea behind, I.e. attaching the trace-parent header is still looks the same.

@rafaelroquetto
Copy link
Contributor

@prateek041 indeed - however, it may be worth updating the documentation to reflect the current approach which relies on skops and sk_msg programs on egress to inject the traceparent (and not TC) - for reference, this is where it happens: https://github.com/open-telemetry/opentelemetry-ebpf-instrumentation/blob/main/bpf/tpinjector/tpinjector.c

This class of programs no longer requires us to manually compute the TCP checksum or deal with the sequence numbers, as they operate at a higher level.

We still have a TC egress program for injecting the traceparent on the IP header in case the above fails (e.g. SSL), and another one on ingress to extract the options from the IP header - the code is here: https://github.com/open-telemetry/opentelemetry-ebpf-instrumentation/blob/main/bpf/tctracer/tctracer.c

@prateek041
Copy link
Author

Thanks for the detailed response @rafaelroquetto I will definitely update this over the weekend.
I'm actually glad that we don't need to manually calculate the TCP headers anymore.

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

Successfully merging this pull request may close these issues.

5 participants