Application Signals supported systems - Amazon CloudWatch

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 the PYTHONPATH 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’s settings.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 on GitHub.

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 in the Node.js documentation.

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:

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.