OpenTelemetry 호환성 고려 사항 - Amazon CloudWatch

OpenTelemetry 호환성 고려 사항

CloudWatch Application Signals로 애플리케이션을 온보딩하려면 먼저 애플리케이션에서 기존 애플리케이션 성능 모니터링 솔루션을 완전히 제거하는 것이 좋습니다. 여기에는 모든 계측 코드 및 구성 제거가 포함됩니다.

Application Signals는 OpenTelemetry 계측을 사용하지만 기존 OpenTelemetry 계측 또는 구성과의 호환성이 보장되지는 않습니다. 최상의 시나리오에서는 사용자 지정 지표와 같은 일부 OpenTelemetry 기능을 유지할 수 있습니다. 하지만 세부 정보는 다음 섹션을 참조하세요.

이미 OpenTelemetry를 사용하고 있는 경우 고려할 사항

애플리케이션에서 이미 OpenTelemetry를 사용하고 있는 경우 이 섹션의 나머지 부분에는 Application Signals와의 호환성을 확보하기 위한 중요한 정보가 포함되어 있습니다.

  • Application Signals에 대해 애플리케이션을 활성화하기 전에 애플리케이션에서 OpenTelemetry 기반의 다른 자동 계측 에이전트 삽입을 제거해야 합니다. 이렇게 하면 구성 충돌을 방지하는 데 도움이 됩니다. 호환되는 OpenTelemetry API를 Application Signals와 함께 사용하여 수동 계측을 계속 사용할 수 있습니다.

  • 수동 계측을 사용하여 애플리케이션에서 사용자 지정 범위 또는 지표를 생성하는 경우 계측의 복잡도에 따라 Application Signals를 활성화하면 데이터 생성이 중단되거나 기타 원치 않는 동작이 발생할 수 있습니다. OpenTelemetry에서 사용 가능한 일부 구성(이 섹션 뒷부분의 표에 언급된 구성 제외)을 사용하여 기존 지표 또는 범위의 원하는 동작을 유지할 수 있습니다. 이러한 구성에 대한 자세한 내용은 OpenTelemetry 설명서의 SDK Configuration을 참조하세요.

    예를 들어, OTEL_EXPORTER_OTLP_METRIC_ENDPOINT 구성 및 자체 관리형 OpenTelemetry Collector 인스턴스를 사용하면 사용자 지정 지표를 원하는 대상으로 계속 전송할 수 있습니다.

  • 일부 환경 변수 또는 시스템 속성은 Application Signals와 함께 사용해서는 안 되지만, 표의 지침을 따르는 한 다른 환경 변수 또는 시스템 속성은 사용할 수 있습니다. 자세한 내용은 다음 표를 참조하세요.

환경 변수 Application Signals 사용 시 권장 사항

일반 환경 변수

OTEL_SDK_DISABLED

true로 설정하면 안 됩니다.

OTEL_TRACES_EXPORTER

otlp로 설정해야 합니다.

OTEL_LOGS_EXPORTER

다른 로그 내보내기를 비활성화하려면 none으로 설정합니다.

OTEL_EXPORTER_OTLP_ENDPOINT

사용하면 안 됩니다.

OTEL_EXPORTER_OTLP_METRIC_ENDPOINT

OTEL_EXPORTER_OTLP_METRIC_ENDPOINT 구성 및 자체 관리형 OpenTelemetry Collector 인스턴스를 사용하면 사용자 지정 지표를 원하는 대상으로 계속 전송할 수 있습니다.

.NET 설정에서 이 환경 변수는 수동 계측에서는 지원되지만, 자동 계측에서는 지원되지 않습니다. 이 환경 변수를 사용하여 자체 엔드포인트로 메트릭을 보낼 수 없습니다.

OTEL_EXPORTER_OTLP_TRACES_ENDPOINT

사용하면 안 됩니다.

OTEL_ATTRIBUTE_COUNT_LIMIT

설정된 경우 CloudWatch Application Signals에 의해 추가된 범위 속성을 약 10개 더 포함할 수 있을 만큼 높게 설정해야 합니다.

OTEL_EXPORTER_OTLP_PROTOCOL

http/protobuf로 설정해야 합니다.

OTEL_PROPAGATORS

설정된 경우 추적에 대한 xray를 포함해야 합니다.

OTEL_TRACES_SAMPLER

설정된 경우 X-Ray 중앙 집중식 샘플링을 사용하도록 xray여야 합니다.

로컬 샘플링을 사용하려면 이를 parentbased_traceidratio로 설정하고 OTEL_TRACES_SAMPLER_ARG에 샘플링 속도를 지정합니다.

OTEL_TRACES_SAMPLER_ARG

기본값인 X-Ray 중앙 집중식 트레이스 샘플을 사용하는 경우 이 변수를 사용해서는 안 됩니다.

로컬 샘플링을 대신 사용하는 경우 이 변수에 샘플링 속도를 설정합니다. 예를 들어 샘플링 속도가 5%인 경우 0.05입니다.

Java 환경 변수

OTEL_JAVA_ENABLED_RESOURCE_PROVIDERS

설정된 경우 AWS 리소스 탐지기를 포함해야 합니다.

Python 환경 변수

OTEL_PYTHON_CONFIGURATOR

사용되는 경우 aws_configurator로 설정해야 함

OTEL_PYTHON_DISTRO

사용되는 경우 aws_distro로 설정해야 함

Node.js별 환경 변수

OTEL_NODE_ENABLED_INSTRUMENTATIONS

모든 계측이 기본적으로 활성화되도록 이 변수를 지우는 것이 좋습니다.

OTEL_NODE_DISABLED_INSTRUMENTATIONS

이 변수를 지우는 것이 좋습니다. ADOT JavaScript SDK는 품질이 낮은 원격 분석 데이터를 억제하도록 기본값을 설정합니다.