-
Notifications
You must be signed in to change notification settings - Fork 1k
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
nri: enable otel tracing #7728
nri: enable otel tracing #7728
Conversation
3672d8e
to
fa8c3b7
Compare
/retest-required |
52a80c4
to
3596de7
Compare
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## main #7728 +/- ##
=======================================
Coverage 47.95% 47.95%
=======================================
Files 146 146
Lines 16274 16274
=======================================
Hits 7804 7804
Misses 7517 7517
Partials 953 953 |
3596de7
to
4d49ec3
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.
Thank you! Code LGTM
/retest |
Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
Signed-off-by: Krisztian Litkey <krisztian.litkey@intel.com>
4d49ec3
to
d955623
Compare
@saschagrunert ttrpc got tagged a new version. Updated deps to point the latest tag. That cost me your earlier lgtm. |
@klihub, might be a silly question, but... can we use the normal OTEL package we already have? Or does it have to be |
otelttrpc tries to be for ttrpc what otelgrpc is for grpc. Currently it implements instrumenting unary client and server interceptors which enable 2 things:
So otelttrpc is not a replacement for otel, it is a helper package which implements instrumenting interceptors so that we get ttrpc closer to grpc wrt. otel tracing transparency. With this PR in place, if tracing is enabled any related processing in NRI plugins should correctly show up in the traces. If a plugin is uninstrumented, a single (unary client call) should show up. If the plugin itself is instrumented, more detailed spans should be available as child spans of this. |
[...]
Makes sense. Since NRI uses ttrpc as its protocol of choice. Thank you! |
/approve |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: klihub, kwilczynski, saschagrunert The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
@klihub, sorry to appear out of the blue on this closed Pull Request, but I have a question. The containerd/otelttrpc package, which we now use, seems to be causing some build issues when we build CRI-O binary packages (RPMs) for use in OpenShift per: _output/src/github.com/cri-o/cri-o/vendor/github.com/containerd/otelttrpc/interceptor.go:50:2: code in directory /builddir/build/BUILD/cri-o-4fa897e3b639c3bf19ad0152f2429162548e5698/_output/src/github.com/cri-o/cri-o/vendor/github.com/containerd/otelttrpc/internal expects import "github.com/containerd/ttrpc/otelttrpc" This seems to be due to the "import path checking" feature you are using there. Just wondering, do you think this is something that you need to leverage in this specific package? |
@kwilczynski No, I can't see why we would need any of that. And actually it is more of an accident (IOW, me not being aware of the consequences) that we have those in place. I'll file a PR to get rid of them. |
@kwilczynski Filed here: containerd/otelttrpc#1. Once that gets merged, I'll file corresponding PRs to update the cri-o otelttrpc dependency |
@klihub, thank you on behalf of our build team! I appreciate a super fast response from you! 😄 |
What type of PR is this?
/kind other
What this PR does / why we need it:
This PR updates our NRI dependency enabling OpenTelemetry trace context propagation over ttrpc connections. Additionally the PR also enables automatic OpenTelemetry instrumentation of NRI ttrpc calls when tracing is globally enabled in cri-o.
Which issue(s) this PR fixes:
None
Special notes for your reviewer:
Does this PR introduce a user-facing change?
None