Skip to content
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

b3 propagator not working when internal redirect #473

Open
eguzki opened this issue Aug 23, 2024 · 0 comments
Open

b3 propagator not working when internal redirect #473

eguzki opened this issue Aug 23, 2024 · 0 comments
Labels

Comments

@eguzki
Copy link

eguzki commented Aug 23, 2024

In APIcast, the opentelemetry instrumentations is working for the default W3C propagator. When trying to switch to b3 propagation type (i.e. opentelemetry_propagate b3;) propagation stops working, even though traces are still being sent to the collector.

Describe your environment

Steps to reproduce

Trying to narrow down the relevant nginx configuration used in APIcast, simplified for the shake of this issue, it looks something like this:

location / {                              
  content_by_lua_block {
    ngx.exec("@otel");                     
  }                                          
}                                       
                               
location @otel {                             
  internal;

  opentelemetry_operation_name apicast; 
  opentelemetry_propagate b3;                   
  proxy_pass http://example.com;             
}                                            

What is the expected behavior?
The request propagation of distributed tracing headers for the b3 type. When no parent trace is given, a new trace will be started. So, upstream request to example.com should have the B3 tracing header.

What is the actual behavior?
The distributed tracing headers (i.e. the B3 header) are not propagated and no new trace is started when no parent trace is given. So, the upstream request to example.com does not have the B3 header. Furthermore, if there is a parent trace, the upstream request to example.com has the B3 header being removed.

Additional context
This same configuration for W3C propagation type works like a charm.

location / {                              
  content_by_lua_block {
    ngx.exec("@otel");                     
  }                                          
}                                       
                               
location @otel {                             
  internal;

  opentelemetry_operation_name apicast; 
  opentelemetry_propagate;                   
  proxy_pass http://example.com;             
}                                            
@eguzki eguzki added the instrumentation:nginx Nginx module label Aug 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant