-
Notifications
You must be signed in to change notification settings - Fork 40
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
no opentracing context value found for span context key x_b3_traceid for request [request_id] #255
Comments
I had a theory about why this might be happening, but it's wrong. It would be helpful to have the incoming request headers for a request that produces the error log message. Now my best guess at what's happening here is the following:
The question is, "why didn't nginx find the header in the in-memory map?" The Datadog tracer would have serialized all of the B3 headers, because you configured B3 as part of I could attempt a reproduction if I had more information about the incoming request. For more immediate attention, consider contacting Datadog technical support: https://www.datadoghq.com/support/ |
@dgoffredo Thanks for the response. The message is logged for pretty much every request. Even a simple |
Did any of you ever find a solution to this? |
I attempted a reproduction but was unable to get nginx to produce that error message. |
I have reproduced that error message, but i could not get nginx to inject the b3 headers with any combination of the settings. |
The issue might be that the Datadog tracing library used by ingress-nginx, dd-opentracing-cpp, does not understand the
I thought that maybe the problem was that worker processes were not receiving the environment variables due to a lack of the following in the generated
So, I added a relevant apiVersion: v1
data:
allow-snippet-annotations: "true"
datadog-collector-host: $HOST_IP
enable-opentracing: "true"
main-snippet: "env DD_PROPAGATION_STYLE_INJECT; env DD_PROPAGATION_STYLE_EXTRACT;"
kind: ConfigMap
# ... Try the name change (no "TRACE") and the
|
Update on the above: B3 propagation actually is working with my setup. I was hitting the wrong endpoint, so the nginx ingress controller was not even handling requests. Now I'm giving |
Awesome, with these changes it seems to actually emit the b3 traces. nice! |
I've been thinking about this more, and I think that I know what's going on. I haven't tested it thoroughly, though, so take it with a grain of salt. Feel free to ignore if you got it working and just want to move on. :) The nginx-opentracing module (and nginx-datadog, for that matter) injects trace propagation headers by adding invisible The underlying tracer implementation is configured in the worker process, while the nginx configuration containing the invisible So, if you set Modifying the It sucks, but it's how it currently works. We're evaluating how Datadog will integrate with the ingress controller in the future. I'll be sure that this issue does not apply in the new solution. |
Hi,
I'm trying out opentracing with nginx-ingress-controller.
After enabling B3 using the following environment variables, the logs are filled with messages like below and the b3 headers are not being propagated.
environment vars
controller vars
log messages
helm chart version: helm-chart-4.4.2
Could you please help/point me in the right direction?
Thank you
The text was updated successfully, but these errors were encountered: