Application Signals は、Amazon EKS、ネイティブ Kubernetes、Amazon ECS、および Amazon EC2 でサポートされ、テストされています。Amazon EC2 で Application Signals を有効にする手順は、CloudWatch エージェントと AWS Distro for OpenTelemetry をサポートするすべてのプラットフォームに適用されますが、その他のプラットフォームではテストされていません。
Java の互換性
Application Signals は Java アプリケーションをサポートしていますが、AWS Distro for OpenTelemetry と同じ Java ライブラリとフレームワークもサポートしています。詳細については、「Supported libraries, frameworks, application servers, and JVMs
JVM バージョン 8、11、17 がサポートされています。
Python の互換性
Python の互換性
Application Signals は、AWS Distro for OpenTelemetry と同じライブラリとフレームワークをサポートしています。詳細については、opentelemetry-python-contrib
Python バージョン 3.8 以降がサポートされています。
Python アプリケーションの Application Signals を有効にする前に、以下の考慮事項に注意してください。
コンテナ化されたアプリケーションの一部は、
PYTHONPATH
環境変数がないことが原因でアプリケーションが起動しなくなることがあります。これを解決するには、PYTHONPATH
環境変数をアプリケーションの作業ディレクトリの場所に設定します。これは OpenTelemetry の自動計測に関する既知の問題によるものです。この問題の詳細については、「Python autoinstrumentation setting of PYTHONPATH is not compliant」を参照してください。 Django アプリケーションには、OpenTelemetry Python ドキュメント
で概説されている追加の必須設定があります。 --noreload
フラグを使用すると、自動リロードを防ぐことができます。Django アプリケーションの
settings.py
ファイルの場所にDJANGO_SETTINGS_MODULE
環境変数を設定します。これにより、OpenTelemetry がユーザーの Django 設定に正しくアクセスして統合できるようになります。
.NET の互換性
Application Signals は、Amazon EC2 上で実行されている Amazon EKS、Amazon EC2、Amazon ECS、および Kubernetes の AWS Distro for Open Telemetry (ADOT) を計装した .NET アプリケーションをサポートしています。
このリリースは、.NET 6 と 8、さらに .Net framework 4.6.2 以降をサポートしています。
Application Signals は、x86-64 CPU または ARM64 CPU で実行されている .NET アプリケーションに加え、Linux x64、Linux ARM64、Microsoft Windows Server 2022 x64、および Microsoft Windows Server 2019 x64 オペレーティングシステムをサポートしています。
Node.js の互換性
Application Signals は、AWS Distro for OpenTelemetry と同じ Node.js ライブラリとフレームワークをサポートしています。詳細については、「Supported instrumentations
このリリースは、Node.js バージョン 14、16、18、20、22 をサポートしています。
EMS を使用する ENode.js における既知の制限事項
AWS Distro for Opentelemetry Node.js は、ECMAScript Modules (ESM) と CommonJS (CJS) の 2 つのモジュールシステムをサポートしています。OpenTelemetry JavaScript による ESM のサポートは実験的であり、現在開発中であるため、Application Signals を有効にするには、CJS モジュール形式を使用することをお勧めします。詳細については、GitHub の「ECMAScript Modules vs. CommonJS
お使いのアプリケーションで ESM ではなく CJS を使用しているかどうかは、アプリケーションが ESM を有効にするための条件を満たしていないことを確認することで判断できます。これらのコマンドの詳細については、Node.js ドキュメントの「Enabling
AWS Distro for Opentelemetry Node.js は、OpenTelemetry JavaScript の ESM の実験サポートに基づいて、ESM の限定的なサポートを提供します。これは以下を意味します。
Node.js のバージョンは 18.19.0 以降である必要があります。
インストルメントする Node.js アプリケーションには、
@aws/aws-distro-opentelemetry-node-autoinstrumentation
と@opentelemetry/instrumentation
を依存関係として含める必要があります。この Node.js アプリケーションは、次のノードオプションで開始する必要があります。
NODE_OPTIONS=' --import @aws/aws-distro-opentelemetry-node-autoinstrumentation/register --experimental-loader=@opentelemetry/instrumentation/hook.mjs'
Node.js ESM モジュール形式で Application Signals を有効にするにあたって、プラットフォームごとに異なるセットアップが提供されています。
Amazon EKS – ESM モジュール形式を使用する Node.js アプリケーションをセットアップする
Amazon ECS でのサイドカー戦略 – Setting up a Node.js application with the ESM module format
Amazon ECS でのデーモン戦略 – Setting up a Node.js application with the ESM module format
Amazon ECS での AWS CDK – ESM モジュール形式を使用する Node.js アプリケーションをセットアップする
Amazon EC2 – Setting up a Node.js application with the ESM module format
Kubernetes – ESM モジュール形式を使用する Node.js アプリケーションをセットアップする
既知の問題
Java SDK リリース v1.32.5 のランタイムメトリクスコレクションは、JBoss Wildfly を使用するアプリケーションで動作しないことが知られています。この問題は Amazon CloudWatch Observability EKS アドオンに及び、2.3.0-eksbuild.1
から 2.5.0-eksbuild.1
までのバージョンに影響します。
影響を受けた場合、バージョンをダウングレードするか、アプリケーションに OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false
環境変数を追加してランタイムメトリクス収集を無効にします。