View a markdown version of this page

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

Amazon SDK for .NET V3 已结束支持。

我们建议您迁移到 Amazon SDK for .NET V4。有关如何迁移的更多详细信息和信息,请参阅我们的终止支持公告

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

可观测性

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

Amazon SDK for .NET 可以提供两种常见的遥测信号、指标和轨迹以及日志记录。您可以连接TelemetryProvider以将遥测数据发送到可观测性后端(例如或 Amazon X-RayA ma zon 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 属性。有关自定义遥测实现的信息,请参阅遥测提供程序