のバージョン 4 (V4) AWS SDK for .NET がリリースされました。
SDK の新しいバージョンの使用を開始するには、「AWS SDK for .NET (V4) デベロッパーガイド」、特に「バージョン 4 への移行」に関するトピックを参照してください。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
オブザーバビリティ
オブザーバビリティとは、システムが出力するデータから現在の状態をどの程度推論できるかを示します。出力されるデータは、一般的にテレメトリと呼ばれます。
AWS SDK for .NETは、2 つの一般的なテレメトリ信号、メトリクスとトレース、およびログ記録を提供できます。TelemetryProvider をワイヤアップして、テレメトリデータをオブザーバビリティバックエンド (AWS X-Ray や Amazon CloudWatch など) に送信し、それに対応できます。
デフォルトでは、テレメトリ信号は SDK で無効になっています。このトピックでは、テレメトリ出力を有効にして設定する方法について説明します。
その他のリソース
オブザーバビリティの有効化と使用の詳細については、以下のリソースを参照してください。
-
ブログ記事「Enhancing Observability in the AWS SDK for .NET with OpenTelemetry
」。 -
ブログ記事「Announcing the general availability of AWS .NET OpenTelemetry libraries
」。 -
AWS Tools for PowerShellでのオブザーバビリティの例については、「Tools for PowerShell ユーザーガイド」の「オブザーバビリティ」を参照してください。
TelemetryProvider の設定
次の例に示すように、すべてのサービスクライアントまたは個々のクライアントについて、アプリケーションで TelemetryProvider をグローバルに設定できます。テレメトリプロバイダーセクションには、SDK で提供される実装に関する情報など、テレメトリの実装に関する情報が含まれています。
デフォルトのグローバルテレメトリプロバイダーを設定する
デフォルトでは、すべてのサービスクライアントはグローバルに利用可能なテレメトリプロバイダーの使用を試みます。これにより、プロバイダーを 1 回設定でき、すべてのクライアントがそれを使用します。これは、サービスクライアントを作成する前に 1 回だけ行う必要があります。
次のコードスニペットは、グローバルテレメトリプロバイダーを設定する方法を示しています。次に、Amazon S3 サービスクライアントを作成し、オペレーションの実行を試みますが、失敗します。このコードは、トレースとメトリクスの両方をアプリケーションに追加します。このコードは、OpenTelemetry.Exporter.Console および OpenTelemetry.Instrumentation.AWS の NuGet パッケージを使用します。
注記
認証に AWS IAM Identity Center を使用している場合は、必ず AWSSDK.SSO と AWSSDK.SSOOIDC も追加してください。
using Amazon.S3; using OpenTelemetry; using OpenTelemetry.Metrics; using OpenTelemetry.Resources; using OpenTelemetry.Trace; Sdk.CreateTracerProviderBuilder() .ConfigureResource(e => e.AddService("DemoOtel")) .AddAWSInstrumentation() .AddConsoleExporter() .Build(); Sdk.CreateMeterProviderBuilder() .ConfigureResource(e => e.AddService("DemoOtel")) .AddAWSInstrumentation() .AddConsoleExporter() .Build(); var s3Client = new AmazonS3Client(); try { var listBucketsResponse = await s3Client.ListBucketsAsync(); // Attempt to delete a bucket that doesn't exist. var deleteBucketResponse = await s3Client.DeleteBucketAsync("amzn-s3-demo-bucket"); } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.Read();
特定のサービスクライアントのテレメトリプロバイダーを設定する
個々のサービスクライアントは、特定のテレメトリプロバイダー (グローバルプロバイダーを除く) で設定できます。これを行うには、サービスクライアントコンストラクタの Config オブジェクトの TelemetryProvider クラスを使用します。例えば、AmazonS3Config を参照して、TelemetryProvider プロパティを探します。カスタムテレメトリの実装については、「テレメトリプロバイダー」を参照してください。