OpenTelemetry を使用してメトリクスとトレースを収集する - Amazon CloudWatch

OpenTelemetry を使用してメトリクスとトレースを収集する

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

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」を参照してください。

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

{ "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_collectedotlp セクションを追加します。次の例では、X-Ray にトレースを送信する設定が示されています。

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