mirror of https://github.com/istio/istio.io.git
22 lines
1.2 KiB
Markdown
22 lines
1.2 KiB
Markdown
---
|
|
title: What is required for distributed tracing with Istio?
|
|
weight: 10
|
|
---
|
|
|
|
Istio enables reporting of trace spans for workload-to-workload communications within a mesh. However, in order for various trace spans to be stitched together for a complete view of the traffic flow, applications must propagate the trace context between incoming and outgoing requests.
|
|
|
|
In particular, Istio relies on applications to [propagate the B3 trace headers](https://github.com/openzipkin/b3-propagation), as well as the Envoy-generated request ID. These headers include:
|
|
|
|
- `x-request-id`
|
|
- `x-b3-traceid`
|
|
- `x-b3-spanId`
|
|
- `x-b3-parentspanid`
|
|
- `x-b3-sampled`
|
|
- `x-b3-flags`
|
|
- `b3`
|
|
|
|
If you are using LightStep, you will also need to forward the following headers:
|
|
|
|
- `x-ot-span-context`
|
|
|
|
Header propagation may be accomplished through client libraries, such as [Zipkin](https://zipkin.io/pages/tracers_instrumentation.html) or [Jaeger](https://github.com/jaegertracing/jaeger-client-java/tree/master/jaeger-core#b3-propagation). It may also be accomplished manually, as documented in the [Distributed Tracing Task](/docs/tasks/telemetry/distributed-tracing/overview#understanding-what-happened). |