トレースAWSX-Ray SDK for Java による SDK の呼び出し - AWS X-Ray

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

トレースAWSX-Ray SDK for Java による SDK の呼び出し

アプリケーションがを呼び出したときAWSX-Ray SDK for Java では、データの保存、キューへの書き込み、または通知の送信を行うサービス、X-Ray SDK for Java によってダウンストリームが追跡されます。サブセグメント。トレースAWSこれらのサービス (たとえば、Amazon S3 バケットまたは Amazon SQS キュー) 内でアクセスするサービスとリソースは、X-Ray コンソールのサービスマップではダウンストリームノードとして表示されます。

X-Ray SDK for Java では、以下を含めると、自動的にすべての AWS SDK クライアントを計測します。aws-sdkaws-sdk-instrumentor サブモジュールのビルドで。Instrumentor サブモジュールを含めない場合は、一部のクライアントを計測して他を除外できます。

個々のクライアントを計測するには、aws-sdk-instrumentorビルドからサブモジュールを追加し、XRayClientとしてTracingHandlerのAWSサービスのクライアントビルダーを使用する SDK クライアント。

たとえば、AmazonDynamoDB を計測するには、トレースハンドラーを AmazonDynamoDBClientBuilder に渡します。

例 MyModel.java-DynamoDB クライアント

import com.amazonaws.xray.AWSXRay; import com.amazonaws.xray.handlers.TracingHandler; ... public class MyModel { private AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard() .withRegion(Regions.fromName(System.getenv("AWS_REGION"))) .withRequestHandlers(new TracingHandler(AWSXRay.getGlobalRecorder())) .build(); ...

すべてのサービスで、X-Ray コンソールで呼び出されている API の名前を確認できます。サービスのサブセットの場合、X-Ray SDK はセグメントに情報を追加して、サービスマップでより細分化します。

たとえば、インストルメント化された DynamoDB クライアントで呼び出しを行うと、SDK はテーブルをターゲットとする呼び出しのセグメントにテーブル名を追加します。コンソールでは、各テーブルはサービスマップ内に個別のノードとして表示され、テーブルをターゲットにしない呼び出し用の汎用 DynamoDB ノードが表示されます。

例 項目を保存するための DynamoDB の呼び出しのサブセグメント

{ "id": "24756640c0d0978a", "start_time": 1.480305974194E9, "end_time": 1.4803059742E9, "name": "DynamoDB", "namespace": "aws", "http": { "response": { "content_length": 60, "status": 200 } }, "aws": { "table_name": "scorekeep-user", "operation": "UpdateItem", "request_id": "UBQNSO5AEM8T4FDA4RQDEB94OVTDRVV4K4HIRGVJF66Q9ASUAAJG", } }

名前付きリソースにアクセスしたとき、次のサービスを呼び出すと、サービスマップに追加のノードが作成されます。特定のリソースをターゲットとしない呼び出しでは、サービスの汎用ノードが作成されます。

  • Amazon DynamoDB— テーブル名

  • Amazon Simple Storage Service— バケットおよびキー名

  • Amazon Simple Queue Service— キュー名

AWS SDK for Java 2.2 以降でダウンストリーム呼び出しを AWS のサービスに実装するには、ビルド設定から aws-xray-recorder-sdk-aws-sdk-v2-instrumentor モジュールを除外します。その代わりに、aws-xray-recorder-sdk-aws-sdk-v2 module を含め、TracingInterceptor で設定して個々のクライアントを実装します。

例 AWS SDK for Java 2.2 以降 - トレースインターセプター

import com.amazonaws.xray.interceptors.TracingInterceptor; import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration import software.amazon.awssdk.services.dynamodb.DynamoDbClient; //... public class MyModel { private DynamoDbClient client = DynamoDbClient.builder() .region(Region.US_WEST_2) .overrideConfiguration(ClientOverrideConfiguration.builder() .addExecutionInterceptor(new TracingInterceptor()) .build() ) .build(); //...