

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

# 遙測供應商
<a name="observability-telemetry-providers"></a>

開發套件目前支援 [OpenTelemetry](https://opentelemetry.io/) (OTel) 做為供應商。開發套件未來可能會提供額外的遙測供應商。

**Topics**
+ [設定 OpenTelemetry 型遙測供應商](observability-telemetry-providers-otel.md)

# 設定 OpenTelemetry 型遙測供應商
<a name="observability-telemetry-providers-otel"></a>

適用於 Kotlin 的 SDK 提供 OpenTelemetry 支援的`TelemetryProvider`介面實作。

## 先決條件
<a name="observability-telemetry-providers-otel-prereqs"></a>

更新您的專案相依性以新增 OpenTelemetry 供應商，如下列 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(platform("io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:[https://search.maven.org/#search|gav|1|g:io.opentelemetry.instrumentation%20AND%20a:opentelemetry-instrumentation-bom](https://search.maven.org/#search|gav|1|g:io.opentelemetry.instrumentation%20AND%20a:opentelemetry-instrumentation-bom)"))
    implementation("aws.smithy.kotlin:telemetry-provider-otel")

    // OPTIONAL: If you use log4j, the following entry enables the ability to export logs through OTel.
    runtimeOnly("io.opentelemetry.instrumentation:opentelemetry-log4j-appender-2.17")
}
```

## 設定軟體開發套件
<a name="observability-telemetry-providers-otel-conf"></a>

下列程式碼使用 OpenTelemetry 遙測提供者來設定服務用戶端。

```
import aws.sdk.kotlin.services.s3.S3Client
import aws.smithy.kotlin.runtime.telemetry.otel.OpenTelemetryProvider
import io.opentelemetry.api.GlobalOpenTelemetry
import kotlinx.coroutines.runBlocking

fun main() = runBlocking {
    val otelProvider = OpenTelemetryProvider(GlobalOpenTelemetry.get())

    S3Client.fromEnvironment().use { s3 ->
        telemetryProvider = otelProvider
        …
    }
}
```

**注意**  
有關如何設定 OpenTelemetry SDK 的討論超出本指南的範圍。[OpenTelemetry Java 文件](https://opentelemetry.io/docs/instrumentation/java/)包含各種方法的組態資訊：[手動](https://opentelemetry.io/docs/instrumentation/java/manual/)、自動透過 [ Java 代理程式](https://opentelemetry.io/docs/instrumentation/java/automatic/)或 （選用） [收集器](https://opentelemetry.io/docs/collector/)。

## Resources
<a name="observability-telemetry-providers-otel-res"></a>

下列資源可協助您開始使用 OpenTelemetry。
+ [AWS Distro for OpenTelemetry](https://aws-otel.github.io/docs/introduction) - AWS OTeL Distro 首頁
+ [aws-otel-java-instrumentation](https://github.com/aws-observability/aws-otel-java-instrumentation) - AWS Distro for OpenTelemetry Java 檢測程式庫
+ [aws-otel-lambda](https://github.com/aws-observability/aws-otel-lambda) AWS 受管 OpenTelemetry Lambda 層
+ [aws-otel-collector](https://github.com/aws-observability/aws-otel-collector) - AWS Distro for OpenTelemetry Collector
+ [AWS 可觀測性最佳實務](https://aws-observability.github.io/observability-best-practices/) - 特定於 的可觀測性一般最佳實務 AWS