Tanzu Service Meshの分散トレーシングをWavefrontにフォワードする

Tanzu Service Meshの分散トレーシングはWavefrontにフォワードできます。

はじめに

Tanzu Service Mesh(以降TSM)とはVMwareが提供しているカスタマイズされたIstioです。 インストールすると以下のようにサービスのマッピングがつくれます。

ただし、デフォルトでは、このトレーシング情報を他のシステムに連携はできないです。 ただ、これも簡単な設定変更で行えます。今回はこのトレーシング情報をTanzu Obserability(Wavefront) に連携する方法を紹介します。

注意

正式にサポートされている手順ではないため自己責任でお願いします。

手順

まず、istioのConfigMapをいじります。

1kubectl edit cm istio -n istio-system

以下の箇所を探してfalseからtrueに変更します。

1enableTracing: true

次に、istio-pilotのDeploymentをいじります。

1kubectl edit deploy -n istio-system istio-pilot

以下の箇所を探して、1から100にします。

1        - name: PILOT_TRACE_SAMPLING
2          value: "100"

最後に、以下の手順で、Zipkinのサービスを定義します。 なお、wavefront-proxy.wavefront.svc.cluster.local には別途Wavefront Proxyが稼働しているURLを指定します。

1apiVersion: v1
2kind: Service
3metadata:
4  name: zipkin
5  namespace: istio-system
6spec:
7  type: ExternalName
8  externalName: wavefront-proxy.wavefront.svc.cluster.local

以上です。

結果

うまく設定すれば、以下のように、Wavefrontでみえるようになります。

なお、厳密にはTSMとみえているものとは一致しないです。これは収集の仕組みが異なるためです。

まとめ

TSMのトレーシングを外部への連携は簡単にできます。