

버전 4(V4) AWS SDK for .NET 가 릴리스되었습니다.

변경 사항 해제 및 애플리케이션 마이그레이션에 대한 자세한 내용은 [마이그레이션 주제를](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>

관찰성은 시스템의 현재 상태를 내보내는 데이터에서 추론할 수 있는 범위입니다. 방출되는 데이터를 일반적으로 원격 측정이라고 합니다.

는 두 가지 일반적인 원격 측정 신호, 지표 및 추적과 로깅을 제공할 AWS SDK for .NET 수 있습니다. [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))로 전송한 다음 조치를 취할 수 있습니다.

기본적으로 원격 측정 신호는 SDK에서 비활성화됩니다. 이 주제에서는 원격 측정 출력을 활성화하고 구성하는 방법을 설명합니다.

## 추가 리소스
<a name="observability-resources"></a>

관찰성 활성화 및 사용에 대한 자세한 내용은 다음 리소스를 참조하세요.
+ [OpenTelemetry](https://opentelemetry.io/)
+ 블로그 게시물 [Enhancing Observability in the AWS SDK for .NET with OpenTelemetry](https://aws.amazon.com/blogs/developer/enhancing-observability-in-the-aws-sdk-for-net-with-opentelemetry/).
+ 블로그 게시물 [Announcing the general availability of AWS .NET OpenTelemetry library](https://aws.amazon.com/blogs/dotnet/announcing-the-general-availability-of-aws-net-opentelemetry-libraries/).
+ [OpenTelemetry용 익스포터](https://opentelemetry.io/docs/languages/net/exporters/)
+ 의 관찰성 예제는 [Tools for PowerShell 사용 설명서](https://docs.aws.amazon.com/powershell/latest/userguide/)의 [관찰성을](https://docs.aws.amazon.com/powershell/latest/userguide/observability.html) AWS Tools for PowerShell참조하세요.

## `TelemetryProvider` 구성
<a name="observability-conf-telemetry-provider"></a>

다음 예제와 같이 모든 서비스 클라이언트 또는 개별 클라이언트에 대해 애플리케이션에서 `TelemetryProvider`를 전역적으로 구성할 수 있습니다. [원격 측정 공급자](observability-telemetry-providers.md) 섹션에는 SDK와 함께 제공되는 구현에 대한 정보를 포함하여 원격 측정 구현에 대한 정보가 포함되어 있습니다.

### 기본 글로벌 원격 측정 공급자 구성
<a name="observability-conf-telemetry-provider-global"></a>

기본적으로 모든 서비스 클라이언트는 전역적으로 사용 가능한 원격 측정 공급자를 사용하려고 시도합니다. 이렇게 하면 공급자를 한 번 설정할 수 있으며, 모든 클라이언트가 공급자를 사용합니다. 이 작업은 서비스 클라이언트를 생성하기 전에 한 번만 수행해야 합니다.

다음 코드 조각은 글로벌 원격 측정 공급자를 설정하는 방법을 보여 줍니다. 그런 다음 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();
```

### 특정 서비스 클라이언트에 대한 원격 측정 공급자 구성
<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)
+ [Metrics](observability-metrics.md)
+ [원격 측정 공급자](observability-telemetry-providers.md)