

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# テレメトリプロバイダー
<a name="observability-telemetry-providers"></a>

SDK は現在、プロバイダーとして [OpenTelemetry](https://opentelemetry.io/) (OTel) をサポートしています。SDK は、将来的に追加のテレメトリプロバイダーを提供する場合があります。

**Topics**
+ [OpenTelemetry ベースのテレメトリプロバイダーを設定する](observability-telemetry-providers-otel.md)

# OpenTelemetry ベースのテレメトリプロバイダーを設定する
<a name="observability-telemetry-providers-otel"></a>

SDK for Kotlin は、OpenTelemetry がサポートする`TelemetryProvider`インターフェイスの実装を提供します。

## 前提条件
<a name="observability-telemetry-providers-otel-prereqs"></a>

次の Gradle スニペットに示すように、プロジェクトの依存関係を更新して OpenTelemetry プロバイダーを追加します。*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 の設定方法については、このガイドの範囲外です。[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/)など、さまざまなアプローチに関する設定情報が含まれています。

## リソース
<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 Instrumentation Library
+ [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