지원되는 시스템 - Amazon CloudWatch

지원되는 시스템

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 라이브러리 및 프레임워크를 지원합니다. 자세한 내용은 지원되는 라이브러리, 프레임워크, 애플리케이션 서버 및 JVM을 참조하세요.

JVM 8, 11, 17, 21, 23 버전이 지원됩니다.

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_MODULE 환경 변수를 Django 애플리케이션 settings.py 파일의 위치로 설정합니다. 이렇게 하면 OpenTelemetry가 올바르게 액세스하여 Django 설정에 통합할 수 있습니다.

.NET 호환성

Application Signals에서는 Amazon EC2에서 실행되는 Amazon EKS, Amazon EC2, Amazon ECS 및 Kubernetes에서 AWS Distro for Open Telemetry(ADOT) 계측을 통해 .NET 애플리케이션을 지원합니다.

이 릴리스는 .NET 8, 9, 그리고 .NET Framework 4.6.2 이상을 지원합니다.

참고

AWS Distro for OpenTelemetry SDK 버전 1.7.0은 .NET 6을 지원하는 마지막 버전입니다. 모든 .NET 6의 새 버전은 지원되지 않습니다.

Application Signals에서는 x86-64 또는 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 라이브러리 및 프레임워크를 지원합니다. 자세한 내용은 지원되는 계측을 참조하세요.

이 릴리스는 Node.js 버전 14, 16, 18, 20, 22를 지원합니다.

ESM 사용 Node.js에 대해 알려진 제한 사항

AWS Distro for Opentelemetry Node.js는 ECMA 스크립트 모듈(ESM)과 CommonJS(CJS)라는 두 가지 모듈 시스템을 지원합니다. OpenTelemetry JavaScript의 ESM 지원은 실험작이고 작업이 진행 중이므로 Application Signals를 활성화하려면 CJS 모듈 형식을 사용하는 것이 좋습니다. 자세한 내용은 GitHub에서 ECMA 스크립트 모듈과 CommonJS 비교를 참조하세요.

애플리케이션이 ESM이 아닌 CJS를 사용하고 있는지 확인하려면 애플리케이션이 ESM 활성화 조건을 충족하지 않는지 확인하세요. 해당 조건들에 대한 자세한 내용은 Node.js 설명서의 활성화 부분을 참조하세요.

AWS Distro for Opentelemetry Node.js는 ESM에 대한 OpenTelemetry JavaScript의 실험 지원을 기반으로 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를 활성화하기 위해 다음과 같은 다양한 플랫폼에 다양한 설정을 제공합니다.

OpenTelemetry 호환성

CloudWatch Application Signals는 OpenTelemetry와 완벽하게 호환됩니다. 시작하는 방법에 대한 자세한 내용은 CloudWatch를 사용한 OpenTelemetry 섹션을 참조하세요. 더욱 통합된 환경을 원하는 경우(예: CloudWatch 에이전트를 AWS Distro for OpenTelemetry(ADOT) SDK와 함께 사용), Getting started with Application Signals 섹션을 참조하여 원하는 구성 방법을 찾아보세요.

알려진 문제

Java SDK 릴리스 v1.32.5의 런타임 지표 수집은 JBoss Wildfly를 사용하는 애플리케이션에서는 작동하지 않는 것으로 알려져 있습니다. 이 문제는 Amazon CloudWatch Observability EKS 추가 기능으로 확장되므로, 2.3.0-eksbuild.1~2.6.0-eksbuild.1 버전에 영향을 미칩니다. Java SDK 릴리스 v1.32.6 및 Amazon CloudWatch Observability EKS 추가 기능 버전 v3.0.0-eksbuild.1에서 문제가 수정되었습니다.

영향을 받은 경우 Java SDK 버전을 업그레이드하거나 애플리케이션에 환경 변수 OTEL_AWS_APPLICATION_SIGNALS_RUNTIME_ENABLED=false를 추가하여 런타임 지표 컬렉션을 비활성화합니다.