-
Notifications
You must be signed in to change notification settings - Fork 32
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
Add propagation to external services #386
Conversation
Signed-off-by: Rohith-Raju <rohithraju488@gmail.com>
Working: In
Then use the
We are injecting them where the |
@guicassolato Thoughts on testing this? We need to extract the information and add tracing to the external services, right? |
I tested the changes today. In general, it's all right. The PR does what it's expected to do, mostly. There are just a couple things that I didn't have time to investigate further but might be worth tackling.
I'm pretty sure these are not this PR's fault. Nevertheless, it feels we could sync this and the fixes together, maybe? At least about # 2 above we need to be certain before merging the PR, because users will probably expect baggage to the propagated as well. |
@guicassolato, We could introduce another flag that takes care of this or set tracing to be
Yes, let's do it. 😄 |
IDK if I follow 100%, but if introducing new flags + enabling tracing by default is our only option here, I prefer not to propagate traces into external service calls. Let's leave it for only when Authorino is reporting traces and this line goes back inside of the |
@guicassolato If your concern was whether we could propagate
And the Response
Baggage is being propagated 🎉
Maybe the |
@Rohith-Raju, we need to make sure the instrumentation1,2,3 is taking care of extracting the 1 Line 193 in a6cc906
2 Lines 311 to 312 in a6cc906
3 Line 369 in a6cc906
|
Sure, that makes sense. |
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.
I did some debugging now focusing on what's propagated by Envoy versus how instrumentation in Authorino will both extract the tracing data from the incoming requests and inject them into the outgoing ones.
TL;DR – Envoy does not inject baggage data into the requests to the external authorization service. It does inject the traceparent, but not the baggage. Both are propagated to a routed upstream service, but unfortunately only the traceparent to the external authorization.
There's a section specifically about baggage data in the Envoy docs where it says it works only for selected trace providers. However, I tried with Jaeger (where baggage should not be propagated) and with OpenTelemetry Collector (where I expected it to be propagated), but it wasn't propagated in either.
Another important finding was that tracing does not have to be enabled in Authorino for traceparents and baggage data detected in the incoming authorization requests to be injected into the outgoing ones.
I can share the steps to reproduce if you're interested.
Anyway, the bottom line is we can merge this PR. Thanks again for the hard work!
@guicassolato, Thanks for merging the Pr
Sure, I'd love to. I'm caught up this week with my college exams. will take it up next week |
Fixes #385
cc @guicassolato
Verification steps courtesy @guicassolato :
Step 1: Initialize cluster
Step 2: Bring up authorino
Step 3: Apply auth-config
Step 4: Sending an external authorization request to a gRPC server using
grpcurl
The response should look something like this