kubernetes / ingress-nginx

Ingress-NGINX Controller for Kubernetes
https://kubernetes.github.io/ingress-nginx/
Apache License 2.0
17k stars 8.15k forks source link

Allow setting OpenTelemetry propagation type to B3 #10324

Open illrill opened 11 months ago

illrill commented 11 months ago

I want the ability to use B3 (Zipkin) propagation headers in the ingress-nginx OpenTelemetry implementation.

The upstream opentelemetry-cpp-contrib NGINX module supports two propagation types: W3C (default) and B3, configurable with the opentelemetry_propagate directive:

opentelemetry_propagate (W3C) opentelemetry_propagate b3 (B3)

The current ingress-nginx implementation of the module hardcodes opentelemetry_propagate. We should expose a config option and potentially an ingress annotation that allows setting opentelemetry_propagate b3, perhaps in the simplest form as a boolean opentelemetry-propagate-b3: "true".

Especially considering v1.10 plans (#10186, #8687) to remove the OpenTracing implementation which does supports B3 (Zipkin) propagation.

k8s-ci-robot commented 11 months ago

This issue is currently awaiting triage.

If Ingress contributors determines this is a relevant issue, they will accept it by applying the triage/accepted label and provide further guidance.

The triage/accepted label can be added by org members by writing /triage accepted in a comment.

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md). If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes/test-infra](https://github.com/kubernetes/test-infra/issues/new?title=Prow%20issue:) repository.
esigo commented 11 months ago

/assign

illrill commented 11 months ago

@esigo does it make sense to wait for https://github.com/open-telemetry/opentelemetry-cpp-contrib/pull/103 (looks like it's been revived recently), and go ahead and implement both B3 and B3-Multi in one go?

github-actions[bot] commented 10 months ago

This is stale, but we won't close it automatically, just bare in mind the maintainers may be busy with other tasks and will reach your issue ASAP. If you have any question or request to prioritize this, please reach #ingress-nginx-dev on Kubernetes Slack.

hawky-4s- commented 2 weeks ago

I would like to revive this issue as now support for everything except OpenTelemetry is dropped and only having the hardcoded value of W3C propagation without the possibility to fallback to B3 and making Zipkin and older/custom integration unsuable. Please expose a way to configure B3/B3 propagation in config.