翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
X-Ray AWS SDK for .NET を使用した SDK 呼び出しのトレース
アプリケーションが を呼び出し AWS のサービス てデータの保存、キューへの書き込み、または通知の送信を行う場合、X-Ray SDK for .NET はサブセグメント の呼び出しダウンストリームを追跡します。これらのサービス (Amazon S3 バケットや Amazon SQS キューなど) 内でアクセスするトレースされた AWS のサービス および リソースは、X-Ray コンソールのトレースマップにダウンストリームノードとして表示されます。
クライアントを作成するRegisterXRayForAllServices
前に を呼び出すことで、すべての AWS SDK for .NET クライアントを計測できます。
例 SampleController.cs - DynamoDB クライアント計測
using Amazon;
using Amazon.Util;
using Amazon.DynamoDBv2;
using Amazon.DynamoDBv2.DocumentModel;
using Amazon.XRay.Recorder.Core;
using Amazon.XRay.Recorder.Handlers.AwsSdk;
namespace SampleEBWebApplication.Controllers
{
public class SampleController : ApiController
{
AWSSDKHandler.RegisterXRayForAllServices();
private static readonly Lazy<AmazonDynamoDBClient> LazyDdbClient = new Lazy<AmazonDynamoDBClient>(() =>
{
var client = new AmazonDynamoDBClient(EC2InstanceMetadata.Region ?? RegionEndpoint.USEast1);
return client;
});
一部のサービスのクライアントのみを計測するには、RegisterXRayForAllServices
ではなく RegisterXRay
を呼び出します。強調表示されたテキストを、サービスのクライアントインターフェイスの名前で置き換えます。
AWSSDKHandler.RegisterXRay<IAmazonDynamoDB
>()
すべてのサービスで、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 – キュー名