OPS04-BP05 Implementar trazabilidad de transacciones
Implemente el código de su aplicación y configure los componentes de su carga de trabajo para que emitan eventos, los cuales se activan como resultado de operaciones lógicas únicas y se consolidan a través de varios límites de la carga de trabajo. Genere mapas para ver cómo fluyen los rastreos a través de sus servicios y carga de trabajo. Obtenga información sobre las relaciones entre los componentes e identifique y analice los problemas. Utilice la información recopilada para determinar cuándo se requiere una respuesta y para identificar los factores que contribuyen al problema.
Resultado deseado:
-
Recopilar rastreos de transacciones en toda la carga de trabajo para conocer mejor la relación entre los componentes.
-
Generar mapas para comprender mejor cómo fluyen las transacciones y los eventos en su carga de trabajo.
Antipatrones usuales:
-
Ha implementado una arquitectura de microservicios sin servidor que abarca múltiples cuentas. Sus clientes tienen problemas de rendimiento intermitentes. No puede descubrir qué función o componente es responsable porque carece de trazabilidad de las transacciones.
-
Hay un cuello de botella en el rendimiento de su carga de trabajo. Debido a la falta de trazabilidad de las transacciones, no puede ver la relación entre los componentes de la aplicación e identificar el cuello de botella.
-
El identificador utilizado para los rastreos no es único a escala global, lo que provoca una colisión de rastreos al analizar el comportamiento de la carga de trabajo.
Beneficios de establecer esta práctica recomendada:
-
Comprender el flujo de transacciones a través de su carga de trabajo proporciona información sobre el comportamiento esperado de las transacciones de la carga de trabajo.
-
Podrá ver las variaciones del comportamiento esperado en la carga de trabajo y responder si es necesario.
-
Podrá localizar las transacciones por su identificador único generado, independientemente de dónde se hayan generado.
Nivel de riesgo expuesto si no se establece esta práctica recomendada: bajo
Guía para la implementación
Diseñe su aplicación y su carga de trabajo para emitir información sobre el flujo de transacciones a través de los componentes del sistema. Los datos que deben incluirse en las transacciones son un identificador de transacción único a escala global, la etapa de la transacción, el componente activo y el tiempo para completar la actividad. Utilice esta información para determinar lo que está en curso, lo que está completo y cuáles son los resultados de las actividades completadas.
Ejemplo de cliente
En AnyCompany Retail, todas las transacciones tienen un UUID único generado a escala global. Este UUID se pasa entre microservicios durante las transacciones. El UUID se utiliza para crear rastreos de las transacciones a medida que los usuarios interactúan con la carga de trabajo. Con los rastreos, se genera un mapa de la topología de la carga de trabajo que se utiliza para solucionar los problemas de la carga de trabajo y mejorar el rendimiento.
Pasos para la implementación
-
Instrumente las aplicaciones de su carga de trabajo para que emitan rastreos de transacciones. Para hacerlo, puede generar un identificador único para cada transacción y pasar el identificador entre aplicaciones.
-
Puede utilizar la autoinstrumentación en AWS Distro for OpenTelemetry
para implementar rastreos en sus aplicaciones existentes sin modificar el código de la aplicación.
-
-
Genere mapas de la topología de la aplicación. Utilice estos mapas para mejorar el rendimiento, obtener información y ayudar en la resolución de problemas.
-
AWS X-Ray puede generar mapas de las aplicaciones de su carga de trabajo.
-
Nivel de esfuerzo para el plan de implementación: medio. La implementación de rastreos de transacciones podría requerir un esfuerzo de desarrollo moderado.
Recursos
Prácticas recomendadas relacionadas:
-
OPS04-BP01 Implementar telemetría de aplicaciones - La telemetría de las aplicaciones abarca la trazabilidad y la gestión de las transacciones, y debe implementarse en primer lugar.
Documentos relacionados:
-
Discover application issues and get notifications with AWS X-Ray Insights
(Descubrir problemas de la aplicación y obtener notificaciones con AWS X-Ray Insights) -
How Wealthfront utilizes AWS X-Ray to analyze and debug distributed applications
(Cómo Wealthfront utiliza AWS X-Ray para analizar y depurar aplicaciones distribuidas) -
New for AWS Distro for OpenTelemetry – Tracing Support is Now Generally Available
(Novedades de AWS Distro for OpenTelemetry: ya está disponible la función de rastreo)
Vídeos relacionados:
-
AWS re:Invent 2018: Deep Dive into AWS X-Ray: Monitor Modern Applications (DEV324)
(AWS re:Invent 2018: Profundización en AWS X-Ray: monitorización de aplicaciones modernas) -
AWS re:Invent 2022 - Building observable applications with OpenTelemetry (BOA310)
(AWS re:Invent 2022: Creación de aplicaciones observables con OpenTelemetry) -
AWS re:Invent 2022 - Observability the open-source way (COP301-R)
(AWS re:Invent 2022: Observabilidad con código abierto) -
Capturing Trace Data with the AWS Distro for OpenTelemetry
(Capturar datos de rastreo con AWS Distro for OpenTelemetry) -
Optimize Application Performance with AWS X-Ray
(Optimización del rendimiento de la aplicación con AWS X-Ray)
Ejemplos relacionados:
-
AWS X-Ray Multi API Gateway Tracing Example
(Ejemplo de rastreo de varias puertas de enlace API para AWS X-Ray)
Servicios relacionados: