

# OpenTelemetry を使用してメトリクスとトレースを収集する
<a name="CloudWatch-Agent-OpenTelemetry-metrics"></a>

 一般的なオープンソースソリューションである OpenTelemetry Protocol (OTLP) で CloudWatch エージェントを使用し、アプリケーションまたはサービスからメトリクスおよびトレースを収集できます。任意の OpenTelemetry SDK を使用し、メトリクスおよびトレースを CloudWatch エージェントに送信できます。利用可能な OpenTelemetry SDKs の詳細については、「[OpenTelemetry がサポートする言語 API と SDK](https://opentelemetry.io/docs/languages/)」を参照してください。

OpenTelemetry メトリクスおよびトレースを収集するには、CloudWatch エージェント設定ファイルに `otlp` セクションを追加します。セクションには次のフィールドが含まれます。
+ `grpc_endpoint` - オプション。gRPC リモートプロシージャコールを使用して送信された OpenTelemetry メトリクスまたはトレースをリッスンするために使用する CloudWatch エージェントのアドレスを指定します。形式は `ip:port` です。このアドレスは、OpenTelemetry SDK の gRPC エクスポーター用に設定されたアドレスと一致する必要があります。このフィールドを省略した場合、`127.0.0.1:4317` のデフォルトが使用されます。
+ `http_endpoint` - オプション。HTTP 経由で送信される OpenTelemetry メトリクスまたはトレースをリッスンするために CloudWatch エージェントが使用するアドレスを指定します。形式は `ip:port` です。このアドレスは、OpenTelemetry SDK の HTTP エクスポーター用に設定されたアドレスと一致する必要があります。このフィールドを省略した場合、`127.0.0.1:4318` のデフォルトが使用されます。
+ `tls` - オプション。サーバーが TLS で設定されることを指定します。
  + `cert_file` – TLS が必要な接続に使用する TLS 証明書へのパス。
  + `key_file` – TLS が必要な接続に使用する TLS キーへのパス。

メトリクスおよびトレースを送信する方法および場所に応じて、`otlp` セクションは CloudWatch エージェント設定ファイル内の複数のセクションに配置することができます。

**重要**  
`otlp` セクションごとに一意のエンドポイントとポートが必要です。メトリクスとトレースエンドポイントの分割の詳細については、OpenTelemetry SDK ドキュメントの「[OTLP Exporter Configuration](https://opentelemetry.io/docs/languages/sdk-configuration/otlp-exporter/)」を参照してください。

CloudWatch または Amazon Managed Service for Prometheus にメトリクスを送信するには、`metrics` セクション内の `metrics_collected` に `otlp` セクションを追加します。さまざまな送信先にメトリクスを送信する方法の詳細については、「[CloudWatch エージェント設定ファイルを手動で作成または編集する](CloudWatch-Agent-Configuration-File-Details.md)」を参照してください。次の例では、CloudWatch にメトリクスを送信する設定が示されています。

**注記**  
 コンテナ化された環境でエージェントを実行しているときに、エージェントコンテナのネットワークの外部からテレメトリを送信する場合は、デフォルトエンドポイント `127.0.0.1` ではなく `0.0.0.0` をエンドポイントとして指定するようにしてください。

```
{
  "metrics": {
    "metrics_collected": {
      "otlp": {
        "grpc_endpoint": "127.0.0.1:4317",
        "http_endpoint": "127.0.0.1:4318"
      }
    }
  }
}
```

埋め込みメトリクス形式 (EMF) を使用して Amazon CloudWatch Logs にメトリクスを送信するには、`logs` セクション内の `metrics_collected` セクションに `otlp` セクションを追加します。これにより、デフォルトで EMF ログが `/aws/cwagent` ロググループおよび生成されたログストリームに送信されます。デフォルトでは、メトリクスは `CWAgent` 名前空間に抽出されます。次の例では、メトリクスを EMF ログとして CloudWatch Logs に送信する設定が示されています。

```
{
  "logs": {
    "metrics_collected": {
      "otlp": {
        "grpc_endpoint": "127.0.0.1:4317",
        "http_endpoint": "127.0.0.1:4318"
      }
    }
  }
}
```

トレースを AWS X-Ray に送信するには、`traces` セクション内の `traces_collected` に `otlp` セクションを追加します。次の例では、X-Ray にトレースを送信する設定が示されています。

```
{
  "traces": {
    "traces_collected": {
      "otlp": {
        "grpc_endpoint": "127.0.0.1:4317",
        "http_endpoint": "127.0.0.1:4318"
      }
    }
  }
}
```