Traffic Trace
Tracing is supported on any HTTP traffic in a , and will only work with data plane proxies and services that have the Kuma kuma.io/protocol: http
tag defined. Check the for more details on how to set the protocol tag in the different environments.
In order to enable tracing there are two steps that have to be taken:
On Kubernetes we can run kumactl install tracing | kubectl apply -f -
to deploy Jaeger automatically in a kuma-tracing
namespace.
A tracing backend must be first specified in a resource. Once added, the tracing backend will be available for use in the TrafficTrace
resource.
The types supported are:
zipkin
. You can also use this with Jaeger (opens new window) since it supports Zipkin compatible traces.
To add a new tracing backend we must create a new property in a Mesh
resource:
We will apply the configuration with kubectl apply -f [..]
.
We will apply the configuration with kumactl apply -f [..]
or via the .
Add a TrafficTrace resource
Once we have added a tracing backend, we can now create TrafficTrace
resources that will determine how we are going to collecting traces, and what backend we should be using to store them.
We will apply the configuration with kubectl apply -f [..]
.
We will apply the configuration with or via the .
We can use Kuma Tags to apply the TrafficTrace
resource in a more target way to a subset of data plane proxies as opposed to all of them (like we do in the example by using the kuma.io/service: '*'
selector),
x-request-id
x-b3-traceid
x-b3-spanid
x-b3-sampled
As noted before, Envoy’s Zipkin tracer is also compatible with Jaeger through Zipkin V2 HTTP API. (opens new window).