istio.io/content/en/about/faq/distributed-tracing/how-to-support-tracing.md

28 lines
1.3 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`
If you are using OpenTelemetry or Stackdriver, you will also need to forward the following headers:
- `traceparent`
- `tracestate`
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/observability/distributed-tracing/overview/#trace-context-propagation).