Container Service for Kubernetes (ACK) では、NGINX Ingress コントローラーのトレーシングを有効にし、トレースデータをManaged Service for OpenTelemetry へ送信できます。 Managed Service for OpenTelemetry は、このトレースデータをリアルタイムで集約、処理、保存します。 このサービスは、NGINX Ingress コントローラーのトラブルシューティングや診断のために、詳細なトレースやリアルタイムのトポロジーマップといったモニタリングデータを生成します。
Ingress-NGINX オープンソースプロジェクトは、2026年3月をもってメンテナンスが終了します。 これに伴い、Container Service for Kubernetes も NGINX Ingress controller のメンテナンスを終了します。 続行する前に、リスクをご理解ください。 詳細については、「NGINX Ingress controller コンポーネントのメンテナンス終了に関する製品発表」をご参照ください。
前提条件
-
NGINX Ingress コントローラーがインストールされていること。詳細については、「NGINX Ingress コントローラーの管理」をご参照ください。
バージョン互換性
NGINX Ingress コントローラーでは、バージョンによってトレーシングの対応状況が異なります。そのため、お使いのバージョンに適した設定方法を選択する必要があります。
|
NGINX Ingress コントローラーのバージョン |
OpenTelemetry |
OpenTracing |
|
≥ v1.10.2-aliyun.1 |
対応 |
非対応 |
|
v1.9.3-aliyun.1 |
対応 |
対応 |
|
v1.8.2-aliyun.1 |
対応 |
対応 |
|
< v1.8.2-aliyun.1 |
非対応 |
対応 |
操作手順
お使いの NGINX Ingress コントローラーのバージョンに対応する手順を選択します。
OpenTelemetry
ステップ1:エンドポイントの取得 Managed Service for OpenTelemetry
新しいコンソール
-
Managed Service for OpenTelemetry コンソールにログインします。左側のナビゲーションペインで、アクセスセンターをクリックします。
-
オープンソースフレームワーク セクションで、[OpenTelemetry] カードをクリックします。
-
表示される[OpenTelemetry] パネルで、データ報告先のリージョンを選択します。
-
gRPC レポート方式のエンドポイントを記録します。
説明NGINX Ingress コントローラーが、お客様の Managed Service for OpenTelemetry 統合と同じ Alibaba Cloud リージョンにデプロイされている場合は、VPC エンドポイントを使用します。それ以外の場合は、パブリックエンドポイントを使用します。
以前のコンソール
-
左側のナビゲーションペインで、クラスター設定 をクリックします。表示されたページで、AccessPointFeature タブをクリックします。
-
ページの上部で、接続先のリージョンを選択します。
-
クラスター情報 セクションで、[トークンの表示] スイッチをオンにします。[クライアント] セクションで [OpenTelemetry] をクリックし、gRPC レポート方式のエンドポイントを記録します。
説明NGINX Ingress コントローラーが、お客様の Managed Service for OpenTelemetry 連携と同じ Alibaba Cloud リージョンにデプロイされている場合は、VPC エンドポイントを使用します。それ以外の場合は、パブリックエンドポイントを使用します。
ステップ 2: NGINX Ingress コントローラーの設定Managed Service for OpenTelemetry
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
-
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、 を選択します。
-
Deployments ページで、[名前空間] を kube-system に設定します。
nginx-ingress-controllerを検索し、[編集] をクリックします。 -
編集 ページの上部で nginx-ingress-controller コンテナを選択し、環境変数 タブで Add をクリックして次の環境変数を設定します。
タイプ
変数キー
値/値の取得元
説明
カスタム
OTEL_EXPORTER_OTLP_HEADERS
authentication=<authentication token>手順1:エンドポイントの取得 (Managed Service for OpenTelemetry) で取得した認証トークンを使用します。例:
authentication=bfXXXXXXXe@7bXXXXXXX1_bXXXXXe@XXXXXXX1
変数を追加したら、更新 ページの右側パネルで 編集 をクリックします。表示されたダイアログボックスで、OK をクリックします。
-
左側のナビゲーションペインで、 を選択します。
-
構成 ページで、名前空間を 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:エンドポイントの取得 (Managed Service for OpenTelemetry) で取得した 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 アプリケーション名をクリックします。
-
-
アプリケーション概要 タブで、リクエスト数やエラー数などのメトリクスを確認できます。

-
呼び出しチェーン分析 タブで、トレース一覧や平均所要時間などの情報を確認できます。

-
呼び出しチェーン分析 タブで、トレース 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] をクリックし、エンドポイント情報を記録します。
説明NGINX Ingress コントローラーが、お使いの Managed Service for OpenTelemetry 統合と同じ Alibaba Cloud リージョンにデプロイされている場合は VPC エンドポイントを使用し、それ以外の場合はパブリックエンドポイントを使用します。
ステップ 2: NGINX Ingress controller の設定Managed Service for OpenTelemetry
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
-
構成 ページで、名前空間を kube-system に設定します。
nginx-configurationを検索し、nginx-configurationConfigMap の 編集 列の 操作 をクリックします。 -
編集 パネルで、追加 をクリックし、次の設定を追加して [OK] をクリックします。
パラメーター
説明
値
例
enable-opentracing
トレーシングを有効にするかどうかを設定します。
-
true: トレーシングを有効にします。
-
false: トレーシングを無効にします。
true
zipkin-service-name
サービス名。
カスタム。
nginx-ingress
zipkin-collector-host
報告エンドポイントのドメイン名。
手順1:エンドポイントの取得 (Managed Service for OpenTelemetry) で取得したエンドポイントを変更します。
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 アプリケーション名をクリックします。
-
アプリケーション詳細ページの左側のナビゲーションペインで、インターフェースの呼び出しをクリックし、右側の領域でトレース情報を確認します。
-
概要 タブには、トレース トポロジーが表示されます。

-
[トレース] タブをクリックすると、アプリケーションの実行時間が最も長いトレースを最大 100 件表示できます。 トレースデータの詳細については、「インターフェイス呼び出し」をご参照ください。

-
[トレース] タブで、Trace ID をクリックすると、トレース詳細が表示されます。

-
トレース伝播プロトコルの変更 (オプション)
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
伝播フォーマットです。詳細については、「Specify the propagation header format for 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 との統合の詳細については、「準備」をご参照ください。