AWS X-Ray y Step Functions - AWS Step Functions

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.

AWS X-Ray y Step Functions

Puede utilizar AWS X-Ray para visualizar los componentes de su máquina de estado, identificar cuellos de botella en el rendimiento y solucionar problemas de solicitudes que dieron lugar a un error. Su máquina de estado envía datos de rastreo a X-Ray, y X-Ray procesa los datos para generar un mapa de servicio y resúmenes de rastreo con capacidad de búsqueda.

Con X-Ray activado para su máquina de estados, puede rastrear las solicitudes a medida que se ejecutan en Step Functions, en todas AWS las regiones donde X-Ray esté disponible. Esto le aporta información general detallada de una solicitud completa de Step Functions. Step Functions enviará registros de seguimiento a X-Ray para ejecuciones de máquinas de estado, incluso cuando un ID de seguimiento no se pasa por un servicio ascendente. Puede usar un mapa del servicio de X-Ray para ver la latencia de una solicitud, incluidos los AWS servicios que estén integrados con X-Ray. También puede configurar reglas de muestreo para indicar a X-Ray qué solicitudes debe registrar y a qué velocidad de muestreo, de acuerdo con los criterios que especifique.

Cuando X-Ray no está habilitado para su máquina de estado y un servicio ascendente no transfiere un ID de registro de seguimiento, Step Functions no enviará registros de seguimiento a X-Ray para ejecuciones de máquinas de estado. Sin embargo, si un servicio ascendente transfiere un ID de seguimiento, Step Functions enviará registros de seguimiento a X-Ray para ejecuciones de máquinas de estado.

Se puede utilizar AWS X-Ray con Step Functions en las regiones en las que se admiten ambas funciones. Consulte las páginas de puntos de conexión y cuotas de Step Functions y X-Ray para obtener información sobre la compatibilidad con regiones de X-Ray y Step Functions.

Cuotas combinadas de X-Ray y Step Functions

Puede añadir datos a un registro de seguimiento durante un máximo de siete días y consultar datos de rastreo que se remonten a treinta días, que es el tiempo que X-Ray almacena los datos de rastreo. Los registros de seguimiento estarán sujetos a las cuotas de X-Ray. Además de otras cuotas, X-Ray proporciona un tamaño de seguimiento mínimo garantizado de 100 KB para las máquinas de estado de Step Functions. Si se proporcionan más de 100 KB de datos de rastreo a X-Ray, esto puede dar lugar a un rastreo congelado. Consulte la sección de cuotas de servicio de la página Puntos de conexión y cuotas de X-Ray para obtener más información sobre otras cuotas de X-Ray.

importante

Step Functions no admite el seguimiento de X-Ray para las ejecuciones de flujos de trabajo secundarios iniciadas por un estado Distributed Map, ya que el límite de tamaño de los documentos de rastreo se supera con facilidad para dichas ejecuciones.

Ajustes y configuración

Habilitar el rastreo de X-Ray al crear una máquina de estado

Seleccione Habilitar rastreo de X-Ray en la página Especificar detalles para habilitar el rastreo de X-Ray al crear una nueva máquina de estado.

  1. Abra la consola de Step Functions y seleccione Crear máquina de estado.

  2. En la página Elegir un método de creación, seleccione la opción adecuada para crear su máquina de estado. Si se selecciona Ejecutar un proyecto de muestra, no se podrá habilitar el rastreo de X-Ray durante la creación de la máquina de estado y tendrá que habilitarse una vez creada la máquina de estado. Para obtener más información sobre cómo habilitar X-Ray en una máquina de estado existente, consulte Habilitar X-Ray en una máquina de estado existente.

    Elija Siguiente.

  3. Configure su máquina de estado en la página Especificar detalles.

  4. Seleccione Habilitar rastreo de X-Ray.

    Habilitación de X-Ray

    La máquina de estado de Step Functions enviará ahora registros de seguimiento a X-Ray para las ejecuciones de máquinas de estado.

    nota

    Si decide usar un rol de IAM existente, debe asegurarse de que se permiten las escrituras de X-Ray. Para obtener más información sobre los permisos necesarios, consulte las Políticas de IAM para X-Ray.

Habilitar X-Ray en una máquina de estado existente

Para habilitar X-Ray en una máquina de estado existente:

  1. En la consola de Step Functions, seleccione la máquina de estado para la que desee activar el rastreo.

  2. Elija Editar.

  3. Seleccione Habilitar rastreo de X-Ray.

    Habilitación de X-Ray

    Aparecerá una notificación en la que se indicará que es posible que haya que hacer cambios adicionales.

    nota

    Al habilitar X-Ray para una máquina de estado existente, debe asegurarse de tener una política de IAM que otorgue permisos suficientes para que X-Ray realice rastreos. Puede añadir una manualmente o generarla. Para obtener más información, consulte la sección Política de IAM para Políticas de IAM para AWS X-Ray.

  4. (Opcional) Genere automáticamente un nuevo rol para su máquina de estado para incluir los permisos de X-Ray.

  5. Seleccione Guardar.

Configurar el rastreo de X-Ray para Step Functions

La primera vez que ejecute una máquina de estados con el rastreo de rayos X activado, utilizará los valores de configuración predeterminados para el rastreo de rayos X. AWS X-Ray no recopila datos de cada solicitud que se envía a una aplicación. En su lugar, recopila datos para un número estadísticamente significativo de solicitudes. De forma predeterminada, se registra la primera solicitud cada segundo y el cinco por ciento de las solicitudes adicionales. Una petición por segundo es el depósito. Esto garantiza que se registre al menos un registro de seguimiento cada segundo mientras el servicio atienda solicitudes. El cinco por ciento es el porcentaje al que se muestrean las solicitudes adicionales más allá del tamaño del depósito.

Para evitar incurrir en cargos por servicio al empezar, la tasa de muestreo predeterminada es conservadora. Puede configurar X-Ray para modificar la regla de muestreo predeterminada y configurar reglas adicionales que aplican el muestreo en función de las propiedades del servicio o solicitud.

Por ejemplo, es posible que desee deshabilitar el muestreo y rastrear todas las solicitudes de llamadas que modifiquen el estado o el manejo Cuentas de AWS de las transacciones. Para llamadas de solo lectura de alto volumen, como sondeo en segundo plano, comprobaciones de estado o mantenimiento de conexión, es posible muestrear con un bajo índice y seguir obteniendo datos suficientes para ver los problemas que se produzcan.

Para configurar una regla de muestreo para su máquina de estado:

  1. Vaya a la consola de X-Ray.

  2. Seleccione Muestreo.

  3. Para crear una regla, elija Crear regla de muestreo.

    Para editar una regla, elija el nombre de una regla.

    Para eliminar una regla, elija una regla y utilice el menú Acciones para eliminarla.

Algunas partes de las reglas de muestreo existentes, como el nombre y la prioridad, no se pueden cambiar. En su lugar, es posible añadir o clonar una regla existente, realizar los cambios que se deseen y, posteriormente, utilizar la nueva regla.

Para obtener información detallada sobre las reglas de muestreo de X-Ray y cómo configurar los distintos parámetros, consulte Configuración de reglas de muestreo en la consola de X-Ray.

Integrar los servicios ascendentes

Para integrar la ejecución de los flujos de trabajo de Step Functions, como los flujos de trabajo rápidos, sincrónico y estándar, con un servicio ascendente, debe configurar el traceHeader. Esto se hace automáticamente si utiliza una API de HTTP en API Gateway. Sin embargo, si utiliza una función de Lambda o un SDK, tendrá que configurar por sí mismo el traceHeader en las llamadas a la API StartExecution o StartSyncExecution.

Debe especificar el formato de traceHeader como \p{ASCII}∗. Además, para que Step Functions pueda usar el mismo ID de seguimiento, debe especificar el formato como Root={TRACE_ID};Sampled={1 or 0}. Si utiliza una función de Lambda, reemplace TRACE_ID por el ID de seguimiento del segmento actual y establezca el campo muestreado como 1 si el modo de muestreo fuera verdadero y 0 si el modo de muestreo fuera falso. Si se proporciona el ID de seguimiento en este formato, obtendrá un seguimiento completo.

A continuación se muestra un ejemplo escrito en Python para mostrar cómo especificar el traceHeader.

state_machine = config.get_string_paramter("STATE_MACHINE_ARN") if (xray_recorder.current_subsegment() is not None and xray_recorder.current_subsegment().sampled) : trace_id = "Root={};Sampled=1".format( xray_recorder.current_subsegment().trace_id ) else: trace_id = "Root=not enabled;Sampled=0" LOGGER.info("trace %s", trace_id) # execute it response = states.start_sync_execution( stateMachineArn=state_machine, input=event['body'], name=context.aws_request_id, traceHeader=trace_id ) LOGGER.info(response)

Conceptos

La consola de X-Ray

La AWS X-Ray consola le permite ver los mapas de servicio y los rastreos de las solicitudes que atienden sus aplicaciones. Puede acceder a la consola para ver la información detallada recopilada por X-Ray cuando está habilitado en su máquina de estados.

Consulte Visualización de la consola de X-Ray para obtener información sobre cómo acceder a la consola de X-Ray para las ejecuciones de máquinas de estado.

Para obtener información detallada sobre la consola X-Ray, consulte la documentación de la consola de X-Ray.

Segmentos, subsegmentos y registros de seguimiento

Un segmento registra información sobre una solicitud enviada a su máquina de estado. Contiene información como el trabajo que realiza la máquina de estado y también puede contener subsegmentos con información sobre las llamadas posteriores.

Un registro de seguimiento recopila todos los segmentos que genera una solicitud.

Muestreo

Para garantizar un rastreo eficaz y proporcionar una muestra representativa de las solicitudes que su aplicación atiende, X-Ray aplica un algoritmo de muestreo para determinar qué solicitudes se rastrearán. Esto se puede cambiar editando las reglas de muestreo.

Métricas

Para su máquina de estado, X-Ray medirá el tiempo de invocación, el tiempo de transición de estado, el tiempo total de ejecución de Step Functions y las variaciones en este tiempo de ejecución. Se puede acceder a esta información a través de la consola de X-Ray.

Análisis

La consola de AWS X-Ray Analytics es una herramienta interactiva para interpretar los datos de rastreo. Puede acotar el conjunto de datos con filtros cada vez más detallados haciendo clic en los gráficos y los paneles de métricas y campos asociados al conjunto de registros de seguimiento actual. Esto le permite analizar el rendimiento de su máquina de estado y localizar e identificar rápidamente los problemas de rendimiento.

Para obtener información detallada sobre los análisis de X-Ray, consulte Interactuar con la consola de AWS X-Ray Analytics

Integración de los servicios de Step Functions y X-Ray

Algunos de los AWS servicios que se integran con Step Functions permiten la integración AWS X-Ray añadiendo un encabezado de rastreo a las solicitudes, ejecutando el daemon X-Ray o tomando decisiones de muestreo y cargando los datos de rastreo a X-Ray. Otros deben instrumentarse mediante el SDK. AWS X-Ray Algunos aún no admiten la integración de X-Ray. La integración de X-Ray es necesaria para proporcionar datos de rastreo completos cuando se utiliza una integración de servicios con Step Functions

Soporte nativo de X-Ray

Las integraciones de servicios con soporte nativo de X-Ray incluyen:

Instrumentación requerida

Integraciones de servicios que requieren la instrumentación X-Ray:

  • Amazon Elastic Container Service

  • AWS Batch

  • AWS Fargate

Rastreo solo del lado del cliente

Otras integraciones de servicios no admiten registros de seguimiento de X-Ray. Sin embargo, aún se pueden recopilar rastreos del lado del cliente:

  • Amazon DynamoDB

  • Amazon EMR

  • Amazon SageMaker

  • AWS CodeBuild

  • AWS Glue

Visualización de la consola de X-Ray

Los servicios envían datos a X-Ray como segmentos. X-Ray agrupa los segmentos que tienen una solicitud en común en registros de seguimiento. X-Ray procesa los registros de seguimiento para generar un gráfico de servicios, que constituye una representación visual de la aplicación.

Una vez iniciada la ejecución de la máquina de estado, se pueden ver los registros de seguimiento de X-Ray al seleccionar el enlace al mapa de registros de seguimiento de X-Ray en la sección Detalles de ejecución.

Registros de seguimiento de X-Ray

Una vez que haya habilitado X-Ray en la máquina de estado, puede ver la información de rastreo de sus ejecuciones en la consola de X-Ray.

Visualización de la información de rastreo de X-Ray para Step Functions

Los siguientes pasos ilustran el tipo de información que puede ver en la consola después de habilitar X-Ray y comenzar una ejecución. Se muestran registros de seguimiento de X-Ray para el proyecto de muestra Ejemplo de patrón de devolución de llamadas (Amazon SQS, Amazon SNS, Lambda) .

Registros de seguimiento

Una vez finalizada la ejecución, puede ir a la consola de X-Ray, donde aparecerá la página Registros de seguimiento de X-Ray. Aquí se muestra información general del mapa de servicio, así como información de registros de seguimiento y segmentos de la máquina de estado.

Registros de seguimiento de X-Ray

Mapa de servicios

El mapa de servicio en la consola de X-Ray le ayuda a identificar los servicios donde ocurran errores, donde haya conexiones con alta latencia o donde se observen registros de seguimiento de solicitudes que dieron error.

Registros de seguimiento de X-Ray

En el mapa de registros de seguimiento, puede elegir un nodo de servicio para ver sus solicitudes o un límite entre dos nodos para ver las solicitudes que pasaron por esa conexión. Aquí, se ha seleccionado el nodo WaitForCallBack y puede ver información adicional sobre su estado de ejecución y respuesta.

Registros de seguimiento de X-Ray

Puede ver cómo se correlaciona el mapa del servicio de X-Ray con la máquina de estado. Hay un nodo de mapa de servicio para cada integración de servicios que es llamada por Step Functions, siempre que admita X-Ray.

Registros de seguimiento de X-Ray

Segmentos y subsegmentos

Un registro de seguimiento es una colección de segmentos que genera una solicitud. Cada segmento incluye el nombre del recurso, detalles de la solicitud y detalles del trabajo realizado. En la página Registros de seguimiento, puede ver los segmentos y, si están expandidos, sus subsegmentos correspondientes. Puede elegir un segmento o subsegmento para ver información detallada sobre este.

Seleccione cada una de las pestañas para ver cómo se muestra la información de los segmentos y los subsegmentos.

Overview of Segments

Información general de los segmentos y subsegmentos de esta máquina de estado. Hay un segmento diferente para cada nodo en el mapa de servicio.

Segmentos
View segment detail

La selección de un segmento incluye el nombre del recurso, detalles de la solicitud y detalles del trabajo realizado.

Detalle del segmento
View subsegment detail

Un segmento puede desglosar los datos del trabajo realizado en subsegmentos. Al elegir un subsegmento, podrá ver información y detalles más precisos sobre la temporización. Un subsegmento puede contener detalles adicionales sobre una llamada a un AWS servicio, una API HTTP externa o una base de datos SQL.

Detalles del subsegmento

Análisis

La consola AWS X-Ray de Analytics es una herramienta interactiva para interpretar los datos de rastreo. Puede utilizarla para comprender con más facilidad el rendimiento de su máquina de estado. La consola le permite explorar, analizar y visualizar los registros de seguimiento a través de gráficos de tiempo de respuesta y series temporales. Esto puede ayudarle a localizar rápidamente los problemas de rendimiento y latencia.

Puede acotar el conjunto de datos con filtros cada vez más detallados haciendo clic en los gráficos y los paneles de métricas y campos asociados al conjunto de registros de seguimiento actual.

Análisis

Configuración

Puede configurar las opciones de muestreo y cifrado desde la consola de X-Ray.

Sampling

Seleccione Muestreo para ver los detalles sobre la frecuencia y la configuración de muestreo. Puede cambiar las reglas de muestreo para controlar la cantidad de datos que se registran y modificar el comportamiento de muestreo para adaptarlo a sus requisitos específicos.

Muestreo
Encryption

Seleccione Cifrado para modificar la configuración de cifrado. Puede usar la configuración predeterminada, donde X-Ray cifra los registros de seguimiento y la fecha en reposo. Además, si es necesario, puede elegir una clave maestra de cliente. En este último caso, se aplican tasas de AWS KMS estándar.

Configuración de cifrado

¿Qué ocurre si no hay datos en el mapa de registros de seguimiento o en el mapa de servicio?

Si ha habilitado X-Ray, pero no ve ningún dato en la consola de X-Ray, compruebe que:

  • Los roles de IAM están configurados correctamente para poder escribir en X-Ray.

  • Las reglas de muestreo permiten el muestreo de datos.

  • Dado que puede que haya un pequeño retraso hasta que se apliquen los roles de IAM recién creados o modificados, vuelva a comprobar los mapas de registros de seguimiento o de servicio transcurridos unos minutos.

  • Si ve Datos no encontrados en el panel X-Ray Traces, compruebe la configuración de su cuenta de IAM y asegúrese de que AWS Security Token Service esté habilitada para la región deseada. Para obtener más información, consulte Activación y desactivación AWS STS en y en la Guía del Región de AWS usuario de IAM.