-
Notifications
You must be signed in to change notification settings - Fork 55
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
Asymmetry in extractor vs injector breaks propagation #96
Comments
ps "Brave headers" is a little imprecise probably a hundred libraries use
B3 :P
…On Fri, Sep 14, 2018 at 11:02 PM Mike Eltsufin ***@***.***> wrote:
The extractor always prioritizes GCP headers (X-Cloud-Trace-Context) over
the Brave headers.
However, the injector only propagates traces in the Brave headers. The GCP
load-balancer will generate X-Cloud-Trace-Context header when one is not
present. This causes a break in the trace propagation from service A to B.
I see two possible solutions:
1. Injector should inject both X-Cloud-Trace-Context and X-B3-*
headers.
2. Extractor should prioratize X-B3-* headers over
X-Cloud-Trace-Context.
See: spring-attic/spring-cloud-gcp#1019
<spring-attic/spring-cloud-gcp#1019>
cc/ @saturnism <https://github.com/saturnism>
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#96>, or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAD611yMebDJKJT0jKuBwu5C3vXGuNgQks5ua8UPgaJpZM4WpcCh>
.
|
I would recommend a couple things:
1. file a ticket with GCP load balancer to understand B3 headers.
Since many including census libraries also can send these as many
others sooner is better than later
2. I think your option of prioritizing B3 first will result in less
trace breaking because you can't control all the other libraries in
the ecosystem.
* If you can, then you could prioritize as currently then
dual-propagate X-Cloud-Trace-Context
…On Fri, Sep 14, 2018 at 11:02 PM Mike Eltsufin ***@***.***> wrote:
The extractor always prioritizes GCP headers (X-Cloud-Trace-Context) over the Brave headers.
However, the injector only propagates traces in the Brave headers. The GCP load-balancer will generate X-Cloud-Trace-Context header when one is not present. This causes a break in the trace propagation from service A to B.
I see two possible solutions:
Injector should inject both X-Cloud-Trace-Context and X-B3-* headers.
Extractor should prioratize X-B3-* headers over X-Cloud-Trace-Context.
See: spring-attic/spring-cloud-gcp#1019
cc/ @saturnism
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.
|
You are basically suggesting combining both proposed solutions. Makes sense. |
I meant do both 1 and 2. I maybe mis-phrased the bullet:
The sub-point to two was meant to be phrased unlikely. For example, it isn't likely to be in a homogenous |
The extractor always prioritizes GCP headers (
X-Cloud-Trace-Context
) over the Brave headers.However, the injector only propagates traces in the Brave headers. The GCP load-balancer will generate
X-Cloud-Trace-Context
header when one is not present. This causes a break in the trace propagation from service A to B.I see two possible solutions:
X-Cloud-Trace-Context
andX-B3-*
headers.X-B3-*
headers overX-Cloud-Trace-Context
.See: spring-attic/spring-cloud-gcp#1019
cc/ @saturnism
The text was updated successfully, but these errors were encountered: