

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

# 配置 OpenTelemetry-based 遥测提供商
<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")
}
```

## 配置 SDK
<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 的讨论不在本指南的讨论范围之内。[OpenTelemetryJava 文档](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/)。

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

以下资源可帮助您入门 OpenTelemetry。
+ [AWS 发行版适用于 OpenTelemetry](https://aws-otel.github.io/docs/introduction)- AWS oTel 发行版主页
+ [aws-otel-java-instrumentions-Java 工具](https://github.com/aws-observability/aws-otel-java-instrumentation)库发行版 AWS OpenTelemetry 
+ [aws-otel-lambda-托管的 Lambda 层](https://github.com/aws-observability/aws-otel-lambda) AWS OpenTelemetry 
+ [aws-otel-collector-收藏家发行版](https://github.com/aws-observability/aws-otel-collector) AWS OpenTelemetry
+ [AWS 可观测性最佳实践](https://aws-observability.github.io/observability-best-practices/)-特定于可观测性的一般最佳实践 AWS