Consideraciones sobre la compatibilidad de OpenTelemetry - Amazon CloudWatch

Consideraciones sobre la compatibilidad de OpenTelemetry

Para incorporar las aplicaciones a CloudWatch Application Signals, le recomendamos que elimine por completo cualquier solución de supervisión del rendimiento de las aplicaciones existente en la aplicación de antemano. Esto incluye eliminar cualquier configuración y código de instrumentación.

Si bien Application Signals utiliza instrumentación OpenTelemetry, no se garantiza que sea compatible con la instrumentación o configuración de OpenTelemetry existente. En el mejor de los casos, es posible que pueda conservar algunas de las funciones de OpenTelemetry, como las métricas personalizadas. Sin embargo, asegúrese de leer las secciones siguientes para obtener más detalles.

Consideraciones si ya usa OpenTelemetry

Si ya utiliza OpenTelemetry con la aplicación, el resto de esta sección contiene información importante para lograr la compatibilidad con Application Signals.

  • Antes de habilitar la aplicación para Application Signals, debe eliminar la inyección de cualquier otro agente de instrumentación automática basado en OpenTelemetry de su aplicación. Esto ayuda a evitar conflictos de configuración. Puede seguir utilizando la instrumentación manual mediante las API de OpenTelemetry compatibles junto con Application Signals.

  • Si utiliza instrumentación manual para generar intervalos o métricas personalizados a partir de la aplicación, según la complejidad de la instrumentación, habilitar Application Signals podría provocar que dejaran de generar datos o que se produjeran otros comportamientos no deseados. Es posible que pueda utilizar algunas de las configuraciones disponibles en OpenTelemetry (excepto las que se mencionan en la tabla que aparece más adelante en esta sección) para retener el comportamiento deseado de métricas o intervalos existentes. Para obtener más información sobre estas configuraciones, consulte SDK Configuration en la documentación de OpenTelemetry.

    Por ejemplo, si utiliza la configuración OTEL_EXPORTER_OTLP_METRIC_ENDPOINT y una instancia de OpenTelemetry Collector autoadministrada, es posible que pueda seguir enviando métricas personalizadas al destino que desee.

  • Algunas variables de entorno o propiedades del sistema no deben usarse con Application Signals, mientras que puede usar otras siempre que siga las instrucciones de la tabla. Para obtener más información, consulte la tabla siguiente.

Variable de entorno Recomendación con Application Signals

Variables de entorno generales

OTEL_SDK_DISABLED

No debe establecerse en true.

OTEL_TRACES_EXPORTER

Debe establecerse en otlp.

OTEL_LOGS_EXPORTER

Establézcalo en none para deshabilitar otros exportadores de registros.

OTEL_EXPORTER_OTLP_ENDPOINT

No debe usarse.

OTEL_EXPORTER_OTLP_METRIC_ENDPOINT

Por ejemplo, si utiliza la configuración OTEL_EXPORTER_OTLP_METRIC_ENDPOINT y una instancia de OpenTelemetry Collector autoadministrada, es posible que aún pueda enviar métricas personalizadas al destino que desee.

En la configuración de .NET, esta variable de entorno se admite en la instrumentación manual, pero no en la autoinstrumentación. No puede utilizar esta variable de entorno para enviar métricas a puntos de conexión propios.

OTEL_EXPORTER_OTLP_TRACES_ENDPOINT

No debe usarse.

OTEL_ATTRIBUTE_COUNT_LIMIT

Si se establece, debe tener un valor lo suficientemente alto como para incluir aproximadamente 10 atributos de tramo más añadidos por CloudWatch Application Signals.

OTEL_EXPORTER_OTLP_PROTOCOL

Debe establecerse en http/protobuf

OTEL_PROPAGATORS

Si está establecido, debe incluir xray para el seguimiento.

OTEL_TRACES_SAMPLER

Si está configurado, debe ser xray para utilizar la muestra de trazas centralizada de X-Ray.

Para utilizar el muestreo local, configúrelo en parentbased_traceidratio y especifique la frecuencia de muestreo en OTEL_TRACES_SAMPLER_ARG.

OTEL_TRACES_SAMPLER_ARG

Si utiliza la muestra de trazas centralizada de X-Ray por defecto, no debe utilizar esta variable.

Si, en su lugar, utiliza el muestreo local, establezca la frecuencia de muestreo en esta variable. Por ejemplo, 0.05 para una frecuencia de muestreo del 5 %.

Variables de entorno específicas de Java

OTEL_JAVA_ENABLED_RESOURCE_PROVIDERS

Si está configurado, debe incluir detectores AWS de recursos.

Variables de entorno específicas de Python

OTEL_PYTHON_CONFIGURATOR

Si se usa, debe configurarse en aws_configurator

OTEL_PYTHON_DISTRO

Si se usa, debe configurarse en aws_distro

Variables de entorno específicas de Node.js

OTEL_NODE_ENABLED_INSTRUMENTATIONS

Le recomendamos que borre esta variable para que todas las instrumentaciones estén habilitadas de forma predeterminada.

OTEL_NODE_DISABLED_INSTRUMENTATIONS

Recomendamos que borre esta variable. El SDK de JavaScript de ADOT establecerá un valor predeterminado para suprimir los datos de telemetría de baja calidad.