-
Notifications
You must be signed in to change notification settings - Fork 91
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
Update net/http
instrumentation to comply with semantic conventions
#790
Conversation
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
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!
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.Status
for 4xx and 5xx codes in Client, and just 5xx codes in Serverprotocol.name
when the protocol is notHTTP
for both Client and Serverurl.full
attribute from the protocol+host+path for Clientopentelemetry/controller_test.go
to check that the output gets exported as expectedurl.full
fieldThis PR adds changes to the net/http eBPF instrumentation to copy the full set of fields from the
*net/url.URL
object in the Request to reconstruct aurl.full
attribute. 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 GoURL
object 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).