Container Service for Kubernetes (ACK) では、NGINX Ingress controller のトレースを有効にして、トレースデータを Managed Service for OpenTelemetry に送信できます。Managed Service for OpenTelemetry は、このトレースデータをリアルタイムで集約、処理、保存します。このサービスは、NGINX Ingress controller の問題に対するトラブルシューティングと診断のために、詳細なトレースやリアルタイムトポロジーマップなどのモニタリングデータを生成します。
Ingress-NGINX オープンソースプロジェクトは、2026年3月をもってメンテナンスが終了します。これに伴い、Container Service for Kubernetes も NGINX Ingress コントローラーのメンテナンスを終了します。続行する前に、リスクをご理解ください。詳細については、「NGINX Ingress コントローラー コンポーネントのメンテナンス終了に関する製品に関するお知らせ」をご参照ください。
前提条件
-
NGINX Ingress コントローラーがインストールされていること。 詳細については、「NGINX Ingress コントローラーの管理」をご参照ください。
バージョンの互換性
NGINX Ingress controller コンポーネントはバージョンによってトレーシングのサポート状況が異なるため、お使いのバージョンに適した設定方法を選択する必要があります。
|
NGINX Ingress controller バージョン |
OpenTelemetry |
OpenTracing |
|
≥ v1.10.2-aliyun.1 |
サポート |
サポート対象外 |
|
v1.9.3-aliyun.1 |
サポート |
サポート |
|
v1.8.2-aliyun.1 |
サポート |
サポート |
|
< v1.8.2-aliyun.1 |
サポート対象外 |
サポート |
操作手順
お使いの NGINX Ingress controller のバージョンに対応する手順を選択してください。
OpenTelemetry
手順1:エンドポイントの取得 Managed Service for OpenTelemetry
新しいコンソール
-
Managed Service for OpenTelemetry コンソールにログインします。 左側メニューで、アクセスセンター をクリックします。
-
オープンソースフレームワーク セクションで、[OpenTelemetry] カードをクリックします。
-
表示される [OpenTelemetry] パネルで、データをレポートするリージョンを選択します。
-
gRPC レポート方式のエンドポイントを記録します。 [接続方式] を [Alibaba Cloud 内部ネットワーク] に設定し、[レポート方式] を [gRPC] に設定します。 [gRPC 経由でのデータレポート] 領域で、Alibaba Cloud VPC ネットワークエンドポイント (例:
http://tracing-analysis-dc-hz-internal.aliyuncs.com:8090) と [認証トークン] を取得します。 Golang 言語を使用してデータをレポートする場合は、エンドポイントからhttp://を削除します。説明NGINX Ingress コントローラーが Managed Service for OpenTelemetry 統合と同じ Alibaba Cloud リージョンにデプロイされている場合は、VPC エンドポイントを使用します。それ以外の場合は、パブリックエンドポイントを使用します。
以前のコンソール
-
左側メニューで、クラスター設定 をクリックします。 表示されたページで、AccessPointFeature タブをクリックします。
-
ページの上部で、接続するリージョンを選択します。
-
クラスター情報 セクションで、[トークンの表示] スイッチをオンにします。 [クライアント] セクションで [OpenTelemetry] をクリックし、gRPC レポート方式のエンドポイントを記録します。
gRPC レポート方式の場合、Alibaba Cloud VPC ネットワークエンドポイントは
http://tracing-analysis-dc-hz-internal.aliyuncs.com:8090です。 認証トークンは、エンドポイント情報に表示されるトークンの値です。説明NGINX Ingress コントローラーが、お客様の Managed Service for OpenTelemetry 統合と同じ Alibaba Cloud リージョンにデプロイされている場合は、VPC エンドポイントを使用します。それ以外の場合は、パブリックエンドポイントを使用します。
手順2:NGINX Ingress controller の設定 Managed Service for OpenTelemetry
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
-
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、 を選択します。
-
[Deployments] ページで、[Namespace] を kube-system に設定します。
nginx-ingress-controllerを検索し、[編集] をクリックします。 -
編集 ページの上部で、[nginx-ingress-controller] コンテナを選択します。 環境変数 タブで、Add をクリックして次の環境変数を設定します。
タイプ
変数キー
値/値のソース
説明
カスタム
OTEL_EXPORTER_OTLP_HEADERS
authentication=<authentication token>「手順1:エンドポイントの取得」で取得した認証トークンを使用します。 例:
authentication=bfXXXXXXXe@7bXXXXXXX1_bXXXXXe@XXXXXXX1変数を追加した後、編集 ページの右側のパネルで 更新 をクリックします。 表示されるダイアログボックスで、OK をクリックします。
-
左側メニューで、 を選択します。
-
構成 ページで、[Namespace] を kube-system に設定します。
nginx-configurationを検索し、nginx-configuration ConfigMap の 操作 列で 編集 をクリックします。 -
編集 パネルで 追加 をクリックし、次の設定を追加してから OK をクリックします。
パラメーター
説明
値
例
enable-opentelemetry
OpenTelemetry トレーシングを有効にします。
-
true:トレーシングを有効にします。
-
false:トレーシングを無効にします。
truemain-snippet
-
env OTEL_EXPORTER_OTLP_HEADERS;env OTEL_EXPORTER_OTLP_HEADERS;otel-service-name
サービス名。
カスタム。
nginx-ingress
otlp-collector-host
gRPC レポートエンドポイントのドメイン名。
「手順1:エンドポイントの取得」で取得した VPC エンドポイントを使用します。 http:// プレフィックスとポート番号を削除します。 例:
tracing-analysis-XX-XX-XXXXX.aliyuncs.comtracing-analysis-XX-XX-XXXXX.aliyuncs.comotlp-collector-port
gRPC レポートエンドポイントのポート。
実際の値を入力します。
8090opentelemetry-trust-incoming-span
他のサービスからの受信トレースを信頼するかどうかを指定します。
-
true:信頼を有効にします。
-
false:信頼を無効にします。
trueopentelemetry-operation-name
トレーススパンの形式。
HTTP $request_method $service_name $uriHTTP $request_method $service_name $uriotel-sampler
サンプリング戦略。
パラメーターの詳細については、「opentelemetry」をご参照ください。
TraceIdRatioBased
otel-sampler-ratio
サンプリングレート。
値は 0 から 1 の間で、小数点以下 2 桁まで指定できます。 値 0 はリクエストがサンプリングされないこと、1 はすべてのリクエストがサンプリングされることを意味します。
パラメーターの詳細については、「opentelemetry」をご参照ください。
0.1
otel-sampler-parent-based
アップストリームサービスからサンプリング決定を継承するかどうかを指定します。
-
false (デフォルト):アップストリームのサンプリング決定を継承しません。 サンプリングは、otel-sampler および otel-sampler-ratio パラメーターに基づいています。
-
true:アップストリームのサンプリング決定を継承します。 otel-sampler および otel-sampler-ratio パラメーターは無視されます。
パラメーターの詳細については、「opentelemetry」をご参照ください。
false
-
手順3:トレースデータの表示 Managed Service for OpenTelemetry
-
左側メニューで、アプリケーションリスト をクリックします。
-
アプリケーションリスト ページの上部でリージョンを選択し、[nginx-ingress] アプリケーション名をクリックします。
-
-
アプリケーション概要 タブで、リクエスト数やエラー数などのメトリクスを表示します。

-
呼び出しチェーン分析 タブでは、呼び出し数、エラー数、平均期間などのチャートや、トレースリストを表示できます。 リストには、TraceId、インターフェイス名、アプリケーション名、期間、ステータス、開始時刻、ホストアドレスなどのフィールドが含まれます。
-
呼び出しチェーン分析 タブで Trace ID をクリックすると、トレースの詳細が表示されます。
-
OpenTracing
手順1:エンドポイントの取得 Managed Service for OpenTelemetry
新しいコンソール
-
Managed Service for OpenTelemetry コンソールにログインします。 左側メニューで、アクセスセンター をクリックします。
-
オープンソースフレームワーク セクションで、[Zipkin] カードをクリックします。
説明取得するエンドポイントは、使用するクライアントによって異なります。 このトピックでは、Zipkin を例として使用します。
-
表示される [Zipkin] パネルで、データをレポートするリージョンを選択します。
-
エンドポイント情報を記録します。
説明NGINX Ingress コントローラーが、お客様の Managed Service for OpenTelemetry 統合と同じ Alibaba Cloud リージョンにデプロイされている場合は、VPC エンドポイントを使用します。それ以外の場合は、パブリックエンドポイントを使用します。
以前のコンソール
-
左側メニューで、クラスター設定 をクリックします。 表示されたページで、AccessPointFeature タブをクリックします。
-
ページの上部で、接続するリージョンを選択します。
-
クラスター情報 セクションで、[トークンの表示] スイッチをオンにします。 [クライアント] セクションで [Zipkin] をクリックし、エンドポイント情報を記録します。
[Zipkin] タブの表に、中国 (杭州) リージョンのエンドポイント情報が表示されます。 この表には v2 エンドポイントと v1 エンドポイントが含まれており、各バージョンにはパブリックエンドポイント URL と Alibaba Cloud VPC ネットワークエンドポイント URL があります。 パスが
/api/v1/spansで終わる v1 バージョンの [Alibaba Cloud VPC ネットワークエンドポイント] アドレスを記録します。 ほとんどの場合、v2 インターフェイスを選択します。 Istio や Molten などの特定のシナリオでは、v1 インターフェイスを選択します。 Sleuth コンポーネントを使用する場合、baseUrl には/api/v2/spansは含まれません。説明NGINX Ingress コントローラーが Managed Service for OpenTelemetry と同じ Alibaba Cloud リージョンにデプロイされている場合は、VPC エンドポイントを使用します。それ以外の場合は、パブリックエンドポイントを使用します。
手順2:NGINX Ingress controller の設定 Managed Service for OpenTelemetry
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
-
構成 ページで、[Namespace] を kube-system に設定します。
nginx-configurationを検索し、nginx-configurationConfigMap の 操作 列で 編集 をクリックします。 -
編集 パネルで 追加 をクリックし、次の設定を追加してから [OK] をクリックします。
パラメーター
説明
値
例
enable-opentracing
トレーシングを有効にするかどうかを指定します。
-
true:トレーシングを有効にします。
-
false:トレーシングを無効にします。
true
zipkin-service-name
サービス名。
カスタム。
nginx-ingress
zipkin-collector-host
レポートエンドポイントのドメイン名。
「手順1:エンドポイントの取得」で取得したエンドポイントを変更します。
http://プレフィックスを削除し、末尾に疑問符?を追加します。 例:-
元のエンドポイント:
http://tracing-analysis-dc-hz-internal.aliyuncs.com/adapt_******_******/api/v1/spans -
変更後の値:
tracing-analysis-dc-hz-internal.aliyuncs.com/adapt_******_******/api/v1/spans?
tracing-analysis-dc-hz-internal.aliyuncs.com/adapt_******_******/api/v1/spans?opentracing-trust-incoming-span
他のサービスやシステムからのトレースを信頼するかどうかを指定します。
-
true:信頼を有効にします。
-
false:信頼を無効にします。
true
zipkin-sample-rate
サンプリングレート。
値は 0 から 1 の間で、小数点以下 2 桁まで指定できます。 値 0 はリクエストがサンプリングされないこと、1 はすべてのリクエストがサンプリングされることを意味します。
0.1
-
手順3:トレースデータの表示 Managed Service for OpenTelemetry
-
左側メニューで、アプリケーションリスト をクリックします。
-
アプリケーションリスト ページの上部でリージョンを選択し、[nginx-ingress] アプリケーション名をクリックします。
-
アプリケーション詳細ページの左側メニューで、インターフェースの呼び出し をクリックします。 右側の領域で、トレース情報を表示します。
-
概要 タブにトレースのトポロジーが表示されます。
-
[トレース] タブをクリックして、アプリケーションで最も時間がかかったトレースを最大 100 件表示します。 トレースデータの詳細については、「インターフェイス呼び出し」をご参照ください。 トレースリストには、[生成時刻]、[スパン名]、[ホスト/IP]、[期間]、[ステータス]、[TraceId]、[アクション] などの列が表示されます。 上部のフィルター条件を使用して、[期間が次より大きい] (ミリ秒単位) でトレースを絞り込んだり、[異常] を選択したりできます。 [アクション] 列には、[ログの表示] リンクがあります。
-
[トレース] タブで Trace ID をクリックして、トレースの詳細を表示します。 トレース詳細ページには、リクエストの完全な呼び出しチェーンが表示されます。これには、階層的なネスト関係が含まれます。
-
HTTP GET opentelemetry-demo-frontendproxy /api/currency (nginx-otlp, cpp): 15.12 ms
-
ingress (frontendproxy): 13.82 ms
-
router frontend egress (frontendproxy): 13.64 ms
-
GET (frontend, nodejs): 8.84 ms
-
grpc.oteldemo.CurrencyService/GetSupportedCurrencies (frontend, nodejs): 6.83 ms
-
CurrencyService/GetSupportedCurrencies (currencyservice, cpp): 1.35 ms
-
-
トレース伝播プロトコルの変更 (オプション)
NGINX Ingress コントローラーのトレーシングに OpenTelemetry を使用する場合、OpenTelemetry はデフォルトで W3C Trace Context フォーマットでトレースコンテキストを認識し、ダウンストリームに伝播します。フロントエンドアプリケーションとバックエンドアプリケーションが Jaeger や Zipkin などの他のプロトコルを使用している場合は、フロントエンドアプリケーション、NGINX Ingress コントローラー、バックエンドアプリケーションのトレースをリンクするために、OpenTelemetry のトレース伝播プロトコルを変更する必要があります。このトピックでは、NGINX Ingress コントローラーで使用する OpenTelemetry のトレース伝播プロトコルを変更する方法について説明します。
-
ステップ 2 のサブステップ 4 の設定に加えて、
OTEL_PROPAGATORS環境変数を追加します。変更を保存し、nginx-ingress-controllerを再デプロイします。変数キー
値
説明
OTEL_PROPAGATORS
tracecontext,baggage,b3,jaeger
伝播フォーマット。詳細については、「OpenTelemetry の伝播ヘッダーフォーマットの指定」をご参照ください。
-
ステップ 2 のサブステップ 7 の設定に加えて、
main-snippetの設定を変更して、OTEL_PROPAGATORS環境変数を適用します。パラメーター
値
説明
main-snippet
env OTEL_EXPORTER_OTLP_HEADERS; env OTEL_PROPAGATORS;
環境変数を読み込みます。
関連ドキュメント
-
Managed Service for OpenTelemetry の詳細については、「Managed Service for OpenTelemetry とは」をご参照ください。
-
ACK の詳細については、「Container Service for Kubernetes (ACK) とは」をご参照ください。
-
nginx-configurationConfigMap の必須フィールドは、トレーシングソリューション (Zipkin、Jaeger、SkyWalking など) によって異なります。これらのソリューションと Managed Service for OpenTelemetry との統合に関する詳細については、「準備」をご参照ください。