Integrating Jaeger within Istio

460 views
Skip to first unread message

gbrown

unread,
May 26, 2017, 8:37:11 AM5/26/17
to Jaeger Tracing
Istio is a recently launched project to provide "an open platform to connect, manage and secure microservices" - currently within a Kubernetes context.

It uses Envoy to provide the proxy, and is currently using Zipkin to provide distributed tracing capabilities (I believe via Envoy integration).

Would like to explore options for using Jaeger with Istio.

This page shows the high level architecture and the role played by the 'mixer' component. This component currently uses the Go opentracing API (with basic tracer) to apparently provide logging of the mixer.

In a recent presentation, they showed what I believe is their intended approach to tracing (slide 16): https://istio.io/talks/istio_talk_gluecon_2017.pdf

This shows the Zipkin span data being passed from Envoy via adapters in the mixer which (if necessary) would transform the Zipkin format into an appropriate format for the backend.

The various options I can see are:

1) Implement a C++ provider for Jaeger, which would integrate into Envoy. The pro for this is that it could propagate baggage, which any other option based on using the Zipkin data would not be able to.

2) Capture Zipkin data and route it to the Jaeger backend - this may be the only short term option. One other consideration with this, and any other option based on the Zipkin data, is how the service would participate in the tracing - i.e. whether a Jaeger or Zipkin client should be used by the service.

3) Provide an adapter in the mixer (once this approach is supported in the project). Main benefit I see of this approach is having more control over the client, for sampling strategies, etc.

Thoughts?

Yuri Shkuro

unread,
May 26, 2017, 9:01:49 PM5/26/17
to Jaeger Tracing
The main problem I see is that the means by which they correlate the inbound and outbound requests is by requiring the applications/services to propagate X-B3 headers. If you want to use a different tracing system, and not change every service, it would only work if the new tracing system is still compatible on the wire with B3.

It's not clear from the architecture pic, it just says Envoy manages the tracing data - I hope it does it via OpenTracing client. If so, implementing a C++ Jaeger client will allow it to integrate with Jaeger's sampling control mechanism. But it would not help with baggage propagation, since that's not part of X-B3, and that's the only thing the application is asked to forward. It would be marginally better if the recommendation was to forward anything starting with X-B3-, rather than those 5 specific headers.

Is Istio project communicating with anyone from OpenTracing at all?

Inline image 1

Gary Brown

unread,
Jun 5, 2017, 10:50:05 AM6/5/17
to Yuri Shkuro, Jaeger Tracing
In https://lyft.github.io/envoy/docs/intro/arch_overview/tracing.html it also mentions LightStep as an implementation, using the " x-request-id and x-ot-span-context HTTP headers".

Not sure how uptodate this support is, but given the header name (x-ot-span-context) possibly there is scope to have a standard header that could be used by any OT compliant tracer - and would also be simpler for the application/service to propagate, as only one value.

However that would require additional work in the OT community. So possibly would be worth exploring a short term (B3 based) and longer term solutions?


--
You received this message because you are subscribed to the Google Groups "Jaeger Tracing" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jaeger-tracing+unsubscribe@googlegroups.com.
To post to this group, send email to jaeger-tracing@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jaeger-tracing/00bfd65d-6b15-475f-b907-98d0fedeeeb8%40googlegroups.com.

For more options, visit https://groups.google.com/d/optout.

Gary Brown

unread,
Jun 5, 2017, 10:57:25 AM6/5/17
to Yuri Shkuro, Jaeger Tracing
On Sat, May 27, 2017 at 2:01 AM, Yuri Shkuro <shk...@gmail.com> wrote:


Is Istio project communicating with anyone from OpenTracing at all?


Sorry didn't answer your question - not that I am aware of, although their mixer is using the Go basictracer.

Yuri Shkuro

unread,
Jun 5, 2017, 12:03:52 PM6/5/17
to Gary Brown, Yuri Shkuro, Jaeger Tracing
I think supporting B3 headers is the best bet in the short term.

--
You received this message because you are subscribed to the Google Groups "Jaeger Tracing" group.
To unsubscribe from this group and stop receiving emails from it, send an email to jaeger-tracing+unsubscribe@googlegroups.com.
To post to this group, send email to jaeger-tracing@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages