

# AWS Distro for OpenTelemetry (ADOT) SDK を使用したコレクターレステレメトリのエクスポート
<a name="CloudWatch-OTLP-UsingADOT"></a>

ADOT SDK を使用してコレクターレスに移行し、メトリクス、トレース、およびログを OTLP エンドポイントに直接送信できます。

**注記**  
Application Signals には、トランザクション検索機能が含まれています。コストの重複を回避するには、ADOT SDK で Application Signals を無効にし、`OTEL_AWS_APPLICATION_SIGNALS_ENABLED` を false (デフォルト設定) に設定したままにします。

**Topics**
+ [前提条件](#CloudWatch-OTLP-UsingADOT-Prerequisite)
+ [ロールの IAM アクセス許可を設定する](#setup-iam-permissions-role)
+ [認証情報プロバイダーを設定する](#configure-credentials-providers)
+ [ADOT SDK の有効化](#Enabling-ADOT)

## 前提条件
<a name="CloudWatch-OTLP-UsingADOT-Prerequisite"></a>

トレースを使用している場合は、トランザクション検索が有効になっていて、X-Ray OTLP エンドポイントにスパンを送信できることを確認します。詳細については、「[トランザクション検索の開始方法](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Transaction-Search-getting-started.html)」を参照してください。

## ロールの IAM アクセス許可を設定する
<a name="setup-iam-permissions-role"></a>

以下のステップを実行して、必要な IAM ポリシーをロールにアタッチします。

**トレース:**

1. IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. **[ロール]** を選択し、設定したロールを検索して選択します。

1. **[アクセス権限]** タブで、**[許可を追加]**、**[ポリシーをアタッチ]** の順に選択します。

1. 検索ボックスを使って、`AWSXrayWriteOnlyPolicy` を検索します。

1. `AWSXrayWriteOnlyPolicy` ポリシーを選択し、**[許可を追加]** を選択します。

**ログ:**

1. IAM コンソール ([https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)) を開きます。

1. **[ロール]** を選択し、設定したロールを検索して選択します。

1. **[アクセス許可]** タブで、**[許可を追加]** をクリックしてから、**[インラインポリシーを作成]** をクリックします。

1. サービスの **[CloudWatch Logs]** を選択し、**[許可されたアクション]** で以下をフィルタリングして選択します。

   ```
   logs:PutLogEvents
   logs:DescribeLogGroups
   logs:DescribeLogStreams
   ```

1. 必要なアクセス許可を付与する IAM ポリシーの例を以下に示します。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "CloudWatchLogsAccess",
               "Effect": "Allow",
               "Action": [
                   "logs:PutLogEvents",
                   "logs:DescribeLogGroups",
                   "logs:DescribeLogStreams"
                  
               ],
               "Resource": [
                   "arn:aws:logs:*:*:log-group:*"
               ]
           }
       ]
   }
   ```

------

## 認証情報プロバイダーを設定する
<a name="configure-credentials-providers"></a>

ADOT は AWS SDK を使用して、テレメトリデータを AWS にエクスポートするために必要となる有効な認証情報を自動的に検出します。特定の環境の認証情報の設定に関するガイダンスについては、[AWS SDKS が認証情報を取得する方法に関するドキュメント](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html)を参照してください。

**オンプレミスホストの IAM 認証情報の設定:**

次のコマンドを入力して、オンプレミスホストで AWS 認証情報を設定します。**ACCESS\$1KEY\$1ID** と **SECRET\$1ACCESS\$1KEY** を、設定した IAM ロールまたはユーザーの認証情報に置き換えます。

```
$ aws configure
AWS Access Key ID [None]: ACCESS_KEY_ID
AWS Secret Access Key [None]: SECRET_ACCESS_ID
Default region name [None]: MY_REGION
Default output format [None]: json
```

## ADOT SDK の有効化
<a name="Enabling-ADOT"></a>

アプリケーションのログおよびトレースを Java、Node.js、Python、.Net の AWS Distro for OpenTelemetry (ADOT) SDK から OTLP エンドポイントに直接送信することを許可できます。

------
#### [ Java ]

**注記**  
これらの機能を使用するには、**ADOT Java エージェントバージョン 2.11.2 以降**を使用する必要があります。

1. AWS Distro for OpenTelemetry Java 自動計測エージェントの最新バージョンをダウンロードします。このコマンドを使用すると、最新バージョンをダウンロードできます。

   ```
   curl -L -O https://github.com/aws-observability/aws-otel-java-instrumentation/releases/latest/download/aws-opentelemetry-agent.jar
   ```

   リリース済みバージョンをすべて確認するには、[aws-otel-java-instrumentation](https://github.com/aws-observability/aws-otel-java-instrumentation/releases) のリリースを参照してください。

1. OTLP エンドポイントにテレメトリを直接送信する別のエクスポーターを有効にし、メリットを最適化するには、アプリケーションを起動する前に以下の環境変数を使用します。

   **トレース:**
   + X-Ray OTLP トレースエンドポイントを指定するように `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` を設定します: `https://xray.[AWSRegion].amazonaws.com/v1/traces`

     例えば、次のようになります。

     ```
     export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT="https://xray.us-west-2.amazonaws.com/v1/traces"
     ```
   + `OTEL_TRACES_EXPORTER` を `otlp` に設定します (これはオプションで、この環境変数が設定されていない場合はデフォルト値になります)。
   + `OTEL_EXPORTER_OTLP_TRACES_PROTOCOL` 変数を `http/protobuf` に設定します (これはオプションで、この環境変数が設定されていない場合はデフォルト値になります)。
   + `OTEL_RESOURCE_ATTRIBUTES` 変数を設定して、以下の情報をキーと値のペアとして指定します。これらの環境変数は Application Signals によって使用され、X-Ray トレースのアノテーションと CloudWatch メトリクスのディメンションに変換されます。
     + (オプション) サービス名を設定するには、`service.name` を使用します。これは、Application Signals ダッシュボードにアプリケーションのサービス名として表示されます。このキーの値を指定しない場合、`UnknownService` (デフォルト値) が使用されます。
     + (オプション) アプリケーションの稼働環境を設定するには、`deployment.environment` を使用します。これは、アプリケーションの **[ホスト元]** 環境として表示されます。
     + (オプション) ログ相関を有効にするには、`OTEL_RESOURCE_ATTRIBUTES` で、アプリケーションのロググループに追加で環境変数 `aws.log.group.names` を設定します。これにより、アプリケーションが生成したトレースとメトリクスをこれらのロググループ内の該当するログエントリと関連付けることができます。この変数では、`$YOUR_APPLICATION_LOG_GROUP` をアプリケーションのロググループ名に置き換えます。複数のロググループがある場合は、アンパサンド (`&`) を使用して、次の例のようにそれらを分離できます: `aws.log.group.names=log-group-1&log-group-2`。ログ相関のメトリクスを有効にするには、この現在の環境変数を設定するだけで十分です。詳細については、「[ログ相関のメトリクスを有効にする](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-MetricLogCorrelation.html)」を参照してください。ログ相関のトレースを有効にするには、アプリケーションのログ記録設定も変更する必要があります。詳細については、「[ログ相関のトレースを有効にする](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-TraceLogCorrelation.html)」を参照してください。

   **ログ:**
   + CloudWatch OTLP ログエンドポイントを指定するように `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` を設定します: `https://logs.[AWSRegion].amazonaws.com/v1/logs`

     例えば、次のようになります。

     ```
     export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT="https://logs.us-west-2.amazonaws.com/v1/logs"
     ```
   + ログをエクスポートするロググループとログストリームを指定するように `OTEL_EXPORTER_OTLP_LOGS_HEADERS` を設定します (注: ADOT を実行する**前**に作成する必要があります): `x-aws-log-group=[CW-LOG-GROUP-NAME],x-aws-log-stream=[CW-LOG-STREAM-NAME]`

     例えば、次のようになります。

     ```
     export OTEL_EXPORTER_OTLP_LOGS_HEADERS=x-aws-log-group=MyLogGroup,x-aws-log-stream=default
     ```
   + `OTEL_LOGS_EXPORTER` を `otlp` に設定します (これはオプションで、この環境変数が設定されていない場合はデフォルト値になります)。
   + `OTEL_EXPORTER_OTLP_LOGS_PROTOCOL` 変数を `http/protobuf` に設定します (これはオプションで、この環境変数が設定されていない場合はデフォルト値になります)。

1. `JAVA_TOOL_OPTIONS` を指定して、AWS Distro for OpenTelemetry Java 自動計測エージェントが保存されているパスを指定します。例えば、次のようになります。

   ```
   export JAVA_TOOL_OPTIONS=" -javaagent:$AWS_ADOT_JAVA_INSTRUMENTATION_PATH"
   export AWS_ADOT_JAVA_INSTRUMENTATION_PATH="./aws-opentelemetry-agent.jar"
   ```

1. これで、アプリケーションは ADOT Java 計測を使用して実行され、スパンおよびログが生成されるようになりました。スパンは `aws/spans` CloudWatch ロググループに保存され、ログは `OTEL_EXPORTER_OTLP_LOGS_HEADERS` ヘッダーで指定されたロググループに保存されます。CloudWatch トレースおよびメトリクスコンソールで、スパンと相関するログとメトリクスを表示することもできます。

1. 前のステップでリストアップした環境変数を使用して、アプリケーションを起動します。起動スクリプトの例を次に示します。

   ```
   JAVA_TOOL_OPTIONS=" -javaagent:$AWS_ADOT_JAVA_INSTRUMENTATION_PATH" \
   OTEL_METRICS_EXPORTER=none \
   OTEL_TRACES_EXPORTER=otlp \
   OTEL_EXPORTER_OTLP_TRACES_PROTOCOL=http/protobuf \
   OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces \
   OTEL_LOGS_EXPORTER=otlp \
   OTEL_EXPORTER_OTLP_LOGS_PROTOCOL=http/protobuf \
   OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=https://logs.us-east-1.amazonaws.com/v1/logs \
   OTEL_EXPORTER_OTLP_LOGS_HEADERS=x-aws-log-group=MyLogGroup,x-aws-log-stream=default 
   OTEL_RESOURCE_ATTRIBUTES="service.name=$YOUR_SVC_NAME" \
   java -jar $MY_JAVA_APP.jar
   ```

------
#### [ Node.js ]

**注記**  
これらの機能を使用するには、**ADOT JavaScript バージョン 0.7.0 以降**を使用する必要があります。

1. AWS Distro for OpenTelemetry JavaScript 自動計測の最新バージョンをダウンロードします。次の コマンドを使用してインストールします。

   ```
   npm install @aws/aws-distro-opentelemetry-node-autoinstrumentation
   ```

   すべてのリリース済みバージョンを確認するには、「[aws-otel-js-instrumentation Releases](https://github.com/aws-observability/aws-otel-js-instrumentation/releases)」を参照してください。

1. OTLP エンドポイントにテレメトリを直接送信する別のエクスポーターを有効にし、メリットを最適化するには、アプリケーションを起動する前に以下の環境変数を使用します。

   **トレース:**
   + X-Ray OTLP トレースエンドポイントを指定するように `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` を設定します: `https://xray.[AWSRegion].amazonaws.com/v1/traces`

     例えば、次のようになります。

     ```
     export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT="https://xray.us-west-2.amazonaws.com/v1/traces"
     ```
   + `OTEL_TRACES_EXPORTER` を `otlp` に設定します (これはオプションで、この環境変数が設定されていない場合はデフォルト値になります)。
   + `OTEL_EXPORTER_OTLP_TRACES_PROTOCOL` 変数を `http/protobuf` に設定します (これはオプションで、この環境変数が設定されていない場合はデフォルト値になります)。
   + `OTEL_RESOURCE_ATTRIBUTES` 変数を設定して、以下の情報をキーと値のペアとして指定します。これらの環境変数は Application Signals によって使用され、X-Ray トレースのアノテーションと CloudWatch メトリクスのディメンションに変換されます。
     + (オプション) サービス名を設定するには、`service.name` を使用します。これは、Application Signals ダッシュボードにアプリケーションのサービス名として表示されます。このキーの値を指定しない場合、`UnknownService` (デフォルト値) が使用されます。
     + (オプション) アプリケーションの稼働環境を設定するには、`deployment.environment` を使用します。これは、アプリケーションの **[ホスト元]** 環境として表示されます。
     + (オプション) ログ相関を有効にするには、`OTEL_RESOURCE_ATTRIBUTES` で、アプリケーションのロググループに追加で環境変数 `aws.log.group.names` を設定します。これにより、アプリケーションが生成したトレースとメトリクスをこれらのロググループ内の該当するログエントリと関連付けることができます。この変数では、`$YOUR_APPLICATION_LOG_GROUP` をアプリケーションのロググループ名に置き換えます。複数のロググループがある場合は、アンパサンド (`&`) を使用して、次の例のようにそれらを分離できます: `aws.log.group.names=log-group-1&log-group-2`。ログ相関のメトリクスを有効にするには、この現在の環境変数を設定するだけで十分です。詳細については、「[ログ相関のメトリクスを有効にする](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-MetricLogCorrelation.html)」を参照してください。ログ相関のトレースを有効にするには、アプリケーションのログ記録設定も変更する必要があります。詳細については、「[ログ相関のトレースを有効にする](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-TraceLogCorrelation.html)」を参照してください。

   **ログ:**
   + CloudWatch OTLP ログエンドポイントを指定するように `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` を設定します: `https://logs.[AWSRegion].amazonaws.com/v1/logs`

     例えば、次のようになります。

     ```
     export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT="https://logs.us-west-2.amazonaws.com/v1/logs"
     ```
   + ログをエクスポートするロググループとログストリームを指定するように `OTEL_EXPORTER_OTLP_LOGS_HEADERS` を設定します (注: ADOT を実行する**前**に作成する必要があります): `x-aws-log-group=[CW-LOG-GROUP-NAME],x-aws-log-stream=[CW-LOG-STREAM-NAME]`

     例えば、次のようになります。

     ```
     export OTEL_EXPORTER_OTLP_LOGS_HEADERS=x-aws-log-group=MyLogGroup,x-aws-log-stream=default
     ```
   + `OTEL_LOGS_EXPORTER` を `otlp` に設定します (これはオプションで、この環境変数が設定されていない場合はデフォルト値になります)。
   + `OTEL_EXPORTER_OTLP_LOGS_PROTOCOL` 変数を `http/protobuf` に設定します (これはオプションで、この環境変数が設定されていない場合はデフォルト値になります)。

1. これで、アプリケーションは ADOT JavaScript 計測を使用して実行され、スパンおよびログが生成されるようになりました。スパンは `aws/spans` CloudWatch ロググループに保存され、ログは `OTEL_EXPORTER_OTLP_LOGS_HEADERS` ヘッダーで指定されたロググループに保存されます。CloudWatch トレースおよびメトリクスコンソールで、スパンと相関するログとメトリクスを表示することもできます。

1. 前のステップでリストアップした環境変数を使用して、アプリケーションを起動します。起動スクリプトの例を次に示します。

   `$SVC_NAME` をアプリケーションの名前に置き換えます。これは、アプリケーションの名前として表示されます。

   ```
   OTEL_METRICS_EXPORTER=none \
   OTEL_TRACES_EXPORTER=otlp \
   OTEL_EXPORTER_OTLP_TRACES_PROTOCOL=http/protobuf \
   OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces \
   OTEL_LOGS_EXPORTER=otlp \
   OTEL_EXPORTER_OTLP_LOGS_PROTOCOL=http/protobuf \
   OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=https://logs.us-east-1.amazonaws.com/v1/logs \
   OTEL_EXPORTER_OTLP_LOGS_HEADERS=x-aws-log-group=MyLogGroup,x-aws-log-stream=default 
   OTEL_RESOURCE_ATTRIBUTES="service.name=$YOUR_SVC_NAME" \
   node --require '@aws/aws-distro-opentelemetry-node-autoinstrumentation/register' your-application.js
   ```

------
#### [ Python ]

**注記**  
これらの機能を使用するには、**ADOT Python バージョン 0.10.0 以降**を使用し、**`botocore`** がインストールされている必要があります。

1. AWS Distro for OpenTelemetry Python 自動計測の最新バージョンをダウンロードします。次の コマンドを使用してインストールします。

   ```
   pip install aws-opentelemetry-distro
   ```

   リリース済みバージョンをすべて確認するには、「[aws-otel-python-instrumentation Releases](https://github.com/aws-observability/aws-otel-python-instrumentation/releases)」を参照してください。

1. OTLP エンドポイントにテレメトリを直接送信する別のエクスポーターを有効にし、メリットを最適化するには、アプリケーションを起動する前に以下の環境変数を使用します。

   **トレース設定とログ設定の両方で、以下の環境変数を設定する必要があります。**
   + `OTEL_PYTHON_DISTRO`～`aws_distro`
   + `OTEL_PYTHON_CONFIGURATOR`～`aws_configurator`

   **トレース:**
   + X-Ray OTLP トレースエンドポイントを指定するように `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` を設定します: `https://xray.[AWSRegion].amazonaws.com/v1/traces`

     例えば、次のようになります。

     ```
     export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT="https://xray.us-west-2.amazonaws.com/v1/traces"
     ```
   + `OTEL_TRACES_EXPORTER` を `otlp` に設定します (これはオプションで、この環境変数が設定されていない場合はデフォルト値になります)。
   + `OTEL_EXPORTER_OTLP_TRACES_PROTOCOL` 変数を `http/protobuf` に設定します (これはオプションで、この環境変数が設定されていない場合はデフォルト値になります)。
   + `OTEL_RESOURCE_ATTRIBUTES` 変数を設定して、以下の情報をキーと値のペアとして指定します。これらの環境変数は Application Signals によって使用され、X-Ray トレースのアノテーションと CloudWatch メトリクスのディメンションに変換されます。
     + (オプション) サービス名を設定するには、`service.name` を使用します。これは、Application Signals ダッシュボードにアプリケーションのサービス名として表示されます。このキーの値を指定しない場合、`UnknownService` (デフォルト値) が使用されます。
     + (オプション) アプリケーションの稼働環境を設定するには、`deployment.environment` を使用します。これは、アプリケーションの **[ホスト元]** 環境として表示されます。
     + (オプション) ログ相関を有効にするには、`OTEL_RESOURCE_ATTRIBUTES` で、アプリケーションのロググループに追加で環境変数 `aws.log.group.names` を設定します。これにより、アプリケーションが生成したトレースとメトリクスをこれらのロググループ内の該当するログエントリと関連付けることができます。この変数では、`$YOUR_APPLICATION_LOG_GROUP` をアプリケーションのロググループ名に置き換えます。複数のロググループがある場合は、アンパサンド (`&`) を使用して、次の例のようにそれらを分離できます: `aws.log.group.names=log-group-1&log-group-2`。ログ相関のメトリクスを有効にするには、この現在の環境変数を設定するだけで十分です。詳細については、「[ログ相関のメトリクスを有効にする](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-MetricLogCorrelation.html)」を参照してください。ログ相関のトレースを有効にするには、アプリケーションのログ記録設定も変更する必要があります。詳細については、「[ログ相関のトレースを有効にする](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Application-Signals-TraceLogCorrelation.html)」を参照してください。

   **ログ:**
   + `OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED` を `true` に設定します。
   + CloudWatch OTLP ログエンドポイントを指定するように `OTEL_EXPORTER_OTLP_LOGS_ENDPOINT` を設定します: `https://logs.[AWSRegion].amazonaws.com/v1/logs`

     例えば、次のようになります。

     ```
     export OTEL_EXPORTER_OTLP_LOGS_ENDPOINT="https://logs.us-west-2.amazonaws.com/v1/logs"
     ```
   + ログをエクスポートするロググループとログストリームを指定するように `OTEL_EXPORTER_OTLP_LOGS_HEADERS` を設定します (注: ADOT を実行する**前**に作成する必要があります): `x-aws-log-group=[CW-LOG-GROUP-NAME],x-aws-log-stream=[CW-LOG-STREAM-NAME]`

     例えば、次のようになります。

     ```
     export OTEL_EXPORTER_OTLP_LOGS_HEADERS=x-aws-log-group=MyLogGroup,x-aws-log-stream=default
     ```
   + `OTEL_LOGS_EXPORTER` を `otlp` に設定します (これはオプションで、この環境変数が設定されていない場合はデフォルト値になります)。
   + `OTEL_EXPORTER_OTLP_LOGS_PROTOCOL` 変数を `http/protobuf` に設定します (これはオプションで、この環境変数が設定されていない場合はデフォルト値になります)。

1. これで、アプリケーションは ADOT Python 計測を使用して実行され、スパンおよびログが生成されるようになりました。スパンは `aws/spans` CloudWatch ロググループに保存され、ログは `OTEL_EXPORTER_OTLP_LOGS_HEADERS` ヘッダーで指定されたロググループに保存されます。CloudWatch トレースおよびメトリクスコンソールで、スパンと相関するログとメトリクスを表示することもできます。

1. 前のステップでリストアップした環境変数を使用して、アプリケーションを起動します。起動スクリプトの例を次に示します。

   `$SVC_NAME` をアプリケーションの名前に置き換えます。これは、アプリケーションの名前として表示されます。

   `$PYTHON_APP` をアプリケーションの場所と名前に置き換えます。

   ```
   OTEL_METRICS_EXPORTER=none \
   OTEL_TRACES_EXPORTER=otlp \
   OTEL_EXPORTER_OTLP_TRACES_PROTOCOL=http/protobuf \
   OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces \
   OTEL_LOGS_EXPORTER=otlp \
   OTEL_EXPORTER_OTLP_LOGS_PROTOCOL=http/protobuf \
   OTEL_EXPORTER_OTLP_LOGS_ENDPOINT=https://logs.us-east-1.amazonaws.com/v1/logs \
   OTEL_EXPORTER_OTLP_LOGS_HEADERS=x-aws-log-group=MyLogGroup,x-aws-log-stream=default
   OTEL_PYTHON_LOGGING_AUTO_INSTRUMENTATION_ENABLED=true
   OTEL_RESOURCE_ATTRIBUTES="service.name=$YOUR_SVC_NAME" \
   opentelemetry-instrument python $MY_PYTHON_APP.py
   ```

------
#### [ .Net ]

**注記**  
これらの機能を使用するには、**ADOT .NET バージョン 1.8.0 以降**が必要です。
圧縮は現在サポートされていません。
ログは現在サポートされていません。

AWS Distro for OpenTelemetry .NET 自動計装パッケージの最新バージョンをダウンロードします。リリース済みバージョンをすべて確認するには、「[aws-otel-dotnet-instrumentation Releases](https://github.com/aws-observability/aws-otel-dotnet-instrumentation/releases)」を参照してください。

テレメトリを OTLP エンドポイントに直接送信するさまざまなエクスポーターを有効にし、利点を最適化するには、アプリケーションを起動する前に以下の環境変数を使用します (`OTEL_RESOURCE_ATTRIBUTES` 環境変数内の `dotnet-service-name` を任意のサービス名に置き換えてください)。

**トレース:**
+ `OTEL_TRACES_EXPORTER` を `none` に設定する**必要**があります
+ `OTEL_AWS_SIG_V4_ENABLED` を `true` に設定する**必要**があります

  この機能は **.NET では自動的に有効になっていません**。環境変数は、特に .NET 計測内でこのユースケースを識別するために必要です。この要件は .NET に固有であり、**サポートされている他の言語には適用されません**。

以下は Linux の場合のセットアップ例です。

```
export INSTALL_DIR=OpenTelemetryDistribution
export CORECLR_ENABLE_PROFILING=1
export CORECLR_PROFILER={918728DD-259F-4A6A-AC2B-B85E1B658318}
export CORECLR_PROFILER_PATH=${INSTALL_DIR}/linux-x64/OpenTelemetry.AutoInstrumentation.Native.so
export DOTNET_ADDITIONAL_DEPS=${INSTALL_DIR}/AdditionalDeps
export DOTNET_SHARED_STORE=${INSTALL_DIR}/store
export DOTNET_STARTUP_HOOKS=${INSTALL_DIR}/net/OpenTelemetry.AutoInstrumentation.StartupHook.dll
export OTEL_DOTNET_AUTO_HOME=${INSTALL_DIR}

export OTEL_DOTNET_AUTO_PLUGINS="AWS.Distro.OpenTelemetry.AutoInstrumentation.Plugin, AWS.Distro.OpenTelemetry.AutoInstrumentation"
export OTEL_TRACES_EXPORTER=none
export OTEL_AWS_SIG_V4_ENABLED=true

export OTEL_RESOURCE_ATTRIBUTES=service.name=dotnet-service-name
export OTEL_METRICS_EXPORTER=none
export OTEL_LOGS_EXPORTER=none
export OTEL_EXPORTER_OTLP_TRACES_PROTOCOL=http/protobuf
export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces
```

以下は Windows Server の場合のセットアップ例です。

```
$env:INSTALL_DIR = "OpenTelemetryDistribution" 
$env:CORECLR_ENABLE_PROFILING = 1 
$env:CORECLR_PROFILER = "{918728DD-259F-4A6A-AC2B-B85E1B658318}" 
$env:CORECLR_PROFILER_PATH = Join-Path $env:INSTALL_DIR "win-x64/OpenTelemetry.AutoInstrumentation.Native.dll" 
$env:DOTNET_ADDITIONAL_DEPS = Join-Path $env:INSTALL_DIR "AdditionalDeps" 
$env:DOTNET_SHARED_STORE = Join-Path $env:INSTALL_DIR "store" 
$env:DOTNET_STARTUP_HOOKS = Join-Path $env:INSTALL_DIR "net/OpenTelemetry.AutoInstrumentation.StartupHook.dll" 
$env:OTEL_DOTNET_AUTO_HOME = $env:INSTALL_DIR 
$env:OTEL_DOTNET_AUTO_PLUGINS = "AWS.Distro.OpenTelemetry.AutoInstrumentation.Plugin, AWS.Distro.OpenTelemetry.AutoInstrumentation"

$env:OTEL_TRACES_EXPORTER=none
$env:OTEL_AWS_SIG_V4_ENABLED=true

$env:OTEL_RESOURCE_ATTRIBUTES=service.name=dotnet-service-name
$env:OTEL_METRICS_EXPORTER=none
$env:OTEL_LOGS_EXPORTER=none
$env:OTEL_EXPORTER_OTLP_TRACES_PROTOCOL=http/protobuf
$env:OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=https://xray.us-east-1.amazonaws.com/v1/traces
```

1. 前のステップでリストアップした環境変数を使用して、アプリケーションを起動します。

1. （省略可) または、提供されているインストール スクリプトを使用して、AWS Distro for OpenTelemetry .NET 自動計測パッケージのインストールとセットアップに役立てることができます。

   Linux の場合は、GitHub リリース ページから Bash インストール スクリプトをダウンロードしてインストールします:

   ```
   # Download and Install
   curl -L -O https://github.com/aws-observability/aws-otel-dotnet-instrumentation/releases/latest/download/aws-otel-dotnet-install.sh
   chmod +x ./aws-otel-dotnet-install.sh
   ./aws-otel-dotnet-install.sh
   # Instrument
   . $HOME/.otel-dotnet-auto/instrument.shexport OTEL_RESOURCE_ATTRIBUTES=service.name=dotnet-service-name
   ```

   Windows Server の場合は、次のように、GitHub リリースページから PowerShell のインストールスクリプトをダウンロードしてインストールします。

   ```
   # Download and Install
   $module_url = "https://github.com/aws-observability/aws-otel-dotnet-instrumentation/releases/latest/download/AWS.Otel.DotNet.Auto.psm1"
   $download_path = Join-Path $env:temp "AWS.Otel.DotNet.Auto.psm1"
   Invoke-WebRequest -Uri $module_url -OutFile $download_path
   Import-Module $download_path
   Install-OpenTelemetryCore
   # Instrument
   Import-Module $download_path
   Register-OpenTelemetryForCurrentSession -OTelServiceName "dotnet-service-name"
   Register-OpenTelemetryForIIS
   ```

   AWS Distro for OpenTelemetry .NET 自動計測パッケージの NuGet パッケージは、[公式 NuGet リポジトリ](https://www.nuget.org/packages/AWS.Distro.OpenTelemetry.AutoInstrumentation) にあります。手順については、「[README ファイル](https://github.com/aws-observability/aws-otel-dotnet-instrumentation/blob/main/src/AWS.Distro.OpenTelemetry.AutoInstrumentation/nuget-readme.md)」を確認してください。

------