How istio send tracing spans to jaeger? How istio send tracing spans to jaeger? kubernetes kubernetes

How istio send tracing spans to jaeger?


Based on my experience and reading online, I found this interesting line in Istio mixer faq

Mixer trace generation is controlled by command-line flags: trace_zipkin_url, trace_jaeger_url, and trace_log_spans. If any of those flag values are set, trace data will be written directly to those locations. If no tracing options are provided, Mixer will not generate any application-level trace information.

Also, if you go deep into mixer helm chart, you will find traces of Zipkin and Jaeger signifying that it’s mixer that is passing trace info to Jaeger.

I also got confused which reading this line in one of the articles

Istio injects a sidecar proxy (Envoy) in the pod in which your application container is running. This sidecar proxy transparently intercepts (iptables magic) all network traffic going in and out of your application. Because of this interception, the sidecar proxy is in a unique position to automatically trace all network requests (HTTP/1.1, HTTP/2.0 & gRPC).

On Istio mixer documentation, The Envoy sidecar logically calls Mixer before each request to perform precondition checks, and after each request to report telemetry. The sidecar has local caching such that a large percentage of precondition checks can be performed from cache. Additionally, the sidecar buffers outgoing telemetry such that it only calls Mixer infrequently.

Update: You can enable tracing to understand what happens to a request in Istio and also the role of mixer and envoy. Read more information here