emissary-ingress / emissary

open source Kubernetes-native API gateway for microservices built on the Envoy Proxy
https://www.getambassador.io
Apache License 2.0
4.36k stars 683 forks source link

Support for W3C Tracing #4167

Open PatrikSteuer opened 2 years ago

PatrikSteuer commented 2 years ago

Please describe your use case / problem. Technologies used within our systems support different tracing vendors(Jaeger, Zipkin, DataDog, OpenCensus, ...). Each vendor has a proprietary tracing context propagation method (B3-, UBER-, traceparent, ...). This causes broken traces.

2019 the W3C work group defined a unified trace context propagation approach, which is aligned across multiple vendors.

Multiple tracer/agent implementations do exist, however zipkin will not support this trace propagation method. Therefore an additional trace driver is needed.

Describe the solution you'd like Add OpenCensus as supported trace driver. OpenCensus does support W3C & can expose traces to multiple output formats (Jaeger, Zipkin, OpenCensus (which is understood by OpenTelemetry collectors))

Describe alternatives you've considered OpenTelemetry will support envoy. However the implementation is currently in an early implementation phase.

alexgervais commented 2 years ago

Hi @PatrikSteuer! While we wait for full OpenTelemetry support in Envoy, have you considered using OpenTelemetry's collector to proxy and transform the trace data from multiple formats and export the trace data in your format of choice? See https://opentelemetry.io/docs/collector/

PatrikSteuer commented 2 years ago

Hi @alexgervais, the OpenTelemetry collector is able to change the format of spans send to the backend. E.g. from zipkin/jaeger/opencensus to opentelemetry or other output formats. It is not able to change the used trace context propagation method. This is the responsibility of the configured tracer. Envoy proxy tracer supporting W3C:

I would favour to wait for the OTEL tracer integration, since OpenCensus will phase out in favour for OTEL.

alexgervais commented 2 years ago

Gotcha! Thanks for the clarification on the use case @PatrikSteuer

djsly commented 2 years ago

@alexgervais we are also doing a full move to OpenTracing, while Envoy is working on the support, what's a resonable ETA for Emissary to pickup a new Envoy version and expose the support ?

I have seen 1 year delta for Ambassador to upgrade envoy version in the pass, so I'm just trying to see if there is a faster cadence now in place for picking up new envoy version

alexgervais commented 2 years ago

@djsly we aim to upgrade to the latest Envoy release on every Emissary-ingress 'y' release. We expect to ship a new 3.y release at least every 8 weeks. This means, unless both Envoy and Emissary get released on the same day, you should see the new Envoy land within 2 months. We also do 'z' patch releases for Envoy security updates, but we wouldn't bring in new features in this case.

However, even when Envoy will land support for OTel, there might be extra lead time required for Emissary to allow configuring it.

djsly commented 2 years ago

Thanks Alex!

From: Alex Gervais @.> Date: Tuesday, September 13, 2022 at 5:22 PM To: emissary-ingress/emissary @.> Cc: Sylvain Boily @.>, Mention @.> Subject: Re: [emissary-ingress/emissary] Support for W3C Tracing (Issue #4167)

@djslyhttps://github.com/djsly we aim to upgrade to the latest Envoy release on every Emissary-ingress 'y' release. We expect to ship a new 3.y release at least every 8 weeks. This means, unless both Envoy and Emissary get released on the same day, you should see the new Envoy land within 2 months. We also do 'z' patch releases for Envoy security updates, but we wouldn't bring in new features in this case.

However, even when Envoy will land support for OTel, there might be extra lead time required for Emissary to allow configuring it.

— Reply to this email directly, view it on GitHubhttps://github.com/emissary-ingress/emissary/issues/4167#issuecomment-1245966661, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABGAIKWVH37HHNDHIWKLGTLV6DV7TANCNFSM5Q3PYINA. You are receiving this because you were mentioned.Message ID: @.***>

psalaberria002 commented 2 years ago

Has Opentelemetry support already been added to Envoy?

djsly commented 2 years ago

They have it for gRPC. But still marked as beta

On Sep 13, 2022, at 5:43 PM, Paul Salaberria @.***> wrote:

 Has Opentelemetry support already been added to Envoy?

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.