可观测性 - 适用于 .NET 的 Amazon SDK(V3)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

适用于 .NET 的 Amazon SDK 版本 4(V4)已经发布!

要开始使用新版本的 SDK,请参阅 适用于 .NET 的 Amazon SDK(V4)开发人员指南,尤其是关于迁移到版本 4 的主题。

可观测性

可观测性是指可以根据系统发出的数据推断出其当前状态的程度。发出的数据通常称为遥测。

适用于 .NET 的 Amazon SDK 可以提供两种常见的遥测信号、指标和追踪记录以及日志记录。您可以连接 TelemetryProvider,以将遥测数据发送到可观测性后端(例如 Amazon X-RayAmazon CloudWatch),然后对其进行处理。

默认情况下,SDK 中的遥测信号处于禁用状态。本主题介绍如何启用和配置遥测输出。

其他资源

有关启用和使用可观测性的更多信息,请参阅以下资源:

配置 TelemetryProvider

您可以在应用程序中为所有服务客户端或单个客户端全局配置 TelemetryProvider,如以下示例所示。遥测提供程序一节提供了有关遥测实现的信息,包括有关随 SDK 提供的实现的信息。

配置默认的全局遥测提供程序

默认情况下,每个服务客户端都尝试使用全局可用的遥测提供程序。这样,您只需设置一次提供程序,所有客户端都会使用它。此操作只需执行一次,且必须在创建任何服务客户端之前进行。

以下代码片段展示了如何设置全局遥测提供程序。然后,它会创建一个 Amazon S3 服务客户端,并尝试执行失败的操作。该代码向应用程序添加追踪记录和指标。该代码使用以下 NuGet 软件包:OpenTelemetry.Exporter.ConsoleOpenTelemetry.Instrumentation.AWS

注意

如果您使用 Amazon IAM Identity Center 进行身份验证,请务必同时添加 AWSSDK.SSOAWSSDK.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 属性。有关自定义遥测实现的信息,请参阅遥测提供程序