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.
-
Para obtener más información sobre OpenTelemetry los conceptos, consulte OpenTelemetry Traces
-
Para obtener más información sobre cómo OpenTelemetry los datos se asignan a los datos de rayos X, consulte OpenTelemetry Traducción de modelos de datos de rayos X
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 .
-
Para obtener información acerca de los complementos del servicio de X-Ray, consulte Configuración de X-Ray SDK
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.
-
Para obtener información acerca de los encabezados de rastro de X-Ray, consulte Encabezado de rastreo en la Guía para desarrolladores de X-Ray
-
Para obtener información sobre la propagación OpenTelemetry del contexto, consulte Contexto y propagación del contexto en la
documentación OpenTelemetry
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.
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:
Reemplace el uso del SDK de X-Ray por una OpenTelemetry solución
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.
| Característica | X-Ray SDK | OpenTelemetry |
|---|---|---|
| Configuraciones predeterminadas |
|
|
| Configuraciones manuales |
|
|
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:
-
Utilice una capa de Lambda de instrumentación automática:
-
Capa Lambda de señales de CloudWatch aplicación (recomendada)
nota
Para utilizar solo el rastreo, defina la variable de entorno de Lambda
OTEL_AWS_APPLICATION_SIGNALS_ENABLED=false.
-
-
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.
Secciones
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:
-
Detenga el servicio de daemon:
systemctl stop xray -
Elimine el archivo de configuración:
rm ~/path/to/xray-daemon.yaml -
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
-
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.
-
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
Obtenga la imagen de Docker de la Galería pública de Amazon ECR
. Cree un archivo de configuración denominado
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" } } } }Almacene la configuración en el almacén de parámetros de Systems Manager:
Abra el icono https://console.aws.amazon.com/systems-manager/
Elija Crear parámetro
-
Escriba los siguientes valores:
Nombre:
/ecs/cwagent/otel-configNivel: estándar
Tipo: cadena
Tipo de datos: texto
Valor: [Pegue aquí la configuración cw-agent-otel .json]
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_ENDPOINTentorno 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
-
Obtenga la imagen de Docker
otel/opentelemetry-collector-contribde Docker Hub. -
Cree un archivo de configuración denominado
otel-collector-config.yamlcon el mismo contenido que se muestra en la sección EC2 Configuración del recopilador de Amazon, pero actualice los puntos de enlace para usarlos0.0.0.0en lugar de127.0.0.1. 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]
-
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_ENDPOINTentorno 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:
-
Creación de un directorio llamado
.ebextensionsen la raíz del proyecto -
Cree un archivo llamado
cloudwatch.configen el directorio.ebextensionscon 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 -
Incluya el directorio
.ebextensionsen 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.