Las funciones de Trace Step Functions solicitan datos en AWS X-Ray - 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.

Las funciones de Trace Step Functions solicitan datos en AWS X-Ray

Puedes usar AWS X-Raypara visualizar los componentes de su máquina de estados, identificar los cuellos de botella en el rendimiento y solucionar las solicitudes que provocaron 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 habilitado para su máquina de estados, puede rastrear las solicitudes a medida que se ejecutan en Step Functions, en todos los AWS Regiones en las que 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, incluida cualquier 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.

Puede usar… AWS X-Ray con Step Functions en las regiones en las que ambas son compatibles. 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. En la página Especificar detalles, configure su máquina de estado.

  4. Elija Activar rastreo 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 utilizar un IAM rol existente, debe asegurarse de que se permita la escritura de X-Ray. Para obtener más información sobre los permisos que necesita, consulte el tema siguiente.

IAMpolíticas que utilizan AWS X-Ray en Step Functions

Para habilitar el rastreo de X-Ray, necesitará una IAM política con los permisos adecuados para permitir el rastreo. Si su máquina estatal utiliza otros servicios integrados, es posible que necesite políticas adicionalesIAM. Consulte las IAM políticas de sus integraciones de servicios específicas.

Si habilita el rastreo de X-Ray para una máquina de estado existente, debe asegurarse de añadir una política con permisos suficientes para habilitar los rastreos de X-Ray.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "xray:PutTraceSegments", "xray:PutTelemetryRecords", "xray:GetSamplingRules", "xray:GetSamplingTargets" ], "Resource": [ "*" ] } ] }

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. Elija Activar rastreo 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 estatal existente, debe asegurarse de tener una IAM política 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 IAM de políticas deIAMpolíticas que utilizan AWS X-Ray en Step Functions.

  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 identificador Cuentas de AWS o 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 está utilizando un HTTP API API portal interno. Sin embargo, si utilizas una función Lambda y/o unaSDK, tendrás que configurar las traceHeader StartSyncExecutionAPIllamadas StartExecutiono tú mismo.

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

En el navegador AWS X-Ray consola, puede ver los mapas de servicio y los rastreos de las solicitudes que atienden sus aplicaciones cuando X-Ray está habilitado para 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 AWS X-Ray La consola de análisis 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. Puede analizar el rendimiento de su máquina de estado para localizar e identificar los problemas de rendimiento.

Para obtener información detallada sobre el análisis de rayos X, consulte Interactuar con el AWS X-Ray Consola de análisis

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

Algunas de las AWS los servicios que se integran con Step Functions proporcionan integración con 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 en X-Ray. Otros deben ser instrumentados con el AWS X-Ray SDK. 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.

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 creación de un patrón de devolución de llamada con Amazon SQSSNS, Amazon y 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.

Captura de pantalla ilustrativa de trazas de rayos X para una máquina estatal.

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.

Captura de pantalla ilustrativa centrada en el mapa de servicio en las trazas de rayos X.

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.

Detalles de ejemplo de un nodo de rastreo 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.

Ejemplo de representación gráfica de la máquina de estados que se está rastreando.

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.

Serás un segmento diferente para cada nodo del mapa de servicio.

Captura de pantalla de ejemplo de segmentos y subsegmentos para una máquina de estados.

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

Un segmento puede desglosar los datos del trabajo realizado en subsegmentos. Al elegir un subsegmento, se muestran detalles e información detallada sobre la temporización. Un subsegmento puede contener detalles adicionales sobre una llamada a un AWS servicio HTTPAPI, externo o SQL base de datos.

Análisis

La AWS X-Ray La consola de análisis 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. Puede explorar, analizar y visualizar las trazas mediante gráficos interactivos de tiempos de respuesta y series temporales para ayudar a localizar 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.

Configuración

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

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

  • Seleccione Cifrado para modificar la configuración de cifrado.

    Puede usar la configuración predeterminada, donde X-Ray cifra las trazas y los datos en reposo o, si es necesario, puede elegir una KMS clave. estándar AWS KMSen este último caso, se aplicarán tasas.

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

  • Sus IAM funciones están configuradas correctamente para poder escribir en X-Ray.

  • Las reglas de muestreo permiten el muestreo de datos.

  • Como puede transcurrir un tiempo antes de que se apliquen las IAM funciones recién creadas o modificadas, vuelva a comprobar los mapas 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 IAM cuenta y asegúrese de que AWS Security Token Service está activado para la región deseada. Para obtener más información, consulte Activación y desactivación AWS STS en un Región de AWS en la Guía del usuario de IAM.