Distributed tracing helps you track requests across multiple services in your distributed service mesh. Sampling the requests in your mesh can give you insight into request latency, serialization, and parallelism. For more information, see the Istio tracing documentation.

To get started, enable the default Envoy distributed tracing in your Istio installation to trace requests across your service mesh, analyze service dependencies and find bottlenecks or high latency services in your mesh. Then, use a tracing provider, such as Jaeger, to collect and visualize the sampled spans.

Before you begin

  1. Complete the multicluster getting started guide to set up the following testing environment.

    • Three clusters along with environment variables for the clusters and their Kubernetes contexts.
    • The Gloo meshctl CLI, along with other CLI tools such as kubectl and istioctl.
    • The Gloo management server in the management cluster, and the Gloo agents in the workload clusters.
    • Istio installed in the workload clusters.
    • A simple Gloo workspace setup.
  2. Install Bookinfo and other sample apps.

Enable tracing in Istio

  1. Instrument Istio workloads to collect traces by updating your Istio installation. The steps to update Istio vary depending on how you installed Istio.

  2. Restart the Istio workloads that you want to collect traces for. For example, if you deployed the Bookinfo sample app as part of the Get started guide, you can restart the product page app with the following command.

      kubectl rollout restart deployment productpage-v1 -n bookinfo --context $REMOTE_CONTEXT
      
  3. Begin tracing the requests in your service mesh and view the sampled spans.

For more information about setting a tracer, see the Istio meshConfig.defaultConfig.tracing reference docs.