Forwarding Tanzu Service Mesh Distributed Traces to Wavefront

· 3 min read

Distributed traces from Tanzu Service Mesh can be forwarded to Wavefront.

Introduction

Tanzu Service Mesh (TSM from here on) is a customized Istio offered by VMware. Once installed, it builds a service map like this:

By default, however, this tracing data cannot be shared with other systems. Fortunately a small configuration change makes it possible. This post shows how to send the tracing data to Tanzu Observability (Wavefront).

Caution

This is not an officially supported procedure, so proceed at your own risk.

Steps

First, edit the istio ConfigMap.

kubectl edit cm istio -n istio-system

Find the following entry and change it from false to true.

enableTracing: true

Next, edit the istio-pilot Deployment.

kubectl edit deploy -n istio-system istio-pilot

Find the following entry and change the value from 1 to 100.

        - name: PILOT_TRACE_SAMPLING
          value: "100"

Finally, define a Zipkin service as shown below. Set wavefront-proxy.wavefront.svc.cluster.local to the URL where your Wavefront Proxy is running.

apiVersion: v1
kind: Service
metadata:
  name: zipkin
  namespace: istio-system
spec:
  type: ExternalName
  externalName: wavefront-proxy.wavefront.svc.cluster.local

That's all.

Result

If everything is configured correctly, you can see the traces in Wavefront like this:

Strictly speaking, this will not match exactly what TSM shows, because the collection mechanisms differ.

Summary

Forwarding TSM traces to an external system is easy.