大手製造業がAmazon EKS上のマイクロサービスに移行しています。既存のオンプレミス環境ではOpenTelemetry SDKでアプリケーションを計装しており、OTLP(OpenTelemetry Protocol:OSSの標準テレメトリ転送プロトコル)形式でトレースを自社ホスティングのJaeger(OSSの分散トレーシングツール)に送信していました。AWS移行後の要件は次の2つです。 ①既存のOpenTelemetry計装コードを変更しない、 ②AWS X-RayとオンプレミスのJaeger双方に同時にトレースを送信する。アプリケーションコードの変更が最も少ない解決策はどれですか?
AWS Distro for OpenTelemetry(ADOT)CollectorをEKSのDaemonSetまたはサイドカーとしてデプロイし、OTLPレシーバーでトレースを受信してAWS X-RayエクスポーターとJaegerエクスポーターの両方に同時転送するよう設定する。 ADOT(AWS Distro for OpenTelemetry)はAWSがメンテナンスするOpenTelemetry Collectorのディストリビューションです。OTLPレシーバーを標準搭載しており、既存のOpenTelemetry計装アプリケーションからのトレースをそのまま受信できます。さらに、AWS X-Rayエクスポーター(X-Ray形式に変換)とJaegerエクスポーターを同時設定することで、アプリケーションコードを一切変更せずに両バックエンドへ送信できます。 選択肢A(全マイクロサービスのOpenTelemetry SDKコードをAWS X-Ray SDKに書き換え)は全マイクロサービスの計装コードの修正が必要で①の要件に反します。 選択肢C(CloudWatch Application Insights)は自動検出型の監視サービスであり、外部から受け取ったトレースを複数バックエンドに転送するコレクターではありません。 選択肢D(AWS X-RayデーモンをOTLPモードで動作)は誤りで、X-RayデーモンはOTLPプロトコルをネイティブサポートしておらず、OTLPの受信・変換はADOT Collectorの役割です。