

第 4 版 (V4) 適用於 .NET 的 AWS SDK 已發行！

如需有關中斷變更和遷移應用程式的資訊，請參閱[遷移主題](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html)。

 [https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html)

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 可觀測性
<a name="observability"></a>

可觀測性是從系統發出的資料推斷系統目前狀態的程度。發出的資料通常稱為遙測。

 適用於 .NET 的 AWS SDK 可以提供兩種常見的遙測訊號、指標和追蹤以及記錄。您可以連接 [TelemetryProvider](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TTelemetryProvider.html)，將遙測資料傳送至可觀測性後端 （例如 [AWS X-Ray](https://docs.aws.amazon.com/xray/?icmpid=docs_homepage_devtools)或 [Amazon CloudWatch](https://docs.aws.amazon.com/cloudwatch/?icmpid=docs_homepage_mgmtgov))，然後對其採取行動。

根據預設， 軟體開發套件中會停用遙測訊號。本主題說明如何啟用和設定遙測輸出。

## 其他資源
<a name="observability-resources"></a>

如需啟用和使用可觀測性的詳細資訊，請參閱下列資源：
+ [OpenTelemetry](https://opentelemetry.io/)
+ 部落格文章[適用於 .NET 的 AWS SDK 使用 OpenTelemetry 在 中增強可觀測性](https://aws.amazon.com/blogs/developer/enhancing-observability-in-the-aws-sdk-for-net-with-opentelemetry/)。
+ 部落格文章[宣布 AWS .NET OpenTelemetry 程式庫的一般可用性](https://aws.amazon.com/blogs/dotnet/announcing-the-general-availability-of-aws-net-opentelemetry-libraries/)。
+ [OpenTelemetry 的匯出工具](https://opentelemetry.io/docs/languages/net/exporters/)
+ 如需 中可觀測性的範例 AWS Tools for PowerShell，請參閱《[Tools for PowerShell 使用者指南](https://docs.aws.amazon.com/powershell/latest/userguide/)》中的[可觀測性](https://docs.aws.amazon.com/powershell/latest/userguide/observability.html)。

## 設定 `TelemetryProvider`
<a name="observability-conf-telemetry-provider"></a>

您可以針對所有服務用戶端或個別用戶端`TelemetryProvider`，在應用程式中全域設定 ，如下列範例所示。[遙測供應商](observability-telemetry-providers.md) 本節包含遙測實作的相關資訊，包括 SDK 隨附的實作相關資訊。

### 設定預設全域遙測供應商
<a name="observability-conf-telemetry-provider-global"></a>

根據預設，每個服務用戶端都會嘗試使用全球可用的遙測提供者。如此一來，您可以設定一次提供者，所有用戶端都會使用它。在您建立任何服務用戶端之前，這應該只完成一次。

下列程式碼片段說明如何設定全域遙測供應商。然後，它會建立 Amazon S3 服務用戶端，並嘗試執行失敗的操作。程式碼會將追蹤和指標同時新增至應用程式。此程式碼使用以下 NuGet 套件： `OpenTelemetry.Exporter.Console`和 `OpenTelemetry.Instrumentation.AWS`。

**注意**  
如果您使用 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();
```

### 為特定服務用戶端設定遙測供應商
<a name="observability-conf-telemetry-provider-client"></a>

您可以使用特定的遙測提供者 （全域提供者除外） 來設定個別服務用戶端。若要這樣做，請使用服務用戶端建構函數的 Config 物件`TelemetryProvider`類別。例如，請參閱 [AmazonS3Config](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/S3/TS3Config.html) 並尋找 `TelemetryProvider` 屬性。如需自訂遙測實作的相關資訊[遙測供應商](observability-telemetry-providers.md)，請參閱 。

**Topics**
+ [其他資源](#observability-resources)
+ [設定 `TelemetryProvider`](#observability-conf-telemetry-provider)
+ [指標](observability-metrics.md)
+ [遙測供應商](observability-telemetry-providers.md)