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

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 trazas.

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

  • Compatibilidad mejorada con el marco y la instrumentación de bibliotecas

  • Support 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 seguimientos

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 Trabajar 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. Comprender estos mapeos le ayuda a traducir su instrumentación de rayos X existente a: OpenTelemetry

Concepto de X-Ray OpenTelemetry concepto
Grabador de rayos X Tracer Provider y Tracer
Complementos del servicio Detector de recursos
Segmento (Servidor) España
Subsegmento Span (sin servidor)
Reglas de muestreo de rayos X OpenTelemetry Muestreo (personalizable)
Emisor de X-Ray Exportador de España (personalizable)
Anotaciones/metadatos Atributos
Instrumentación de biblioteca Instrumentación de biblioteca
Contexto de X-Ray Trace Contexto de Span
Propagación del contexto de X-Ray Trace Propagación del contexto de rastreo del W3C
Muestreo de trazas de rayos X OpenTelemetry Muestreo de rastros
N/A Procesamiento de intervalos
N/A Equipaje
Demonio 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 siguiente tabla se muestran las funciones compatibles con ambos servicios. Utilice esta información para identificar las brechas que necesite abordar durante la migración:

Característica Instrumentación de rayos X OpenTelemetry instrumentación
Instrumentación de biblioteca Soportado Compatible
Muestreo de rayos X Compatible

Compatible con OTel Java/.net/Go

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

Propagación del contexto de trazas de rayos X Soportado Compatible
Detección de recursos Soportado Compatible
Anotaciones de segmentos Soportado Compatible
Metadatos de segmentos Soportado Compatible
Autoinstrumentación 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 trazas manuales Soportado Compatible

Configuración y configuración del rastreo

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

nota

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

Comprender la estructura de los datos de rastreo

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

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

  • Nombre

  • ID único

  • Marcas de tiempo de inicio y finalización

  • Tipo de lapso

  • Contexto de Span

  • Atributos (metadatos clave-valor)

  • Eventos (registros con fecha y hora)

  • Enlaces a otros intervalos

  • Información de estado

  • Referencias del rango de padres

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.

Trabajando con atributos de intervalo

El SDK de X-Ray ofrece dos formas de añadir 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, añada sus claves a la lista de aws.xray.annotations atributos.

Detectar recursos en su 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 .

Administrar las estrategias de muestreo

El muestreo de trazas 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 las trazas reduce los costes de observabilidad y, al mismo tiempo, permite obtener información significativa sobre el 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 los padres: respeta la decisión de muestreo del grupo original antes de aplicar estrategias de muestreo adicionales

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

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

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

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

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

Administrar el contexto de rastreo

X-Ray SDKs gestiona el contexto del segmento para gestionar correctamente las relaciones padre-hijo entre los segmentos y los 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 principal.

Propagar el contexto de rastreo

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 rastreo generados por diferentes servicios y mantener las decisiones de muestreo.

El SDK de X-Ray propaga automáticamente el contexto de rastreo mediante el encabezado de rastreo de X-Ray. Cuando un servicio llama a otro, el encabezado de rastreo contiene el contexto necesario para mantener las relaciones padre-hijo entre los rastreos.

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

  • Contexto de rastreo del W3C (predeterminado)

  • Cabecera de rastreo 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 rastreo a los puntos finales de API Gateway y otros servicios compatibles con X-Ray.

Uso de la instrumentación de la 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 añadir instrumentaciones de rayos X 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 trazas

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

Exportación de trazas de rayos X

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

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

  • 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:

  • Utiliza los protocolos http://protobuf o grpc

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

  • Permite configurar los exportadores de forma personalizada

Procesamiento y reenvío de trazas

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

Procesamiento de trazas de rayos X

El Demonio X-Ray gestiona el procesamiento de trazas:

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

  • Reparte segmentos y subsegmentos

  • Carga lotes al servicio de X-Ray

OpenTelemetry procesamiento de trazas

El OpenTelemetry recopilador gestiona el procesamiento de trazas:

  • Recibe trazas de servicios instrumentados

  • Procesa y, opcionalmente, modifica los datos de rastreo

  • Envía las trazas procesadas 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 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 rastreo

  • Ú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 Collector OpenTelemetry

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

Información general sobre la migración

En esta sección se proporciona una descripción general 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. Sustituya 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 Recopilador

  • 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.

Cambios en la configuración de rastreo

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

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

  • Propagación del contexto de X-Ray Trace

  • Exportación de trazas a X-Ray Daemon

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

  • Propagación del contexto de rastreo del W3C

Configuraciones manuales
  • Reglas de muestreo locales

  • Plugins de detección de recursos

  • Toma de muestras de rayos X (es posible que no esté disponible en todos los idiomas)

  • Detección de recursos

  • Propagación del contexto de X-Ray Trace

Cambios en la instrumentación de la biblioteca

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 específicas del idioma para obtener instrucciones detalladas.

Cambios en la instrumentación del entorno Lambda

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

  1. Utilice una capa Lambda de autoinstrumentación:

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

    • Configure un procesador Span simple con un exportador Span UDP de X-Ray

    • Configurar un propagador Lambda de X-Ray

Creación manual de datos de rastreo

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

  • Usa un OpenTelemetry rastreador para crear tramos

  • Añadir atributos a Spans (equivalentes a anotaciones y metadatos de X-Ray)

importante

Cuando se envía a X-Ray:

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

  • Otros tramos se convierten en subsegmentos de X-Ray

  • Los atributos se convierten en metadatos de forma predeterminada

Para convertir un atributo en una anotación, añada su clave a la lista de aws.xray.annotations atributos. Para obtener más información, consulte Habilitar anotaciones de rayos X 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 debe administrar. 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 de 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 Amazon S3 del daemon X-Ray.

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
Eliminando el 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 LogPath configuración

Configuración del CloudWatch agente

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 trazas. Para obtener más información, consulte Creación del archivo de configuración del CloudWatch agente.

  2. Configure los permisos de IAM:

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

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

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 colector

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 su recopilador:

  • extensión awsproxy

    Necesario para el muestreo de rayos X

  • OTel receptores

    Recopila los rastros de su aplicación

  • exportador de rayos X

    Envía trazas a X-Ray

ejemplo Configuración del recopilador de muestras: otel-collector-config .yaml
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.

Iniciar el recopilador

Ejecute el recopilador con su archivo de configuración:

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

Migración en Amazon ECS

importante

Su función de tarea debe tener el xray:PutTraceSegments permiso 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 llamado: cw-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. Guarde 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. Seleccione 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 de 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 indicar 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 enviar las trazas 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 desde 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 usar 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 seleccione Crear nuevo parámetro. Cree un parámetro nuevo con la siguiente información:

    • Nombre:/ecs/otel/config(se hará referencia a este nombre en la definición de tarea 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 la tarea, la configuración depende del modo de red que 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 existente de X-Ray Daemon se activó mediante la consola de Elastic Beanstalk o configurando X-Ray Daemon en el código fuente 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. Cree un directorio con el nombre de .ebextensions la raíz de su proyecto

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

    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 .ebextensions directorio en el paquete de código fuente de la aplicación al realizar la implementación

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.