Application Signals supported systems
Application Signals is supported and tested on Amazon EKS, native Kubernetes, Amazon ECS, and Amazon EC2. The instructions for enabling Application Signals on Amazon EC2 should work on any platform that supports the CloudWatch agent and AWS Distro for OpenTelemetry, but the instructions have not been tested on other platforms.
Java compatibility
Application Signals supports Java applications, and supports the same Java
libraries and frameworks as the AWS Distro for
OpenTelemetry does. For more information, see
Supported libraries, frameworks, application servers, and JVMs
JVM versions 8, 11, and 17 are supported.
Python compatibility
Python compatibility
Application Signals supports the same libraries and frameworks as the AWS Distro for
OpenTelemetry does. For more information, see Supported packages at
opentelemetry-python-contrib
Python versions 3.8 and later are supported.
Before you enable Application Signals for your Python applications, be aware of the following considerations.
In some containerized applications, a missing
PYTHONPATH
environment variable can sometimes cause the application to fail to start. To resolve this, ensure that you set thePYTHONPATH
environment variable to the location of your application’s working directory. This is due to a known issue with OpenTelemetry auto-instrumentation. For more information about this issue, see Python autoinstrumentation setting of PYTHONPATH is not compliant. For Django applications, there are additional required configurations, which are outlined in the OpenTelemetry Python documentation
. Use the
--noreload
flag to prevent automatic reloading.Set the
DJANGO_SETTINGS_MODULE
environment variable to the location of your Django application’ssettings.py
file. This ensures that OpenTelemetry can correctly access and integrate with your Django settings.
.NET compatibility
Application Signals supports .NET applications with AWS Distro for Open Telemetry (ADOT) instrumentation on Amazon EKS, Amazon EC2, Amazon ECS and Kubernetes running on Amazon EC2.
This release supports .NET 6 and 8, and .NET Framework 4.6.2 and higher.
Application Signals supports .NET applications that are running on x86-64 or ARM64 CPUs, and supports the Linux x64, Linux ARM64, Microsoft Windows Server 2022 x64, and Microsoft Windows Server 2019 x64 operating systems.
Node.js compatibility
Application Signals supports the same Node.js
libraries and frameworks as the AWS Distro for
OpenTelemetry does. For more information, see
Supported instrumentations
This release supports Node.js versions 14, 16, 18, 20, and 22.
Known limitations about Node.js with ESM
The AWS Distro for Opentelemetry Node.js supports two module systems: ECMAScript Modules (ESM) and CommonJS (CJS). To enable Application Signals, we
recommend that you use the CJS module format because OpenTelemetry JavaScript’s support of ESM is experimental and a work in progress.
For more details, see
ECMAScript Modules vs. CommonJS
To determine if your application is using CJS and not ESM, ensure that your application does not fulfill the conditions to enable ESM. For more information
about these conditions, see
Enabling
The AWS Distro for Opentelemetry Node.js provides limited support for ESM based on OpenTelemetry JavaScript’s experimental support for ESM. This means the following:
The Node.js version must be 18.19.0 or later.
The Node.js application that you want to instrument must include
@aws/aws-distro-opentelemetry-node-autoinstrumentation
and@opentelemetry/instrumentation
as dependencies.The Node.js application that you want to instrument must start with the following node option:
NODE_OPTIONS=' --import @aws/aws-distro-opentelemetry-node-autoinstrumentation/register --experimental-loader=@opentelemetry/instrumentation/hook.mjs'
To enable Application Signals with Node.js ESM module format, we provide the different setup for different platforms:
Amazon EKS – Setting up a Node.js application with the ESM module format
Amazon ECS with sidecar strategy – Setting up a Node.js application with the ESM module format
Amazon ECS with daemon strategy – Setting up a Node.js application with the ESM module format
Amazon ECS with AWS CDK – Setting up a Node.js application with the ESM module format
Amazon EC2 – Setting up a Node.js application with the ESM module format
Kubernetes – Setting up a Node.js application with the ESM module format
Known issues
The runtime metrics collection in the Java SDK release v1.32.5 is known to not work with applications using JBoss Wildfly. This issue extends to the
Amazon CloudWatch Observability EKS add-on, affecting versions 2.3.0-eksbuild.1
through 2.5.0-eksbuild.1
.
If you are impacted, either downgrade the version or disable your runtime metrics collection by adding the
environment variable OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false
to your application.