-
Notifications
You must be signed in to change notification settings - Fork 129
Update net/http instrumentation to comply with semantic conventions
#790
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
Conversation
MrAlias
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall looks good. Just the full URL and semconv versioning look like the only items that need to be addressed.
internal/pkg/instrumentation/bpf/net/http/client/bpf/probe.bpf.c
Outdated
Show resolved
Hide resolved
3352728 to
3401852
Compare
|
I think test failure is unrelated and fixed by #820 |
7a180bd to
68e6874
Compare
grcevski
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
RonFed
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added a comment about the Makefile change, other than that looks great.
|
ready to merge @MrAlias |
Fixes #169
This does the following:
span.Statusfor 4xx and 5xx codes in Client, and just 5xx codes in Serverprotocol.namewhen the protocol is notHTTPfor both Client and Serverurl.fullattribute from the protocol+host+path for Clientopentelemetry/controller_test.goto check that the output gets exported as expectedurl.fullfieldThis PR adds changes to the net/http eBPF instrumentation to copy the full set of fields from the
*net/url.URLobject in the Request to reconstruct aurl.fullattribute. It copies each field individually because the object is a pointer to an address in user space which would not be accessible by the auto-instrumentation agent. The agent reconstructs the GoURLobject so that it can callurl.String(), which uses logic and control flags in the original object to build the string representation (rather than building the string manually in the eBPF program).