AWS X-Ray SDK for .NET - AWS X-Ray

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

AWS X-Ray SDK for .NET

X-Ray SDK for .NET は、で C#.NET Core ウェブアプリケーション、.NET Core ウェブアプリケーション、.NET Core 関数を計測するためのライブラリです。AWS Lambda。トレースデータを生成し、に送信するためのクラスとメソッドを提供します。X-Ray デーモン。これには、アプリケーションによって処理された受信リクエスト、およびアプリケーションがダウンストリームに対して行う呼び出しに関する情報が含まれています。AWSサービス、HTTP ウェブ API、および SQL データベース。

注記

X-Ray SDK for .NET は、オープンソースプロジェクトです。プロジェクトに従って、GitHub: github.com/aws/aws-xray-sdk-dotnet で問題とプルリクエストを送信できます。

ウェブアプリケーションの場合は、最初にメッセージハンドラーをウェブ設定に追加して、受信リクエストをトレースします。メッセージハンドラーでは、トレース対象リクエストごとに「セグメント」を作成し、レスポンスが送信されるとセグメントを完了します。セグメントが開いている間、SDK クライアントのメソッドを使用してセグメントに情報を追加し、サブセグメントを作成してダウンストリーム呼び出しをトレースできます。また、SDK では、セグメントが開いている間にアプリケーションがスローする例外を自動的に記録します。

インストルメント化されたアプリケーションまたはサービスによって呼び出される Lambda 関数の場合、Lambda はトレースヘッダーサンプリングされたリクエストを自動的にトレースします。その他の機能については、Lambda を設定受信リクエストのサンプリングとトレースを行います。いずれの場合も、Lambda はセグメントを作成し、X-Ray SDK に提供します。

注記

Lambda では、X-Ray SDK はオプションです。関数でこれを使用しない場合、サービスマップには Lambda サービスのノードと Lambda 関数ごとに 1 つのノードが含まれます。SDK を追加することで、関数コードをインストルメントして、Lambda で記録された関数セグメントにサブセグメントを追加できます。詳細については、AWS Lambda と AWS X-Ray を参照してください。

次に、X-Ray SDK for .NET を使用してを計測しますAWS SDK for .NETクライアント。ダウンストリームに電話をかけるときはいつでもAWSSDK は、計測対象クライアントを持つサービスまたはリソースで、SDK によってサブセグメントの呼び出しに関する情報が記録されます。AWSサービス内でアクセスする サービスおよびリソースは、サービスマップにダウンストリームノードとして表示され、個々の接続でエラーとスロットリングの問題を識別するのに役立ちます。

X-Ray SDK for .NET では、に対するダウンストリーム呼び出しの計測もできます。HTTP ウェブ APIそしてSQL データベースSystem.Net.HttpWebRequestGetResponseTraced 拡張メソッドは送信 HTTP 呼び出しをトレースします。X-Ray SDK は、.NET のバージョンで使用できます。SqlCommandSQL クエリをインストルメントします。

SDK の使用を開始したら、次の方法で動作をカスタマイズします。レコーダーとメッセージハンドラの設定。プラグインを追加して、アプリケーションを実行しているコンピューティングリソースに関するデータを記録したり、サンプリングルールを定義することでサンプリングの動作のカスタマイズしたり、アプリケーションログに SDK からの情報をより多くあるいは少なく表示するようにログレベルを設定できます。

アプリケーションが注釈やメタデータで行うリクエストや作業に関する追加情報を記録します。注釈は、フィルタ式で使用するためにインデックス化されたシンプルなキーと値のペアで、特定のデータが含まれているトレースを検索できます。メタデータのエントリは制約が緩やかで、JSON にシリアル化できるオブジェクトと配列全体を記録できます。

注釈とメタデータ

注釈およびメタデータは、X-Ray SDK を使用してセグメントに追加する任意のテキストです。注釈は、フィルタ式用にインデックス付けされます。メタデータはインデックス化されませんが、X-Ray コンソールまたは API を使用して raw セグメントで表示できます。X-Ray への読み取りアクセスを許可した人は誰でも、このデータを表示できます。

コードに多数の計測されたクライアントがある場合、単一のリクエストセグメントには計測されたクライアントで行われた呼び出しごとに 1 個の多数のサブセグメントを含めることができます。カスタムサブセグメントで、クライアント呼び出しをラップすることで、サブセグメントを整理してグループできます。関数全体またはコードの任意のセクションのサブセグメントを作成し、親セグメントにすべてのレコードを記述する代わりにサブセグメントにメタデータと注釈を記録できます。

SDK のクラスとメソッドに関するリファレンスドキュメントについては、以下を参照してください。

同じパッケージが .NET および .NET Core の両方をサポートしますが、使用されるクラスは異なります。この章の例は、そのクラスが .NET Core に固有でない限り、.NET API リファレンスにリンクされています。

要件

X-Ray SDK for .NET Framework 4.5 以降が必要です。AWS SDK for .NET。

.NET Core アプリケーションと関数の場合、SDK では .NET Core 2.0 以降が必要になります。

アプリケーションへの .NET 用 X-Ray SDK の追加

NuGet を使用して、アプリケーションに .NET 用 X-Ray SDK を追加します。

NuGet パッケージマネージャーで NuGet パッケージマネージャーで X-Ray SDK for .NET をインストールするには

  1. [ツール]、[NuGet パッケージマネージャー]、[Manage NuGet Packages for Solution (ソリューションに対する NuGet パッケージの管理)] を選択します。

  2. [SearchAWSXrayRecorder

  3. パッケージを選択し、[Install] を選択します。

依存関係管理

X-Ray SDK for .NET はNuGet。パッケージマネージャーを使用して SDK をインストールします。

Install-Package AWSXRayRecorder -Version 2.10.1

-AWSXRayRecorder v2.10.1NuGet パッケージには次の依存関係があります。

NET フレームワーク 4.5

AWSXRayRecorder (2.10.1)
|
|-- AWSXRayRecorder.Core (>= 2.10.1)
|   |-- AWSSDK.Core (>= 3.3.25.1)
|      
|-- AWSXRayRecorder.Handlers.AspNet (>= 2.7.3)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|
|-- AWSXRayRecorder.Handlers.AwsSdk (>= 2.8.3)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|
|-- AWSXRayRecorder.Handlers.EntityFramework (>= 1.1.1)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|   |-- EntityFramework (>= 6.2.0)
|
|-- AWSXRayRecorder.Handlers.SqlServer (>= 2.7.3)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|
|-- AWSXRayRecorder.Handlers.System.Net (>= 2.7.3)
    |-- AWSXRayRecorder.Core (>= 2.10.1)      
      

NET Framework 2.0

AWSXRayRecorder (2.10.1)
|
|-- AWSXRayRecorder.Core (>= 2.10.1)
|   |-- AWSSDK.Core (>= 3.3.25.1)
|   |-- Microsoft.AspNetCore.Http (>= 2.0.0)
|   |-- Microsoft.Extensions.Configuration (>= 2.0.0)
|   |-- System.Net.Http (>= 4.3.4)
|      
|-- AWSXRayRecorder.Handlers.AspNetCore (>= 2.7.3)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|   |-- Microsoft.AspNetCore.Http.Extensions (>= 2.0.0)
|   |-- Microsoft.AspNetCore.Mvc.Abstractions (>= 2.0.0)
|
|-- AWSXRayRecorder.Handlers.AwsSdk (>= 2.8.3)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|
|-- AWSXRayRecorder.Handlers.EntityFramework (>= 1.1.1)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|   |-- Microsoft.EntityFrameworkCore.Relational (>= 3.1.0)
|
|-- AWSXRayRecorder.Handlers.SqlServer (>= 2.7.3)
|   |-- AWSXRayRecorder.Core (>= 2.10.1)
|   |-- System.Data.SqlClient (>= 4.4.0)
|
|-- AWSXRayRecorder.Handlers.System.Net (>= 2.7.3)
    |-- AWSXRayRecorder.Core (>= 2.10.1)
      

依存関係管理の詳細については、マイクロソフトのドキュメントを参照してください。NuGet 依存関係そしてNuGet 依存関係の解決