Alibaba Cloud Service Mesh (ASM) では、トレーシングデータを OpenTelemetry 向けマネージドサービスまたは自己管理システムにエクスポートできます。このトピックでは、ASM コンソールでこのエクスポートを設定する方法について説明します。
前提条件
-
ACK クラスターが ASM インスタンスに追加されていること。詳細については、「ASM インスタンスへのクラスターの追加」をご参照ください。
-
OpenTelemetry 向けマネージドサービスが Alibaba Cloud アカウントで有効化されていること。課金の詳細については、「課金」をご参照ください。
-
イングレスゲートウェイが ASM インスタンスにデプロイされていること。詳細については、「イングレスゲートウェイの作成」をご参照ください。
OpenTelemetry 向けマネージドサービスへのトレーシングデータのエクスポート
ご利用の ASM インスタンスのバージョンに対応するタブを選択します。インスタンスをアップグレードするには、「ASM インスタンスのアップグレード」をご参照ください。
1.17.2.35 より前のバージョン
-
ASM コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。
-
[メッシュ管理] ページで、対象の ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、 を選択します。
-
Base Information ページで、Settings をクリックします。Settings Update パネルで、リンクトラッキングを有効にする を選択し、Sampling Percentage を設定し、Sampling Method を [OpenTelemetry 向けマネージドサービス] に設定してから、OK をクリックします。
-
左側のナビゲーションウィンドウで、 を選択します。OpenTelemetry 向けマネージドサービスのコンソールにリダイレクトされます。設定が完了したら、OpenTelemetry 向けマネージドサービスのコンソールにログインし、[概要分析] ページでアプリケーションのリクエスト数、応答時間、スパン数などの監視メトリクスを表示できます。
トレーシングの詳細については、「OpenTelemetry 向けマネージドサービスとは」をご参照ください。
この機能を無効にするには、Settings Update パネルで リンクトラッキングを有効にする の選択を解除し、OK をクリックします。
バージョン 1.17.2.35 から 1.18.0.124 未満
-
ASM コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。
-
[メッシュ管理] ページで、対象の ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、 を選択します。
-
Tracing Analysis ページで、Collect ASM Tracing Data to Managed Service for OpenTelemetry をクリックし、Confirm ダイアログボックスで OK をクリックします。
-
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 のデプロイ
-
ご利用の ACK クラスターの kubeconfig 環境で、次のコマンドを実行して `opentelemetry-operator-system` 名前空間を作成します。
kubectl create namespace opentelemetry-operator-system -
次のコマンドを実行して、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 -
次のコマンドを実行して、OpenTelemetry Operator が正常に実行されているか確認します。
kubectl get pod -n opentelemetry-operator-system期待される出力:
NAME READY STATUS RESTARTS AGE opentelemetry-operator-854fb558b5-pvllj 2/2 Running 0 1mSTATUSがRunningであれば、OpenTelemetry Operator が実行されていることを示します。
ステップ 2:OpenTelemetry Collector の作成
-
次の内容で collector.yaml という名前のファイルを作成します。
YAML ファイルで、
${ENDPOINT}を gRPC VPC アクセスポイントに、${TOKEN}を認証トークンに置き換えます。OpenTelemetry 向けマネージドサービスのアクセスポイントと認証トークンを取得するには、「アクセスと認証」をご参照ください。 -
ご利用の ACK クラスターの kubeconfig 環境で、次のコマンドを実行してコレクターをクラスターにデプロイします。
kubectl apply -f collector.yaml -
次のコマンドを実行して、コレクターが正常に起動したか確認します。
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この出力は、コレクターが正常に起動したことを示します。
-
次のコマンドを実行して、サービスが作成されたか確認します。
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 コンソールでのトレーシングの有効化
-
ASM コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。
-
[メッシュ管理] ページで、対象の ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、 を選択します。
-
Observability Settings ページの Tracing Analysis Settings セクションで、Sampling Percentage を 100 に設定し、Submit をクリックします。
-
左側のナビゲーションウィンドウで、 を選択します。[OpenTelemetry サービスアドレス/ドメイン] を default-collector.opentelemetry-operator-system.svc.cluster.local に、OpenTelemetry Service Port を 4317 に設定します。その後、Collect ASM Tracing Data to Custom Managed Service for OpenTelemetry をクリックします。
バージョン 1.22.6.89 以降
-
ASM コンソールにログインします。左側のナビゲーションウィンドウで、 を選択します。
-
[メッシュ管理] ページで、対象の ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、 を選択します。
-
Tracing Analysis ページの Export to Alibaba Cloud Observable Link セクションで、Export Method (例:Zipkin) を選択します。Fill in the configuration セクションで、必要な情報を入力し、Submit をクリックします。
-
[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 コンソール の対象インスタンスの ページで、自己管理システムへのエクスポートを設定します。
パラメーター
|
パラメーター |
説明 |
|
OpenTelemetry Domain Name (FQDN) |
自己管理システムサービスの完全修飾ドメイン名 (FQDN)。例: |
|
OpenTelemetry Service Port |
自己管理システムのサービスポート。例: |
バージョン 1.22.6.89 以降
ASM コンソール のインスタンスの ページで、自己管理のトレーシングシステムを選択して設定します。
トレーシングデータを自己管理システムにエクスポートする場合、そのシステムがメッシュ内のサービスであることを確認してください。システムがサービスメッシュの外部にある場合は、ServiceEntry を作成してメッシュに登録できます。詳細については、「ServiceEntry」をご参照ください。
パラメーター
OpenTelemetry へのエクスポート
|
パラメーター |
説明 |
|
|
Service domain name (full FQDN) |
自己管理システムサービスの FQDN。例: |
|
|
Service Port |
自己管理システムのサービスポート。例: |
|
|
gRPC 経由でのエクスポート |
Timeout |
任意。トレーシングデータのエクスポートリクエストのタイムアウト (秒)。例: |
|
Request Header |
任意。トレーシングデータのエクスポート時に含めるリクエストヘッダー。例: |
|
|
HTTP 経由でのエクスポート |
Request path |
トレーシングデータのエクスポート用のリクエストパス。例: |
|
Timeout |
任意。トレーシングデータのエクスポートリクエストのタイムアウト (秒)。例: |
|
|
Request Header |
任意。トレーシングデータのエクスポート時に含めるリクエストヘッダー。例: |
|
Zipkin へのエクスポート
|
パラメーター |
説明 |
|
Domain name of Zipkin |
自己管理システムサービスの FQDN。例: |
|
Request Port |
自己管理システムのサービスポート。例: |
|
Request Path |
トレーシングデータのエクスポート用のリクエストパス。デフォルト値は |
SkyWalking へのエクスポート
|
パラメーター |
説明 |
|
Skywalking service domain name |
自己管理システムサービスの FQDN。例: |
|
Request Port |
自己管理システムのサービスポート。例: |
データエクスポートの検証
アプリケーションのデプロイ
-
サンプルアプリケーション Bookinfo をデプロイします。
-
次の内容で bookinfo.yaml を作成します。
-
データプレーンクラスターに Bookinfo アプリケーションをデプロイします。
kubectl --kubeconfig=${DATA_PLANE_KUBECONFIG} apply -f bookinfo.yaml
-
-
sleep アプリケーションをデプロイします。
-
次の内容で sleep.yaml という名前のファイルを作成します。
-
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 向けマネージドサービスにデータをエクスポートした結果を示しています。
-
OpenTelemetry 向けマネージドサービスのコンソールにログインします。
-
左側のナビゲーションウィンドウで [アプリケーション一覧] をクリックします。エクスポートされたデータが表示されます。
[アプリケーション一覧] ページには、各サービスの監視データが表示されます。これには、名前 (例:
sleep.default、details.default、productpage.default、reviews.default、ratings.default)、ヘルスステータス、本日のリクエスト、本日のエラー、応答時間、および応答時間 (過去 30 分) のトレンドが含まれます。