Migración de la instrumentación de rayos X a la instrumentación OpenTelemetry - AWS X-Ray

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Migración de la instrumentación de rayos X a la instrumentación OpenTelemetry

nota

Aviso de SDK/Daemon mantenimiento de X-Ray: el 25 de febrero de 2026, el AWS X-Ray SDKs/Daemon entrará en modo de mantenimiento, donde AWS se limitarán las versiones de X-Ray SDK y Daemon para abordar únicamente los problemas de seguridad. Para obtener más información sobre la cronología del soporte, consulte Cronología de X-Ray SDK y Daemon Support.

X-Ray está pasando a ser OpenTelemetry (OTel) su principal estándar de instrumentación para el rastreo y la observabilidad de las aplicaciones. Este cambio estratégico se alinea AWS con las mejores prácticas de la industria y ofrece a los clientes una solución más completa, flexible y preparada para el futuro para sus necesidades de observabilidad. OpenTelemetrySu amplia adopción en la industria permite rastrear las solicitudes en diversos sistemas, incluidos aquellos externos AWS que pueden no integrarse directamente con X-Ray.

En este capítulo se ofrecen recomendaciones para una transición fluida y se hace hincapié en la importancia de migrar a soluciones OpenTelemetry basadas en sistemas para garantizar el soporte y el acceso continuos a las funciones más recientes en materia de observabilidad e instrumentación de aplicaciones.

Se recomienda adoptarla OpenTelemetry como solución de observabilidad para instrumentar su aplicación.

Comprensión OpenTelemetry

OpenTelemetry es un marco de observabilidad estándar del sector que proporciona protocolos y herramientas estandarizados para recopilar datos de telemetría. Ofrece un enfoque unificado para instrumentar, generar, recopilar y exportar datos de telemetría como métricas, registros y rastros.

Al migrar de X-Ray SDKs a OpenTelemetry, obtiene los siguientes beneficios:

  • Soporte mejorado con el marco y la instrumentación de bibliotecas

  • Soporte para lenguajes de programación adicionales

  • Capacidades de instrumentación automática

  • Opciones de configuración de muestreo flexibles

  • Recopilación unificada de métricas, registros y rastros

El OpenTelemetry recopilador ofrece más opciones para los formatos de recopilación de datos y los destinos de exportación que el daemon X-Ray.

OpenTelemetry soporte en AWS

AWS proporciona múltiples soluciones para trabajar con OpenTelemetry:

  • AWS Distro para OpenTelemetry

    Exporte OpenTelemetry trazas como segmentos a X-Ray.

    Para obtener más información, consulte AWS Distro for OpenTelemetry.

  • CloudWatch Señales de aplicación

    Exporte OpenTelemetry trazas y métricas personalizadas para supervisar el estado de las aplicaciones.

    Para obtener más información, consulte Trabajo con señales de aplicaciones.

  • CloudWatch OTel Punto final

    Exporte OpenTelemetry las trazas a X-Ray mediante el OTel punto final HTTP con OpenTelemetry instrumentación nativa.

    Para obtener más información, consulte Uso de puntos OTel finales.

Utilización con OpenTelemetry AWS CloudWatch

AWS CloudWatch admite los OpenTelemetry rastreos a través de la instrumentación de aplicaciones del lado del cliente y de AWS CloudWatch servicios nativos, como Application Signals, Trace, Map, Metrics y Logs. Para obtener más información, consulte OpenTelemetry.

Comprensión OpenTelemetry de los conceptos de migración

La siguiente tabla mapea los conceptos de X-Ray con sus OpenTelemetry equivalentes. La comprensión de estos mapeos le ayuda a traducir su instrumentación de rayos X existente a: OpenTelemetry

Concepto de X-Ray OpenTelemetry concepto
Grabadora de X-Ray Proveedor de rastreador y rastreadores
Complementos del servicio Detectores de recursos
Segmento (Servidor) Intervalo
Subsegmento Intervalo (sin servidor)
Reglas de muestreo de X-Ray OpenTelemetry Muestreo (personalizable)
Emisor de X-Ray Exportador de intervalos (personalizable)
Anotaciones/metadatos Atributos
Instrumentación de biblioteca Instrumentación de biblioteca
Contexto de rastro de X-Ray Contexto del intervalo
Propagación de contexto del rastro de X-Ray Propagación de contexto de rastro de W3C
Muestreo del rastro de X-Ray OpenTelemetry Muestreo de rastros
N/A Procesamiento del intervalo
N/A Equipaje
Daemon de X-Ray OpenTelemetry Coleccionista
nota

Para obtener más información sobre OpenTelemetry los conceptos, consulte la OpenTelemetry documentación.

Comparación de características

En la tabla siguiente se muestran las características admitidas en ambos servicios. Utilice esta información para identificar las brechas que necesite abordar durante la migración:

Característica Instrumentación de X-Ray OpenTelemetry instrumentación
Instrumentación de biblioteca Soportado compatible
Muestreo de X-Ray compatible

Compatible con java/.net/GO OTel

Compatible con ADOT Java/. NET/Python/Node.js

Propagación de contexto del rastro de X-Ray Soportado compatible
Detección de recursos Soportado compatible
Anotaciones de segmentos Soportado compatible
Metadatos del segmento Soportado compatible
Instrumentación automática sin código Compatible con Java

Compatible con OTel Java/. NET/Python/Node.js

Compatible con ADOT Java/. NET/Python/Node.js

Creación de rastros manuales Soportado compatible

Instalación y configuración del rastro

Para crear trazas OpenTelemetry, necesitas un rastreador. Para obtener un rastreador, debe inicializar un proveedor de rastreadores en la aplicación. Esto es similar a la forma en que se utiliza la grabadora de X-Ray para configurar X-Ray y crear segmentos y subsegmentos en un rastro de X-Ray.

nota

El OpenTelemetry Tracer Provider ofrece más opciones de configuración que el grabador de rayos X.

Descripción de la estructura de datos de rastros

Tras comprender los conceptos básicos y las asignaciones de características, podrá obtener información sobre los detalles específicos de la implementación, como la estructura de los datos de rastros y el muestreo.

OpenTelemetry utiliza tramos en lugar de segmentos y subsegmentos para estructurar los datos de rastreo. Cada intervalo incluye los siguientes componentes:

  • Name

  • ID único

  • Marcas de tiempo de inicio y finalización

  • Tipo de intervalo

  • Contexto del intervalo

  • Atributos (metadatos clave-valor)

  • Eventos (registros con fecha y hora)

  • Enlaces a otros intervalos

  • Información del estado

  • Referencias de intervalo principal

Al migrar a OpenTelemetry, los tramos se convierten automáticamente en segmentos o subsegmentos de X-Ray. Esto garantiza que su experiencia de CloudWatch consola actual permanezca inalterada.

Uso de atributos de intervalo

El X-Ray SDK ofrece dos formas de agregar datos a segmentos y subsegmentos:

Anotaciones

Pares clave-valor que se indexan para filtrar y buscar

Metadatos

Pares clave-valor que contienen datos complejos que no están indexados para la búsqueda

De forma predeterminada, los OpenTelemetry atributos de espacio se convierten en metadatos en los datos sin procesar de X-Ray. Para convertir atributos específicos en anotaciones, agregue sus claves a la lista de atributos aws.xray.annotations.

Detección de recursos en el entorno

OpenTelemetry usa Resource Detectors para recopilar metadatos sobre los recursos que generan datos de telemetría. Estos metadatos se almacenan como atributos de recurso. Por ejemplo, una entidad que produce telemetría podría ser un clúster de Amazon ECS o una EC2 instancia de Amazon, y los atributos de recursos que se pueden registrar desde estas entidades pueden incluir el ARN del clúster de Amazon ECS o el ID de instancia de Amazon EC2 .

Administración de las estrategias de muestreo

El muestreo de rastros le ayuda a administrar los costos al recopilar datos de un subconjunto representativo de solicitudes en lugar de todas las solicitudes. OpenTelemetry Tanto X-Ray como X-Ray admiten el muestreo, pero lo implementan de manera diferente.

nota

El muestreo de menos del 100 % de los rastros reduce los costos de observabilidad y, al mismo tiempo, mantiene una visión significativa del rendimiento de la aplicación.

OpenTelemetry proporciona varias estrategias de muestreo integradas y le permite crear estrategias personalizadas. También puede configurar un muestreador remoto de rayos X en algunos lenguajes del SDK para utilizar las reglas de muestreo de rayos X. OpenTelemetry

Las estrategias de muestreo adicionales OpenTelemetry son las siguientes:

  • Muestreo basado en el principal: respeta la decisión de muestreo del intervalo principal antes de aplicar estrategias de muestreo adicionales

  • Muestreo basado en la proporción de rastros: >Muestrea aleatoriamente un porcentaje específico de intervalos

  • Muestreo de cola: aplica las reglas de muestreo para completar las trazas en el OpenTelemetry colector

  • Muestreadores personalizados: implemente su propia lógica de muestreo mediante la interfaz de muestreo

Para obtener información sobre las reglas de muestreo de X-Ray, consulte Reglas de muestreo en la consola de X-Ray

Para obtener información sobre el muestreo de OpenTelemetry la cola, consulte el procesador de muestreo de la cola

Administración del contexto de rastros

X-Ray SDKs gestiona el contexto del segmento para gestionar correctamente las relaciones padre-hijo entre los segmentos y subsegmentos de una traza. OpenTelemetry utiliza un mecanismo similar para garantizar que los tramos tengan el intervalo principal correcto. Almacena y propaga los datos de rastreo en todo el contexto de una solicitud. Por ejemplo, cuando la aplicación procese una solicitud y cree un intervalo de servidor que represente esa solicitud, OpenTelemetry almacenará el intervalo de servidores en el OpenTelemetry contexto para que, cuando se cree un intervalo secundario, ese intervalo secundario pueda hacer referencia al intervalo del contexto como su principal.

Propagación del contexto de rastro

Tanto X-Ray como yo OpenTelemetry utilizan encabezados HTTP para propagar el contexto de rastreo en todos los servicios. Esto le permite vincular los datos de rastros generados por diferentes servicios y mantener las decisiones de muestreo.

El X-Ray SDK propaga automáticamente el contexto de rastro mediante el encabezado de rastro de X-Ray. Cuando un servicio llama a otro, el encabezado de rastro contiene el contexto necesario para mantener las relaciones principal-secundario entre los rastros.

OpenTelemetry admite varios formatos de encabezados de rastreo para la propagación del contexto, entre los que se incluyen:

  • Contexto de rastro de W3C (predeterminado)

  • Encabezado de rastro de X-Ray

  • Otros formatos personalizados

nota

Puede configurarlo OpenTelemetry para usar uno o más formatos de encabezado. Por ejemplo, utilice el propagador de rayos X para enviar el contexto de rastreo a AWS los servicios que admiten el rastreo de rayos X.

Configure y utilice el propagador de rayos X para permitir el rastreo entre AWS los servicios. Esto le permite propagar el contexto de rastros a los puntos de conexión de API Gateway y otros servicios compatibles con X-Ray.

Uso de la instrumentación de biblioteca

Tanto X-Ray como OpenTelemetry yo proporcionan instrumentación de biblioteca que requiere cambios mínimos en el código para añadir el rastreo a sus aplicaciones.

X-Ray proporciona funcionalidades de instrumentación de biblioteca. Esto le permite agregar instrumentaciones de X-Ray prediseñadas con cambios mínimos en el código de la aplicación. Estas instrumentaciones son compatibles con bibliotecas específicas, como el AWS SDK y los clientes HTTP, así como con marcos web como Spring Boot o Express.js.

OpenTelemetryLas bibliotecas de instrumentación generan extensiones detalladas para sus bibliotecas mediante enlaces a las bibliotecas o mediante la modificación automática del código, lo que requiere cambios mínimos en el código.

Para determinar si Library Instrumentations OpenTelemetry es compatible con su biblioteca, búsquela en el OpenTelemetry Registro de Registry. OpenTelemetry

Exportación de rastros

X-Ray y OpenTelemetry utilizan diferentes métodos para exportar los datos de rastreo.

Exportación de rastros de X-Ray

Los X-Ray SDKs utilizan un emisor para enviar datos de rastreo:

  • Envía segmentos y subsegmentos al X-Ray Daemon

  • Utiliza UDP para E/S sin bloqueo

  • Configurado de forma predeterminada en el SDK

OpenTelemetry exportación de trazas

OpenTelemetry utiliza Span Exporters configurables para enviar datos de rastreo:

  • Usa los protocolos http/protobuf o grpc

  • Exporta los tramos a los puntos finales supervisados por el OpenTelemetry recopilador o el agente CloudWatch

  • Permite configurar los exportadores de forma personalizada

Procesamiento y reenvío de rastros

Tanto X-Ray como OpenTelemetry yo proporcionan componentes para recibir, procesar y reenviar datos de rastreo.

Procesamiento de rastros de X-Ray

El X-Ray Daemon gestiona el procesamiento de rastros:

  • Escucha el tráfico UDP de X-Ray SDKs

  • Segmentos y subsegmentos por lotes

  • Carga lotes al servicio de X-Ray

OpenTelemetry procesamiento de trazas

El OpenTelemetry recopilador gestiona el procesamiento de trazas:

  • Recibe rastros de servicios instrumentados

  • Procesa y, opcionalmente, modifica los datos de rastros

  • Envía los rastros procesados a varios backends, incluido X-Ray

nota

El AWS CloudWatch agente también puede recibir y enviar OpenTelemetry trazas a X-Ray. Para obtener más información, consulte Recopile métricas y rastreos con OpenTelemetry.

Procesamiento de intervalos (concepto OpenTelemetry específico)

OpenTelemetry utiliza los procesadores Span para modificar los intervalos a medida que se crean:

  • Permite leer y modificar los intervalos al crearlos o completarlos

  • Permite una lógica personalizada para el manejo de los intervalos

Equipaje (OpenTelemetryconcepto específico)

OpenTelemetryLa función de equipaje permite la propagación de datos clave-valor:

  • Permite pasar datos arbitrarios junto con el contexto de rastro

  • Útil para propagar información específica de la aplicación más allá de los límites del servicio

Para obtener información sobre el OpenTelemetry recopilador, consulte el recopilador OpenTelemetry

Para obtener información acerca de los conceptos de X-Ray, consulte Conceptos de X-Ray en la Guía para desarrolladores de X-Ray

Información general sobre la migración

En esta sección, se proporciona información general acerca de los cambios de código necesarios para la migración. La siguiente lista contiene una guía específica para cada idioma y los pasos de migración de X-Ray Daemon.

importante

Para migrar completamente de la instrumentación de rayos X a OpenTelemetry la instrumentación, necesita:

  1. Reemplace el uso del SDK de X-Ray por una OpenTelemetry solución

  2. Sustituya el X-Ray Daemon por el CloudWatch agente o el OpenTelemetry colector (con X-Ray Exporter)

Recomendaciones para aplicaciones nuevas y existentes

Para las aplicaciones nuevas y existentes, se recomienda utilizar las siguientes soluciones para habilitar el rastreo en las aplicaciones:

Instrumentación
  • OpenTelemetry SDKs

  • AWS Distribución para instrumentación OpenTelemetry

Recopilación de datos
  • OpenTelemetry Coleccionista

  • CloudWatch Agente

Tras migrar a soluciones OpenTelemetry basadas en bases, su CloudWatch experiencia seguirá siendo la misma. Podrá seguir viendo sus trazas en el mismo formato en las páginas de trazas y mapas de trazas de la CloudWatch consola, o recuperar sus datos de rastreo a través del X-Ray APIs.

Rastreo de los cambios de configuración

Debe reemplazar la configuración de X-Ray por una OpenTelemetry configuración.

Comparación de X-Ray y OpenTelemetry configuración
Característica X-Ray SDK OpenTelemetry
Configuraciones predeterminadas
  • Muestreo centralizado de X-Ray

  • Propagación de contexto del rastro de X-Ray

  • Exportación de rastros a X-Ray Daemon

  • Exportación de trazas a un OpenTelemetry recopilador o CloudWatch agente (HTTP/gRPC)

  • Propagación de contexto de rastro de W3C

Configuraciones manuales
  • Reglas de muestreo locales

  • Complementos de detección de recursos

  • Muestreo de X-Ray (es posible que no esté disponible en todos los idiomas)

  • Detección de recursos

  • Propagación de contexto del rastro de X-Ray

Cambios de instrumentación de bibliotecas

Actualice su código para usar OpenTelemetry Library Instrumentation en lugar de X-Ray Library Instrumentation para AWS SDK, clientes HTTP, marcos web y otras bibliotecas. Esto genera OpenTelemetry trazas en lugar de trazas de X-Ray.

nota

Los cambios en el código varían según el idioma y la biblioteca. Consulte las guías de migración de idiomas específicos para obtener instrucciones detalladas.

Cambios en la instrumentación del entorno de Lambda

Para utilizarlas OpenTelemetry en las funciones de Lambda, elija una de estas opciones de configuración:

  1. Utilice una capa de Lambda de instrumentación automática:

  2. Configuración manual OpenTelemetry para la función Lambda:

    • Configuración de un procesador de intervalos simple con un exportador de intervalos de X-Ray UDP

    • Configuración de un propagador de X-Ray Lambda

Creación manual de datos de rastros

Sustituya los segmentos y subsegmentos de X-Ray por OpenTelemetry Spans:

  • Usa un OpenTelemetry rastreador para crear tramos

  • Agregación de atributos a intervalos (equivalentes a anotaciones y metadatos de X-Ray)

importante

Cuando se envía a X-Ray:

  • Los intervalos de servidor se convierten en segmentos de X-Ray

  • Otros intervalos se convierten en subsegmentos de X-Ray

  • Los atributos se convierten en metadatos de forma predeterminada

Para convertir un atributo en una anotación, agregue su clave a la lista de atributos de aws.xray.annotations. Para obtener más información, consulte Habilitar anotaciones de X-Ray personalizadas.

Migración de X-Ray Daemon a AWS CloudWatch agente o recopilador OpenTelemetry

Puede utilizar el CloudWatch agente o el OpenTelemetry recopilador para recibir las trazas de sus aplicaciones instrumentadas y enviarlas a X-Ray.

nota

La versión 1.300025.0 del CloudWatch agente y las versiones posteriores pueden recopilar trazas. OpenTelemetry El uso del CloudWatch agente en lugar del Demonio X-Ray reduce la cantidad de agentes que hay que gestionar. Para obtener más información, consulte Recopilación de métricas, registros y seguimientos con el CloudWatch agente.

Migración en Amazon EC2 o en servidores locales

importante

Detenga el proceso de X-Ray Daemon antes de utilizar el CloudWatch agente o el OpenTelemetry recopilador para evitar conflictos en los puertos.

Configuración del X-Ray Daemon existente

Instalación del daemon

Su uso actual de X-Ray Daemon se instaló mediante uno de estos métodos:

Instalación manual

Descargue y ejecute el archivo ejecutable desde el bucket de Amazon S3 de X-Ray daemon.

Instalación automática

Utilice este script para instalar el daemon al lanzar una instancia:

#!/bin/bash curl https://s3.us-east-2.amazonaws.com/aws-xray-assets.us-east-2/xray-daemon/aws-xray-daemon-3.x.rpm \ -o /home/ec2-user/xray.rpm yum install -y /home/ec2-user/xray.rpm
Configuración del daemon de

Su uso actual de X-Ray Daemon se configuró mediante:

  • Argumentos de línea de comandos

  • Archivo de configuración () xray-daemon.yaml

ejemplo Uso de un archivo de configuración
./xray -c ~/xray-daemon.yaml
Ejecutar el demonio

Su uso actual de X-Ray Daemon se inició con el siguiente comando:

~/xray-daemon$ ./xray -o -n us-east-1
Eliminación del daemon

Para eliminar el Demonio X-Ray de tu EC2 instancia de Amazon:

  1. Detenga el servicio de daemon:

    systemctl stop xray
  2. Elimine el archivo de configuración:

    rm ~/path/to/xray-daemon.yaml
  3. Si está configurado, elimine el archivo de registro:

    nota

    La ubicación del archivo de registro depende de la configuración:

    • Configuración de línea de comandos: /var/log/xray-daemon.log

    • Archivo de configuración: compruebe la configuración de LogPath

Configuración del agente CloudWatch

Instalación del agente

Para obtener instrucciones de instalación, consulte Instalación del CloudWatch agente en un servidor local.

Configuración del agente
  1. Cree un archivo de configuración para habilitar la recopilación de rastros. Para obtener más información, consulte Crear el archivo de configuración del CloudWatch agente.

  2. Configure permisos de IAM:

    • Adjunte un rol de IAM o especifique las credenciales del agente. Para obtener más información, consulte Configuración de roles de IAM.

    • Asegúrese de que el rol o las credenciales incluyan el permiso xray:PutTraceSegments.

Cómo iniciar el agente de

Para obtener instrucciones sobre cómo iniciar el agente, consulte Iniciar el CloudWatch agente mediante la línea de comandos.

Configuración del OpenTelemetry recopilador

Instalación del recopilador

Descargue e instale el OpenTelemetry recopilador para su sistema operativo. Para obtener instrucciones, consulte Instalación del recopilador.

Configuración del recopilador

Configure los siguientes componentes en el recopilador:

  • extensión awsproxy

    Necesario para el muestreo de X-Ray

  • OTel receptores

    Recopila los rastros de la aplicación

  • exportador de xray

    Envía rastros a X-Ray

ejemplo Ejemplo de configuración del recopilador: .yaml otel-collector-config
extensions: awsproxy: endpoint: 127.0.0.1:2000 health_check: receivers: otlp: protocols: grpc: endpoint: 127.0.0.1:4317 http: endpoint: 127.0.0.1:4318 processors: batch: exporters: awsxray: region: 'us-east-1' service: pipelines: traces: receivers: [otlp] exporters: [awsxray] extensions: [awsproxy, health_check]
importante

Configure AWS las credenciales con el xray:PutTraceSegments permiso. Para obtener más información, consulte Especificar credenciales.

Inicio del recopilador

Ejecute el recopilador con el archivo de configuración:

otelcol --config=otel-collector-config.yaml

Migración en Amazon ECS

importante

El rol de la tarea debe tener el permiso xray:PutTraceSegments de todos los recopiladores que utilice.

Detenga cualquier contenedor de X-Ray Daemon existente antes de ejecutar el contenedor del CloudWatch agente o del OpenTelemetry recopilador en el mismo host para evitar conflictos de puertos.

Uso del agente CloudWatch

  1. Obtenga la imagen de Docker de la Galería pública de Amazon ECR.

  2. Cree un archivo de configuración denominadocw-agent-otel.json:

    { "traces": { "traces_collected": { "xray": { "tcp_proxy": { "bind_address": "0.0.0.0:2000" } }, "otlp": { "grpc_endpoint": "0.0.0.0:4317", "http_endpoint": "0.0.0.0:4318" } } } }
  3. Almacene la configuración en el almacén de parámetros de Systems Manager:

    1. Abra el icono https://console.aws.amazon.com/systems-manager/

    2. Elija Crear parámetro

    3. Escriba los siguientes valores:

      • Nombre: /ecs/cwagent/otel-config

      • Nivel: estándar

      • Tipo: cadena

      • Tipo de datos: texto

      • Valor: [Pegue aquí la configuración cw-agent-otel .json]

  4. Cree una definición de tarea mediante el modo de red puente:

    En la definición de tarea, la configuración depende del modo de red que se utilice. El modo de red puente es la opción predeterminada y se puede utilizar en la VPC predeterminada. En una red puente, defina la variable de OTEL_EXPORTER_OTLP_TRACES_ENDPOINT entorno para que indique al OpenTelemetry SDK cuál es el punto final y el puerto del CloudWatch agente. También debes crear un enlace desde el contenedor de tu aplicación al contenedor de Collector para que los seguimientos se envíen desde el OpenTelemetry SDK de tu aplicación al contenedor de Collector.

    ejemplo CloudWatch definición de la tarea del agente
    { "containerDefinitions": [ { "name": "cwagent", "image": "public.ecr.aws/cloudwatch-agent/cloudwatch-agent:latest", "portMappings": [ { "containerPort": 4318, "hostPort": 4318, "protocol": "tcp" }, { "containerPort": 4317, "hostPort": 4317, "protocol": "tcp" }, { "containerPort": 2000, "hostPort": 2000, "protocol": "tcp" } ], "secrets": [ { "name": "CW_CONFIG_CONTENT", "valueFrom": "/ecs/cwagent/otel-config" } ] }, { "name": "application", "image": "APPLICATION_IMAGE", "links": ["cwagent"], "environment": [ { "name": "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", "value": "http://cwagent:4318/v1/traces" } ] } ] }

Para obtener más información, consulte Implementación del CloudWatch agente para recopilar métricas a EC2 nivel de instancia de Amazon en Amazon ECS.

Uso del recopilador OpenTelemetry

  1. Obtenga la imagen de Docker otel/opentelemetry-collector-contrib de Docker Hub.

  2. Cree un archivo de configuración denominado otel-collector-config.yaml con el mismo contenido que se muestra en la sección EC2 Configuración del recopilador de Amazon, pero actualice los puntos de enlace para usarlos 0.0.0.0 en lugar de127.0.0.1.

  3. Para utilizar esta configuración en Amazon ECS, puede almacenar la configuración en el almacén de parámetros de Systems Manager. En primer lugar, vaya a la consola del almacén de parámetros de Systems Manager y elija Crear nuevo parámetro. Cree un nuevo parámetro con la siguiente información:

    • Nombre:/ecs/otel/config(se hará referencia a este nombre en la definición de tareas del recopilador)

    • Nivel: estándar

    • Tipo: cadena

    • Tipo de datos: texto

    • Valor: [Pegue aquí la configuración otel-collector-config .yaml]

  4. Cree una definición de tarea para implementar el OpenTelemetry recopilador utilizando el modo de red puente como ejemplo.

    En la definición de tarea, la configuración depende del modo de red que se utilice. El modo de red puente es la opción predeterminada y se puede utilizar en la VPC predeterminada. En una red puente, defina la variable de OTEL_EXPORTER_OTLP_TRACES_ENDPOINT entorno para indicar al OpenTelemetry SDK cuáles son el punto final y el puerto del OpenTelemetry recopilador. También debe crear un enlace desde el contenedor de la aplicación al contenedor del recopilador para que las trazas se envíen desde el OpenTelemetry SDK de la aplicación al contenedor del recopilador.

    ejemplo OpenTelemetry definición de tareas de recopilación
    { "containerDefinitions": [ { "name": "otel-collector", "image": "otel/opentelemetry-collector-contrib", "portMappings": [ { "containerPort": 2000, "hostPort": 2000 }, { "containerPort": 4317, "hostPort": 4317 }, { "containerPort": 4318, "hostPort": 4318 } ], "command": [ "--config", "env:SSM_CONFIG" ], "secrets": [ { "name": "SSM_CONFIG", "valueFrom": "/ecs/otel/config" } ] }, { "name": "application", "image": "APPLICATION_IMAGE", "links": ["otel-collector"], "environment": [ { "name": "OTEL_EXPORTER_OTLP_TRACES_ENDPOINT", "value": "http://otel-collector:4318/v1/traces" } ] } ] }

Migración en Elastic Beanstalk

importante

Detenga el proceso de X-Ray Daemon antes de utilizar el CloudWatch agente para evitar conflictos en los puertos.

La integración actual de X-Ray Daemon se activó al usar la consola de Elastic Beanstalk o mediante la configuración de X-Ray Daemon en el código de origen de la aplicación con un archivo de configuración.

Uso del agente CloudWatch

En la plataforma Amazon Linux 2, configure el CloudWatch agente mediante un archivo .ebextensions de configuración:

  1. Creación de un directorio llamado .ebextensions en la raíz del proyecto

  2. Cree un archivo llamado cloudwatch.config en el directorio .ebextensions con el contenido siguiente:

    files: "/opt/aws/amazon-cloudwatch-agent/etc/config.json": mode: "0644" owner: root group: root content: | { "traces": { "traces_collected": { "otlp": { "grpc_endpoint": "12.0.0.1:4317", "http_endpoint": "12.0.0.1:4318" } } } } container_commands: start_agent: command: /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a append-config -c file:/opt/aws/amazon-cloudwatch-agent/etc/config.json -s
  3. Incluya el directorio .ebextensions en el paquete de código fuente de la aplicación cuando implemente

Para obtener más información sobre los archivos de configuración de Elastic Beanstalk, consulte Personalización avanzada del entorno con archivos de configuración.