OpenTelemetry の互換性に関する考慮事項 - Amazon CloudWatch

OpenTelemetry の互換性に関する考慮事項

アプリケーションで CloudWatch Application Signals を利用できるようにするには、既存のパフォーマンスモニタリングソリューションをアプリケーションから完全に削除しておくことをお勧めします。これには、計測コードと設定の削除も含まれます。

Application Signals では、OpenTelemetry の計測機能を使用しますが、既にある OpenTelemetry の計測機能や設定との互換性は保証されません。最良のシナリオであれば、カスタムメトリクスなどの OpenTelemetry 機能の一部を維持できる場合がありますが、詳細については、次のセクションを参照してください。

OpenTelemetry を使用している場合の考慮事項

残りのセクションでは、アプリケーションで OpenTelemetry を使用している方を対象に、Application Signals との互換性を確保するための重要な情報を紹介します。

  • アプリケーションで Application Signals を有効にする前に、OpenTelemetry に基づいた自動計算エージェントの挿入をアプリケーションから削除する必要があります。これにより、設定の競合を回避できます。互換性のある OpenTelemetry API と Application Signals を使用して、手動計測の使用を継続することができます。

  • 手動計測によってアプリケーションからカスタムスパンまたはメトリクスを生成している場合、計測の複雑さによっては、Application Signals を有効にした後に、データ生成の停止など、望ましくない動作が見られる可能性があります。OpenTelemetry で利用可能な設定の一部 (本セクションで後述する表内の設定を除く) を使用すると、既存のメトリクスまたはスパンの望ましい動作を維持できる場合があります。こうした設定の詳細については、OpenTelemetry ドキュメントの「SDK Configuration」を参照してください。

    例えば、OTEL_EXPORTER_OTLP_METRICS_ENDPOINT 設定と自己管理型の OpenTelemetry Collector インスタンスを使用することで、カスタムメトリクスを望ましい宛先に引き続き送信できる場合があります。

  • 環境変数やシステムプロパティの中には、Application Signals で使用してはならないものもあれば、次の表のガイダンスに従っている限り使用できるものもあります。詳細については、表内を参照してください。

環境変数 Application Signals での推奨設定

一般的な環境変数

OTEL_SDK_DISABLED

true に設定しないでください。

OTEL_TRACES_EXPORTER

otlp に設定する必要があります。

OTEL_LOGS_EXPORTER

他のログエクスポーターを無効にするには none に設定します。

OTEL_EXPORTER_OTLP_ENDPOINT

使用しないでください。

OTEL_EXPORTER_OTLP_TRACES_ENDPOINT

使用しないでください。

OTEL_ATTRIBUTE_COUNT_LIMIT

設定する場合は、CloudWatch Application Signals によってスパン属性をさらに 10 個ほど追加できるよう、十分に大きな値を指定する必要があります。

OTEL_EXPORTER_OTLP_PROTOCOL

http/protobuf に設定する必要があります。

OTEL_PROPAGATORS

設定する場合は、トレースを考慮して xray を指定する必要があります。

OTEL_TRACES_SAMPLER

設定する場合は、xray を指定して、一元化された X-Ray サンプリングを使用する必要があります。

ローカルサンプリングを使用するには、これを parentbased_traceidratio に設定し、OTEL_TRACES_SAMPLER_ARG でサンプリングレートを指定します。

OTEL_TRACES_SAMPLER_ARG

一元化された X-Ray トレースサンプルをデフォルト設定で使用している場合は、この変数は使用しないでください。

上記ではなくローカルサンプリングを使用している場合は、この変数にサンプリングレートを設定します。例えば、サンプリングレートが 5% の場合、0.05 と指定します。

Java 固有の環境変数

OTEL_JAVA_ENABLED_RESOURCE_PROVIDERS

設定する場合は、AWS のリソース検出機能も指定する必要があります。

Python 固有の環境変数

OTEL_PYTHON_CONFIGURATOR

使用する場合は、aws_configurator に設定する必要があります。

OTEL_PYTHON_DISTRO

使用する場合は、aws_distro に設定する必要があります。