14.1 Trace
Use distributed tracing to understand how requests flow between MicroTx and the microservices. Use tools, such as Kiali and Jaeger, to track and trace distributed transactions in MicroTx.
Istio is a service mesh that provides a separate infrastructure layer to handle inter-service communication. Network communication is abstracted from the services themselves and is handled by proxies. Istio uses a sidecar design, which means that the communication proxies run in their own containers beside every service container. Envoy is the proxy that is deployed as a sidecar inside the microservices container. All communication inside the service mesh is done through the Envoy proxies. The Envoy proxies automatically generate trace spans on behalf of the microservices they proxy, requiring only that the services forward the appropriate request context. See https://istio.io/latest/docs/concepts/observability/. Istio supports many tracing backends, such as Zipkin, Jaeger, Lightstep, and Datadog.
Note:
The steps provided in this section are specific to an environment where MicroTx and Istio are deployed in a Kubernetes cluster. Use the instructions provided in this section only for test or development environments. These instructions are not meant for production environments.For more information, refer to the Kiali and Jaeger documentation.
- Install Jaeger
When you download the Istio installation bundle, it containsjaeger.yaml
, a basic sample installation to quickly get Jaeger up and running. Thejaeger.yaml
file is available in thesamples/addons
folder at the location where you have downloaded the Istio installation files. - Perform Distributed Tracing with Jaeger
- Install Kiali
When you download the Istio installation bundle, it containskiali.yaml
, a basic sample installation to quickly get Kiali up and running. Thekiali.yaml
file is available in thesamples/addon
folder at the location where you have downloaded the Istio installation files. - List of Trace Headers
When you want to trace the transaction from end-to-end, setoracle.tmm.PropagateTraceHeaders
totrue
. This propagates the trace headers for all incoming and outgoing requests.
Parent topic: Monitor and Trace Transactions