すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Service Mesh:ASM からのトレーシングデータのエクスポート設定

最終更新日:Jun 22, 2026

Alibaba Cloud Service Mesh (ASM) では、トレーシングデータを OpenTelemetry 向けマネージドサービスまたは自己管理システムにエクスポートできます。このトピックでは、ASM コンソールでこのエクスポートを設定する方法について説明します。

前提条件

OpenTelemetry 向けマネージドサービスへのトレーシングデータのエクスポート

ご利用の ASM インスタンスのバージョンに対応するタブを選択します。インスタンスをアップグレードするには、「ASM インスタンスのアップグレード」をご参照ください。

1.17.2.35 より前のバージョン

  1. ASM コンソールにログインします。左側のナビゲーションウィンドウで、[Service Mesh] > [メッシュ管理] を選択します。

  2. [メッシュ管理] ページで、対象の ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、[ASM インスタンス] > [基本情報] を選択します。

  3. Base Information ページで、Settings をクリックします。Settings Update パネルで、リンクトラッキングを有効にする を選択し、Sampling Percentage を設定し、Sampling Method[OpenTelemetry 向けマネージドサービス] に設定してから、OK をクリックします。

  4. 左側のナビゲーションウィンドウで、Observability Management Center > Tracing Analysis を選択します。OpenTelemetry 向けマネージドサービスのコンソールにリダイレクトされます。設定が完了したら、OpenTelemetry 向けマネージドサービスのコンソールにログインし、[概要分析] ページでアプリケーションのリクエスト数、応答時間、スパン数などの監視メトリクスを表示できます。

    トレーシングの詳細については、「OpenTelemetry 向けマネージドサービスとは」をご参照ください。

説明

この機能を無効にするには、Settings Update パネルで リンクトラッキングを有効にする の選択を解除し、OK をクリックします。

バージョン 1.17.2.35 から 1.18.0.124 未満

  1. ASM コンソールにログインします。左側のナビゲーションウィンドウで、[Service Mesh] > [メッシュ管理] を選択します。

  2. [メッシュ管理] ページで、対象の ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、[可観測性管理センター] > [トレーシング分析] を選択します。

  3. Tracing Analysis ページで、Collect ASM Tracing Data to Managed Service for OpenTelemetry をクリックし、Confirm ダイアログボックスで OK をクリックします。

  4. Open the Managed Service for OpenTelemetry Console をクリックして、トレーシングデータを表示します。

    トレーシングの詳細については、「OpenTelemetry 向けマネージドサービスとは」をご参照ください。設定が完了したら、OpenTelemetry 向けマネージドサービスのコンソールにログインし、[概要分析] ページでアプリケーションのリクエスト数、応答時間、スパン数などの監視メトリクスを表示できます。

説明

この機能が不要になった場合は、Tracing Analysis ページで Disable Collection をクリックし、Confirm ダイアログボックスで OK をクリックします。

バージョン 1.18.0.124 から 1.22.6.89 未満

これらのバージョンのインスタンスでは、コンソールから直接 OpenTelemetry 向けマネージドサービスへのエクスポートを設定することはできません。代わりに、手動で OpenTelemetry Collector をデプロイして設定する必要があります。

ステップ 1:OpenTelemetry Operator のデプロイ

  1. ご利用の ACK クラスターの kubeconfig 環境で、次のコマンドを実行して `opentelemetry-operator-system` 名前空間を作成します。

    kubectl create namespace opentelemetry-operator-system
  2. 次のコマンドを実行して、Helm を使用して opentelemetry-operator-system 名前空間に OpenTelemetry Operator をインストールします。

    helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
    helm install --namespace=opentelemetry-operator-system opentelemetry-operator open-telemetry/opentelemetry-operator \
      --set "manager.collectorImage.repository=otel/opentelemetry-collector-k8s" \
      --set admissionWebhooks.certManager.enabled=false \
      --set admissionWebhooks.autoGenerateCert.enabled=true
  3. 次のコマンドを実行して、OpenTelemetry Operator が正常に実行されているか確認します。

    kubectl get pod -n opentelemetry-operator-system

    期待される出力:

    NAME                                      READY   STATUS    RESTARTS   AGE
    opentelemetry-operator-854fb558b5-pvllj   2/2     Running   0          1m

    STATUSRunning であれば、OpenTelemetry Operator が実行されていることを示します。

ステップ 2:OpenTelemetry Collector の作成

  1. 次の内容で collector.yaml という名前のファイルを作成します。

    YAML ファイルで、${ENDPOINT} を gRPC VPC アクセスポイントに、${TOKEN} を認証トークンに置き換えます。OpenTelemetry 向けマネージドサービスのアクセスポイントと認証トークンを取得するには、「アクセスと認証」をご参照ください。

    Collector.yaml

    apiVersion: opentelemetry.io/v1alpha1
    kind: OpenTelemetryCollector
    metadata:
      labels:
        app.kubernetes.io/managed-by: opentelemetry-operator
      name: default
      namespace: opentelemetry-operator-system
      annotations:
        sidecar.istio.io/inject: "false"
    spec:
      config: |
        extensions:
          zpages:
            endpoint: 0.0.0.0:55679 
        receivers:
          otlp:
            protocols:
              grpc:
                endpoint: 0.0.0.0:4317
        exporters:
          debug:
            verbosity: detailed
          otlp:
            endpoint: ${ENDPOINT}
            tls:
              insecure: true
            headers:
              Authentication: ${TOKEN}
        service:
          extensions: [zpages]
          pipelines:
            traces:
              receivers: [otlp]
              processors: []
              exporters: [otlp, debug]
      ingress:
        route: {}
      managementState: managed
      mode: deployment
      observability:
        metrics: {}
      podDisruptionBudget:
        maxUnavailable: 1
      replicas: 1
      resources: {}
      targetAllocator:
        prometheusCR:
          scrapeInterval: 30s
        resources: {}
      upgradeStrategy: automatic
    
  2. ご利用の ACK クラスターの kubeconfig 環境で、次のコマンドを実行してコレクターをクラスターにデプロイします。

    kubectl apply -f collector.yaml
  3. 次のコマンドを実行して、コレクターが正常に起動したか確認します。

    kubectl get pod -n opentelemetry-operator-system

    期待される出力:

    NAME                                      READY   STATUS    RESTARTS   AGE
    opentelemetry-operator-854fb558b5-pvllj   2/2     Running   0          3m
    default-collector-5cbb4497f4-2hjqv        1/1     Running   0          30s

    この出力は、コレクターが正常に起動したことを示します。

  4. 次のコマンドを実行して、サービスが作成されたか確認します。

    kubectl get svc -n opentelemetry-operator-system

    期待される出力:

    opentelemetry-operator           ClusterIP   172.16.138.165   <none>        8443/TCP,8080/TCP   3m
    opentelemetry-operator-webhook   ClusterIP   172.16.127.0     <none>        443/TCP             3m
    default-collector              ClusterIP   172.16.145.93    <none>        4317/TCP   30s
    default-collector-headless     ClusterIP   None             <none>        4317/TCP   30s
    default-collector-monitoring   ClusterIP   172.16.136.5     <none>        8888/TCP   30s

    この出力は、サービスが正常に作成されたことを示します。

ステップ 3:ASM コンソールでのトレーシングの有効化

  1. ASM コンソールにログインします。左側のナビゲーションウィンドウで、[Service Mesh] > [メッシュ管理] を選択します。

  2. [メッシュ管理] ページで、対象の ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、[可観測性管理センター] > [可観測性設定] を選択します。

  3. Observability Settings ページの Tracing Analysis Settings セクションで、Sampling Percentage100 に設定し、Submit をクリックします。

  4. 左側のナビゲーションウィンドウで、Observability Management Center > Tracing Analysis を選択します。[OpenTelemetry サービスアドレス/ドメイン]default-collector.opentelemetry-operator-system.svc.cluster.local に、OpenTelemetry Service Port4317 に設定します。その後、Collect ASM Tracing Data to Custom Managed Service for OpenTelemetry をクリックします。

バージョン 1.22.6.89 以降

  1. ASM コンソールにログインします。左側のナビゲーションウィンドウで、[Service Mesh] > [メッシュ管理] を選択します。

  2. [メッシュ管理] ページで、対象の ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、[可観測性管理センター] > [トレーシング分析] を選択します。

  3. Tracing Analysis ページの Export to Alibaba Cloud Observable Link セクションで、Export Method (例:Zipkin) を選択します。Fill in the configuration セクションで、必要な情報を入力し、Submit をクリックします。

  4. [OpenTelemetry 向けマネージドサービスのコンソールへ移動] をクリックして、トレーシングデータを表示します。トレーシングの詳細については、「OpenTelemetry 向けマネージドサービスとは」をご参照ください。

    説明

    この機能が不要になった場合は、Tracing Analysis ページで Export をクリックし、Confirm ダイアログボックスで OK をクリックします。

自己管理システムへのトレーシングデータのエクスポート

自己管理システムへのエクスポート方法は、ご利用の ASM インスタンスのバージョンによって異なります。インスタンスのバージョンに対応するタブを選択してください。

1.18.0.124 より前のバージョン

  • 1.17.2.28 より前の ASM インスタンスの場合:ASM コンソールにログインします。対象インスタンスの Base Information ページで Settings をクリックし、リンクトラッキングを有効にする を選択し、必要に応じてパラメーターを設定してから OK をクリックします。

  • バージョン 1.17.2.28 以降、1.18.0.124 未満の ASM インスタンスの場合:トレーシングの有効化方法については、「トレーシング設定」をご参照ください。

バージョン 1.18.0.124 から 1.22.6.89 未満

このバージョン範囲では、ASM コンソール の対象インスタンスの Observability Management Center > Tracing Analysis ページで、自己管理システムへのエクスポートを設定します。

パラメーター

パラメーター

説明

OpenTelemetry Domain Name (FQDN)

自己管理システムサービスの完全修飾ドメイン名 (FQDN)。例:otel.istio-system.svc.cluster.local

OpenTelemetry Service Port

自己管理システムのサービスポート。例:8090

バージョン 1.22.6.89 以降

ASM コンソール のインスタンスの Observability Management Center > Tracing Analysis ページで、自己管理のトレーシングシステムを選択して設定します。

重要

トレーシングデータを自己管理システムにエクスポートする場合、そのシステムがメッシュ内のサービスであることを確認してください。システムがサービスメッシュの外部にある場合は、ServiceEntry を作成してメッシュに登録できます。詳細については、「ServiceEntry」をご参照ください。

パラメーター

OpenTelemetry へのエクスポート

パラメーター

説明

Service domain name (full FQDN)

自己管理システムサービスの FQDN。例:otel.istio-system.svc.cluster.local

Service Port

自己管理システムのサービスポート。例:8090

gRPC 経由でのエクスポート

Timeout

任意。トレーシングデータのエクスポートリクエストのタイムアウト (秒)。例:1。この機能はデフォルトで無効になっています。

Request Header

任意。トレーシングデータのエクスポート時に含めるリクエストヘッダー。例:authentication: token-xxx。このフィールドはデフォルトで空です。

HTTP 経由でのエクスポート

Request path

トレーシングデータのエクスポート用のリクエストパス。例:/api/v2/spans。デフォルト値は / です。

Timeout

任意。トレーシングデータのエクスポートリクエストのタイムアウト (秒)。例:1。この機能はデフォルトで無効になっています。

Request Header

任意。トレーシングデータのエクスポート時に含めるリクエストヘッダー。例:authentication: token-xxx。このフィールドはデフォルトで空です。

Zipkin へのエクスポート

パラメーター

説明

Domain name of Zipkin

自己管理システムサービスの FQDN。例:zipkin.istio-system.svc.cluster.local

Request Port

自己管理システムのサービスポート。例:8090

Request Path

トレーシングデータのエクスポート用のリクエストパス。デフォルト値は /api/v2/spans です。

SkyWalking へのエクスポート

パラメーター

説明

Skywalking service domain name

自己管理システムサービスの FQDN。例:skywalking.istio-system.svc.cluster.local

Request Port

自己管理システムのサービスポート。例:8090

データエクスポートの検証

アプリケーションのデプロイ

  1. サンプルアプリケーション Bookinfo をデプロイします。

    1. 次の内容で bookinfo.yaml を作成します。

      クリックして YAML の内容を展開

      apiVersion: v1
      kind: Service
      metadata:
        name: details
        labels:
          app: details
          service: details
      spec:
        ports:
        - port: 9080
          name: http
        selector:
          app: details
      ---
      apiVersion: v1
      kind: ServiceAccount
      metadata:
        name: bookinfo-details
        labels:
          account: details
      ---
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: details-v1
        labels:
          app: details
          version: v1
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: details
            version: v1
        template:
          metadata:
            labels:
              app: details
              version: v1
          spec:
            serviceAccountName: bookinfo-details
            containers:
            - name: details
              image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/examples-bookinfo-details-v1:1.20.1
              imagePullPolicy: IfNotPresent
              ports:
              - containerPort: 9080
      ---
      ##################################################################################################
      # Ratings service
      ##################################################################################################
      apiVersion: v1
      kind: Service
      metadata:
        name: ratings
        labels:
          app: ratings
          service: ratings
      spec:
        ports:
        - port: 9080
          name: http
        selector:
          app: ratings
      ---
      apiVersion: v1
      kind: ServiceAccount
      metadata:
        name: bookinfo-ratings
        labels:
          account: ratings
      ---
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: ratings-v1
        labels:
          app: ratings
          version: v1
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: ratings
            version: v1
        template:
          metadata:
            labels:
              app: ratings
              version: v1
          spec:
            serviceAccountName: bookinfo-ratings
            containers:
            - name: ratings
              image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/examples-bookinfo-ratings-v1:1.20.1
              imagePullPolicy: IfNotPresent
              ports:
              - containerPort: 9080
      ---
      ##################################################################################################
      # Reviews service
      ##################################################################################################
      apiVersion: v1
      kind: Service
      metadata:
        name: reviews
        labels:
          app: reviews
          service: reviews
      spec:
        ports:
        - port: 9080
          name: http
        selector:
          app: reviews
      ---
      apiVersion: v1
      kind: ServiceAccount
      metadata:
        name: bookinfo-reviews
        labels:
          account: reviews
      ---
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: reviews-v1
        labels:
          app: reviews
          version: v1
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: reviews
            version: v1
        template:
          metadata:
            labels:
              app: reviews
              version: v1
          spec:
            serviceAccountName: bookinfo-reviews
            containers:
            - name: reviews
              image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/examples-bookinfo-reviews-v1:1.20.1
              imagePullPolicy: IfNotPresent
              env:
              - name: LOG_DIR
                value: "/tmp/logs"
              ports:
              - containerPort: 9080
              volumeMounts:
              - name: tmp
                mountPath: /tmp
              - name: wlp-output
                mountPath: /opt/ibm/wlp/output
            volumes:
            - name: wlp-output
              emptyDir: {}
            - name: tmp
              emptyDir: {}
      ---
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: reviews-v2
        labels:
          app: reviews
          version: v2
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: reviews
            version: v2
        template:
          metadata:
            labels:
              app: reviews
              version: v2
          spec:
            serviceAccountName: bookinfo-reviews
            containers:
            - name: reviews
              image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/examples-bookinfo-reviews-v2:1.20.1
              imagePullPolicy: IfNotPresent
              env:
              - name: LOG_DIR
                value: "/tmp/logs"
              ports:
              - containerPort: 9080
              volumeMounts:
              - name: tmp
                mountPath: /tmp
              - name: wlp-output
                mountPath: /opt/ibm/wlp/output
            volumes:
            - name: wlp-output
              emptyDir: {}
            - name: tmp
              emptyDir: {}
      ---
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: reviews-v3
        labels:
          app: reviews
          version: v3
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: reviews
            version: v3
        template:
          metadata:
            labels:
              app: reviews
              version: v3
          spec:
            serviceAccountName: bookinfo-reviews
            containers:
            - name: reviews
              image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/examples-bookinfo-reviews-v3:1.20.1
              imagePullPolicy: IfNotPresent
              env:
              - name: LOG_DIR
                value: "/tmp/logs"
              ports:
              - containerPort: 9080
              volumeMounts:
              - name: tmp
                mountPath: /tmp
              - name: wlp-output
                mountPath: /opt/ibm/wlp/output
            volumes:
            - name: wlp-output
              emptyDir: {}
            - name: tmp
              emptyDir: {}
      ---
      ##################################################################################################
      # Productpage services
      ##################################################################################################
      apiVersion: v1
      kind: Service
      metadata:
        name: productpage
        labels:
          app: productpage
          service: productpage
      spec:
        ports:
        - port: 9080
          name: http
        selector:
          app: productpage
      ---
      apiVersion: v1
      kind: ServiceAccount
      metadata:
        name: bookinfo-productpage
        labels:
          account: productpage
      ---
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: productpage-v1
        labels:
          app: productpage
          version: v1
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: productpage
            version: v1
        template:
          metadata:
            annotations:
              prometheus.io/scrape: "true"
              prometheus.io/port: "9080"
              prometheus.io/path: "/metrics"
            labels:
              app: productpage
              version: v1
          spec:
            serviceAccountName: bookinfo-productpage
            containers:
            - name: productpage
              image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/examples-bookinfo-productpage-v1:1.20.1
              imagePullPolicy: IfNotPresent
              ports:
              - containerPort: 9080
              volumeMounts:
              - name: tmp
                mountPath: /tmp
            volumes:
            - name: tmp
              emptyDir: {}
      ---
    2. データプレーンクラスターに Bookinfo アプリケーションをデプロイします。

      kubectl --kubeconfig=${DATA_PLANE_KUBECONFIG} apply -f bookinfo.yaml
  2. sleep アプリケーションをデプロイします。

    1. 次の内容で sleep.yaml という名前のファイルを作成します。

      Sleep.yaml

      apiVersion: v1
      kind: ServiceAccount
      metadata:
        name: sleep
      ---
      apiVersion: v1
      kind: Service
      metadata:
        name: sleep
        labels:
          app: sleep
          service: sleep
      spec:
        ports:
        - port: 80
          name: http
        selector:
          app: sleep
      ---
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: sleep
      spec:
        replicas: 1
        selector:
          matchLabels:
            app: sleep
        template:
          metadata:
            labels:
              app: sleep
          spec:
            terminationGracePeriodSeconds: 0
            serviceAccountName: sleep
            containers:
            - name: sleep
              image: registry.cn-hangzhou.aliyuncs.com/acs/curl:8.1.2
              command: ["/bin/sleep", "infinity"]
              imagePullPolicy: IfNotPresent
              volumeMounts:
              - mountPath: /etc/sleep/tls
                name: secret-volume
            volumes:
            - name: secret-volume
              secret:
                secretName: sleep-secret
                optional: true
      ---
    2. sleep アプリケーションをデプロイします。

      kubectl --kubeconfig=${DATA_PLANE_KUBECONFIG} apply -f sleep.yaml

テストリクエストの送信

次のコマンドを実行して、テストリクエストを送信します。

 kubectl exec -it deploy/sleep -- sh -c 'for i in $(seq 1 100); do curl -s productpage:9080/productpage > /dev/null; done'

エクスポートされたデータの表示

以下の手順は、OpenTelemetry 向けマネージドサービスにデータをエクスポートした結果を示しています。

  1. OpenTelemetry 向けマネージドサービスのコンソールにログインします。

  2. 左側のナビゲーションウィンドウで [アプリケーション一覧] をクリックします。エクスポートされたデータが表示されます。

    [アプリケーション一覧] ページには、各サービスの監視データが表示されます。これには、名前 (例:sleep.defaultdetails.defaultproductpage.defaultreviews.defaultratings.default)、ヘルスステータス本日のリクエスト本日のエラー応答時間、および応答時間 (過去 30 分) のトレンドが含まれます。