Docs » Splunk Observability Cloud でサポートされているインテグレーション » バックエンドアプリケーションをインストルメンテーションして、スパンを Splunk APM に送信する » Istio から Splunk Observability Cloud にトレースを送信する

Istio から Splunk Observability Cloud にトレースを送信する 🔗

Istio 1.8 以降では、オブザーバビリティがネイティブサポートされています。Splunk OpenTelemetry Collector と Istio を設定することで、トレース、メトリクス、ログを Splunk Observability Cloud に送信するように Istio サービスメッシュを設定できます。

要件 🔗

Istio から Splunk Observability Cloud にテレメトリを送信するには、以下が必要です:

  • Istio 1.8以上

  • Splunk OpenTelemetry Collector for Kubernetes をホスト監視 (エージェント) モードで使用します。Install the Collector for Kubernetes using Helm を参照してください。

  • B3 コンテキスト伝搬を使用した Splunk APM インストルメンテーション。B3 をコンテキストプロパゲータとして設定するには、OTEL_PROPAGATORS 環境変数を b3multi に設定します。

OpenCensusとW3Cトレースコンテキストは、Istioがサポートしていないため、サポートされていません。

Splunk OpenTelemetry Collector をインストールして設定する 🔗

Splunk OpenTelemetry Collector for Kubernetes をホスト監視 (エージェント) モードでデプロイします。必要な Collector コンポーネントは、製品権限と収集するデータによって異なります。Install the Collector for Kubernetes using Helm を参照してください。

Collector の Helm チャートで、helm install または helm upgrade コマンドに --set autodetect.istio=true を渡して、autodetect.istio パラメータを true に設定します。

また、values.yamlファイルに以下のスニペットを追加し、-f myvalues.yaml 引数で渡すこともできます:

autodetect:
   istio: true

データ転送がテレメトリを生成しないようにする 🔗

Istio から Collector にテレメトリを転送すると、望ましくないテレメトリが生成されることがあります。これを回避するには、以下のいずれかを実行します:

  • Istioプロキシがない別の名前空間でCollectorを実行します。

  • Istioプロキシの注入を防ぐために、Collectorポッドにラベルを追加します。これは、autodetect.istio パラメータが true に設定されている場合のデフォルトの設定です。

  • CollectorポッドでIstioプロキシが必要な場合は、Collectorポッドでトレースを無効にします。例:

    # ...
    otelK8sClusterReceiver:
       podAnnotations:
          proxy.istio.io/config: '{"tracing":{}}'
    otelCollector:
       podAnnotations:
          proxy.istio.io/config: '{"tracing":{}}'
    

注釈

インストルメンテーション・ポッドはDaemonSetであり、デフォルトではプロキシは注入されません。Istio がインストルメンテーション・ポッドにプロキシを注入する場合は、podAnnotation を使用してトレースを無効にしてください。

Istio オペレーターの設定 🔗

以下の手順に従って、Istio Operator を設定します:

  • environment.deployment 属性を設定します。

  • ホスト上で実行されている Splunk OpenTelemetry Collector にデータを送信するように Zipkin トレーサーを設定します。

例:

# tracing.yaml

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
name: istio-operator
spec:
   meshConfig:
      # Requires Splunk Log Observer
      accessLogFile: /dev/stdout
      # Requires Splunk APM
      enableTracing: true
      defaultConfig:
         tracing:
            max_path_tag_length: 99999
            sampling: 100
            zipkin:
               address: $(HOST_IP):9411
            custom_tags:
               environment.deployment:
                  literal:
                     value: dev

新しいコンフィギュレーションを有効にするには、以下を実行します:

istioctl install -f ./tracing.yaml

Istio プロキシを含むポッドを再起動して、新しいトレース設定を有効にします。

サービスメッシュ内のすべてのポッドを更新する 🔗

Istio サービスメッシュにあるすべてのポッドを更新して、app ラベルを含めます。Istio はこれを使用して Splunk サービスを定義します。

注釈

もし app ラベルを設定しなければ、プロキシとサービスの関係を特定することはより難しくなります。

推奨事項 🔗

完全忠実なデータ保持を最大限に活用するには、サンプリングと最大タグ長を以下のように設定して、できるだけ多くのトレースデータを送信するようにIstioを設定します:

  • すべてのトレースが正しいルートスパンを持つように、100sampling 値を設定します。

  • キー・タグが切り捨てられるのを避けるため、max_path_tag_length の値を 99999 に設定します。

例:

# tracing.yaml

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
name: istio-operator
spec:
   meshConfig:
      # Requires Splunk Log Observer
      accessLogFile: /dev/stdout
      # Requires Splunk APM
      enableTracing: true
      defaultConfig:
         tracing:
            max_path_tag_length: 99999
            sampling: 100
            zipkin:
               address: $(HOST_IP):9411
            custom_tags:
               environment.deployment:
                  literal:
                     value: dev

Istioの設定方法の詳細については、Istio分散トレースのインストールドキュメントを参照してください。

Splunk Observability Cloudをご利用のお客様で、Splunk Observability Cloudでデータを確認できない場合は、以下の方法でサポートを受けることができます。

Splunk Observability Cloudをご利用のお客様

見込み客および無料トライアルユーザー様

  • Splunk Answers のコミュニティサポートで質問し、回答を得る

  • Splunk #observability ユーザーグループの Slack チャンネルに参加して、世界中の顧客、パートナー、Splunk 社員とのコミュニケーションを図る。参加するには、Get Started with Splunk Community マニュアルの チャットグループ を参照してください。

This page was last updated on 2024年06月27日.