

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 관찰성
<a name="observability"></a>

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

는 지표, 추적 및 로그라는 세 가지 일반적인 원격 측정 신호를 모두 제공할 AWS SDK for Kotlin 수 있습니다. [https://docs.aws.amazon.com/smithy-kotlin/api/latest/telemetry-api/aws.smithy.kotlin.runtime.telemetry/-telemetry-provider/index.html](https://docs.aws.amazon.com/smithy-kotlin/api/latest/telemetry-api/aws.smithy.kotlin.runtime.telemetry/-telemetry-provider/index.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에서는 로깅만 활성화되고 다른 원격 측정 신호는 비활성화됩니다. 이 주제에서는 원격 측정 출력을 활성화하고 구성하는 방법을 설명합니다.

**중요**  
`TelemetryProvider`는 현재 사용하기 위해 옵트인해야 하는 실험용 API입니다.

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

애플리케이션에서 모든 서비스 클라이언트 또는 개별 클라이언트`TelemetryProvider`에 대해 전역적으로를 구성할 수 있습니다. 다음 예제에서는 가상 함수를 사용하여 `TelemetryProvider` API 작업을 `getConfiguredProvider()` 보여줍니다. 이 [원격 측정 공급자](observability-telemetry-providers.md) 섹션에서는 SDK에서 제공하는 구현에 대한 정보를 설명합니다. 공급자가 지원되지 않는 경우 자체 지원을 구현하거나 [ GitHub에서 기능 요청을 열](https://github.com/awslabs/aws-sdk-kotlin/issues/new/choose) 수 있습니다.

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

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

글로벌 원격 측정 공급자를 사용하려면 먼저 다음 Gradle 코드 조각과 같이 프로젝트 종속성을 업데이트하여 원격 측정 기본 모듈을 추가합니다.

({{X.Y.Z}} 링크로 이동하여 사용 가능한 최신 버전을 볼 수 있습니다.)

```
dependencies {
    implementation(platform("aws.smithy.kotlin:bom:[https://github.com/smithy-lang/smithy-kotlin/releases/latest](https://github.com/smithy-lang/smithy-kotlin/releases/latest)"))
    implementation("aws.smithy.kotlin:telemetry-defaults")
    ...
}
```

그런 다음 다음 코드와 같이 서비스 클라이언트를 생성하기 전에 글로벌 원격 측정 공급자를 설정합니다.

```
import aws.sdk.kotlin.services.s3.S3Client
import aws.smithy.kotlin.runtime.telemetry.GlobalTelemetryProvider
import kotlinx.coroutines.runBlocking

fun main() = runBlocking {
    val myTelemetryProvider = getConfiguredProvider()
    GlobalTelemetryProvider.set(myTelemetryProvider)

    S3Client.fromEnvironment().use { s3 ->
        …
    }     
}

fun getConfiguredProvider(): TelemetryProvider {
    TODO("TODO - configure a provider")
}
```

### 특정 서비스 클라이언트에 대한 원격 측정 공급자 구성
<a name="observability-conf-telemetry-provider-client"></a>

특정 원격 측정 공급자(글로벌 공급자 제외)를 사용하여 개별 서비스 클라이언트를 구성할 수 있습니다. 방법은 다음 예제와 같습니다.

```
import aws.sdk.kotlin.services.s3.S3Client
import kotlinx.coroutines.runBlocking

fun main() = runBlocking {
    S3Client.fromEnvironment{
        telemetryProvider = getConfiguredProvider()
    }.use { s3 ->
        ...
    }
}

fun getConfiguredProvider(): TelemetryProvider {
    TODO("TODO - configure a provider")
}
```