O Application Signals é compatível e foi testado no Amazon EKS, no Kubernetes nativo, no Amazon ECS e no Amazon EC2. As instruções para a habilitação do Application Signals no Amazon EC2 devem funcionar em qualquer plataforma compatível com o agente do CloudWatch e o AWS Distro para OpenTelemetry, mas as instruções não foram testadas em outras plataformas.
Compatibilidade com Java
O Application Signals é compatível com as aplicações em Java e as mesmas bibliotecas e estruturas em Java que o AWS Distro para OpenTelemetry. Para obter mais informações, consulte Supported libraries, frameworks, application servers, and JVMs
As versões 8, 11 e 17 da JVM são compatíveis.
Compatibilidade com Python
Compatibilidade com Python
O Application Signals oferece suporte às mesmas bibliotecas e estruturas que o AWS Distro para OpenTelemetry. Para obter mais informações, consulte Supported packages em opentelemetry-python-contrib
As versões 3.8 e posteriores do Python são compatíveis.
Antes de habilitar o Application Signals para suas aplicações em Python, esteja ciente das considerações apresentadas a seguir.
Em algumas aplicações em contêineres, uma variável de ambiente
PYTHONPATH
ausente pode, às vezes, causar falhas na inicialização da aplicação. Para resolver isso, certifique-se de definir a variável de ambientePYTHONPATH
para o local do diretório de trabalho da sua aplicação. Isso ocorre devido a um problema conhecido com a instrumentação automática do OpenTelemetry. Para obter mais informações sobre esse problema, consulte Python autoinstrumentation setting of PYTHONPATH is not compliant. Para aplicações em Django, existem configurações adicionais necessárias, descritas na documentação do OpenTelemetry em Python
. Use o sinalizador
--noreload
para evitar o recarregamento automático.Defina a variável de ambiente
DJANGO_SETTINGS_MODULE
para o local do arquivosettings.py
da sua aplicação em Django. Isso garante que o OpenTelemetry possa acessar e se integrar adequadamente às suas configurações do Django.
Compatibilidade do .NET
O Application Signals é compatível com aplicações .NET com instrumentação do AWS Distro for Open Telemetry (ADOT) no Amazon EKS, Amazon EC2, Amazon ECS e Kubernetes em execução no Amazon EC2.
Esta versão é compatível com o .NET 6 e 8, além do .NET Framework 4.6.2 e das versões posteriores.
O Application Signals é compatível com aplicações .NET que estão sendo executadas em CPUs com arquitetura x86-64 ou ARM64, além de oferecer suporte aos sistemas operacionais Linux x64, Linux ARM64, Microsoft Windows Server 2022 x64 e Microsoft Windows Server 2019 x64.
Compatibilidade com Node.js
O Application Signals é compatível com as mesmas bibliotecas e estruturas para Node.js que o AWS Distro para OpenTelemetry. Para obter mais informações, consulte Supported instrumentations
Esta versão é compatível com as versões 14, 16, 18, 20 e 22 do Node.js.
Limitações conhecidas sobre o uso de ESM com o Node.js
O AWS Distro para OpenTelemetry no Node.js é compatível com dois sistemas de módulos: o ECMAScript Modules (ESM) e o CommonJS (CJS). Para habilitar o Application Signals, recomendamos o uso do formato de módulo CJS, pois o fornecimento de suporte para o módulo ESM em JavaScript no OpenTelemetry ainda é experimental e está em desenvolvimento. Para obter mais detalhes, consulte ECMAScript Modules vs. CommonJS
Para determinar se a aplicação está usando CJS, em vez de ESM, verifique se ela não atende às condições necessárias para habilitar o ESM. Para obter mais informações sobre essas condições, consulte Enabling
O AWS Distro para OpenTelemetry no Node.js disponibiliza suporte limitado ao formato de módulo ESM, com base no suporte experimental ao ESM fornecido em JavaScript pelo OpenTelemetry. Essas limitações significam que:
A versão do Node.js deve ser 18.19.0 ou versões posteriores.
A aplicação do Node.js que você deseja instrumentar deve incluir
@aws/aws-distro-opentelemetry-node-autoinstrumentation
e@opentelemetry/instrumentation
como dependências.A aplicação do Node.js que você deseja instrumentar deve ser iniciada com a seguinte opção de nó:
NODE_OPTIONS=' --import @aws/aws-distro-opentelemetry-node-autoinstrumentation/register --experimental-loader=@opentelemetry/instrumentation/hook.mjs'
Para habilitar o Application Signals com o formato do módulo ESM no Node.js, fornecemos diferentes configurações para plataformas distintas:
Amazon EKS: Configuração de uma aplicação do Node.js usando o formato de módulo ESM
Amazon ECS com estratégia de sidecar: Setting up a Node.js application with the ESM module format
Amazon ECS com estratégia de daemon: Setting up a Node.js application with the ESM module format
Amazon ECS com AWS CDK: Configuração de uma aplicação do Node.js usando o formato de módulo ESM
Amazon EC2: Setting up a Node.js application with the ESM module format
Kubernetes: Configuração de uma aplicação do Node.js usando o formato de módulo ESM
Problemas conhecidos
Sabemos que a coleção de métricas de runtime na versão v1.32.5 do Java SDK não funciona com aplicações que usam o JBoss Wildfly. Esse problema se estende ao complemento Amazon CloudWatch Observability EKS, afetando as versões 2.3.0-eksbuild.1
até 2.5.0-eksbuild.1
.
Se você for afetado, faça o downgrade da versão ou desabilite a coleção de métricas de runtime adicionando a variável de ambiente OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false
à sua aplicação.