Supervisión de métricas de Step Functions utilizando Amazon CloudWatch - AWS Step Functions

Supervisión de métricas de Step Functions utilizando Amazon CloudWatch

La supervisión es un aspecto importante del mantenimiento de la fiabilidad, la disponibilidad y el rendimiento de AWS Step Functions y sus soluciones de AWS. Debe recopilar la mayor cantidad posible de datos de supervisión de los servicios de AWS que utiliza para poder depurar errores en múltiples puntos.

Antes de empezar la supervisión de Step Functions, debe crear un plan de supervisión que responda a las siguientes preguntas:

  • ¿Cuáles son los objetivos de la supervisión?

  • ¿Qué recursos va a supervisar?

  • ¿Con qué frecuencia va a supervisar estos recursos?

  • ¿Qué herramientas de supervisión va a utilizar?

  • ¿Quién se encargará de realizar las tareas de supervisión?

  • ¿Quién debería recibir una notificación cuando surjan problemas?

El siguiente paso consiste en establecer un punto de referencia para el rendimiento normal de en su entorno. Para ello, mida el rendimiento en diversas ocasiones y con diferentes condiciones de carga. Cuando monitoree Step Functions, debe tener en cuenta el almacenamiento de los datos de monitoreo históricos. Estos datos pueden servirle como referencia para compararlos con los datos de rendimiento actuales, para identificar los patrones de rendimiento normales y las anomalías del rendimiento, y para idear métodos de solución de problemas.

Recomendamos supervisar los errores de actividad y tarea para establecer una referencia. Cuando el rendimiento no alcance su métrica de referencia, establezca una alerta para poder investigar la causa raíz.

Para establecer un punto de referencia debe, como mínimo, monitorizar las siguientes métricas:

  • ActivitiesStarted

  • ActivitiesTimedOut

  • ExecutionsStarted

  • ExecutionsTimedOut

Métricas de Step Functions para CloudWatch

Step Functions proporciona los siguientes tipos de métricas a Amazon CloudWatch. Puede utilizarlas para supervisar las máquinas de estado y las actividades, así como para establecer alarmas en los valores que actúan como umbral. Puede consultar las métricas utilizando la Consola de administración de AWS.

Nombres y registros con caracteres no ASCII

Step Functions acepta nombres para máquinas de estado, ejecuciones, actividades y etiquetas que contengan caracteres no ASCII. Dado que estos caracteres impedirán que Amazon CloudWatch registre datos, le recomendamos que utilice únicamente caracteres ASCII para poder realizar un seguimiento de las métricas en Step Functions.

Entrega de métricas a CloudWatch

CloudWatchLas métricas de se entregan según el "mejor esfuerzo", es decir, en la medida que sea posible.

La integridad y la puntualidad de las métricas no están garantizadas. Es posible que el punto de datos de una solicitud determinada se envíe con una marca temporal posterior al momento en el que la solicitud se ha procesado realmente. El punto de datos para un minuto podría retrasarse antes de estar disponible en CloudWatch, o podría no entregarse en absoluto. Las métricas de solicitudes de CloudWatch le dan una idea de las ejecuciones de la máquina de estado en tiempo casi real. No pretende ser un recuento completo de todas las métricas relacionadas con la ejecución.

Dado que esta característica funciona en la medida de lo posible, los informes disponibles en el panel de Administración de facturación y costos podrían incluir una o varias solicitudes de acceso que no aparecen en las métricas de la ejecución.

Métricas que informan un intervalo de tiempo

Algunas de las métricas de CloudWatch para Step Functions son intervalos de tiempo, que siempre se miden en milisegundos. Estas métricas, por lo general, se corresponden con fases de ejecución en las que puede definir tiempos de espera para las máquinas de estado, las actividades y las funciones de Lambda utilizando nombres descriptivos.

Por ejemplo, la métrica ActivityRunTime mide el tiempo que tarda una actividad en completarse una vez que comienza su ejecución Puede establecer un tiempo de espera con este mismo período de tiempo.

En la consola de CloudWatch, obtendrá mejores resultados si selecciona average como la estadística que debe aparecer con las métricas de intervalo de tiempo.

Métricas que informan un recuento

Algunas de las métricas de CloudWatch para Step Functions registran los resultados en forma de recuento. Por ejemplo, ExecutionsFailed registra el número o recuento de ejecuciones con errores de la máquina de estado.

Cabe destacar que Step Functions emite dos métricas ExecutionsStarted para cada ejecución de máquina de estado. Como resultado, la estadística SampleCount de la métrica ExecutionsStarted mostrará el valor de 2 para cada ejecución de una máquina de estado. La estadística SampleCount muestra ExecutionStarted=1 y ExecutionStarted=0 después de que complete la ejecución.

Del mismo modo, otras métricas del estado de ejecución pueden emitirse más de una vez debido a la entrega “al menos una vez” y “mejor esfuerzo” de las métricas de CloudWatch.

sugerencia

Recomendamos usar Suma como la estadística de visualización para las métricas que informan un conteo en la consola de CloudWatch.

Métricas de ejecución

El espacio de nombres AWS/States incluye las siguientes métricas para todas las ejecuciones de Step Functions. Se trata de métricas adimensionales que se aplican a toda su cuenta en una región.

Métrica Descripción
OpenExecutionCount

Número aproximado de ejecuciones actualmente abiertas: flujos de trabajo que se encuentran actualmente en curso en su cuenta.

El objetivo es proporcionar información sobre cuándo sus flujos de trabajo se acercan al límite máximo de ejecución, a fin de evitar errores de ExecutionLimitExceeded al realizar llamadas a StartExecution o RedriveExecution en el caso de los flujos de trabajo estándar.

OpenExecutionCount es un número aproximado de flujos de trabajo abiertos. Esta métrica será inferior al recuento observado de flujos de trabajo en ejecución. Si se ejecuta un recuento de flujos de trabajo abiertos inferior a 10 000, es posible que no se produzcan ejecuciones abiertas. Para que una alarma le avise cuando se acerque al OpenExecutionLimit, le recomendamos que utilice la estadística Máximo con un umbral de 100 000 o superior, ya que el límite predeterminado del flujo de trabajo abierto es de 1 000 000 de ejecuciones.

OpenExecutionLimit

Número máximo de ejecuciones abiertas. Para obtener más información, consulte Cuotas relacionadas con las cuentas.

Este límite no se aplica a los flujos de trabajo rápidos.

Métricas de ejecución para todas las máquinas de estado

Todas las máquinas de estado emiten métricas. La métrica ExecutionThrottled solo se emitirá en caso de ejecución limitada. Estas métricas incluirán una StateMachineArn para identificar una máquina de estado específica.

Métrica Descripción
ExecutionTime Intervalo, en milisegundos, entre el momento en que se inicia la ejecución y el momento en que se cierra.
ExecutionThrottled Número de eventos StateEntered y de reintentos que han sido objeto de una limitación controlada. Está relacionado con la limitación controlada de StateTransition. Para obtener más información, consulte Cuotas relacionadas con la limitación controlada de estados.
ExecutionsAborted Número de ejecuciones canceladas o terminadas.
ExecutionsFailed Número de ejecuciones que han producido un error.
ExecutionsStarted Número de ejecuciones iniciadas.
ExecutionsSucceeded Número de ejecuciones realizadas correctamente.
ExecutionsTimedOut Número de ejecuciones cuyo tiempo de espera se agotó por algún motivo.

Métricas de ejecución para flujos de trabajo rápidos

El espacio de nombres AWS/States incluye las siguientes métricas para las ejecuciones de flujos de trabajo rápidos de Step Functions.

Métrica Descripción
ExpressExecutionMemory

La memoria total consumida por un flujo de trabajo rápido.

ExpressExecutionBilledDuration

La duración por la que se cobra un flujo de trabajo rápido.

ExpressExecutionBilledMemory

La cantidad de memoria consumida por la que se cobra un flujo de trabajo rápido.

Redrive de métricas de ejecución para flujos de trabajo estándar

Cuando redrive la ejecución de una máquina de estado, Step Functions emite las siguientes métricas.

La métrica Executions* se emite para todas las ejecuciones redriven. Por ejemplo, supongamos que una ejecución redriven se anula. Esta ejecución emitirá puntos de datos distintos de cero para RedrivenExecutionsAborted y ExecutionsAborted.

Métrica Descripción
ExecutionsRedriven Número de ejecuciones redriven.
RedrivenExecutionsAborted Número de ejecuciones redriven que se cancelan o finalizan.
RedrivenExecutionsTimedOut Número de ejecuciones redriven cuyo tiempo de espera se agotó por algún motivo.
RedrivenExecutionsSucceeded Número de ejecuciones redriven realizadas correctamente.
RedrivenExecutionsFailed Número de ejecuciones redriven que produjeron un error.

Dimensión para métricas de ejecución de Step Functions

Dimensión Descripción
StateMachineArn

El nombre de recurso de Amazon (ARN) de la máquina de estado de la ejecución en cuestión.

Dimensiones de las ejecuciones con una versión

Dimensión Descripción
StateMachineArn

El nombre de recurso de Amazon (ARN) de la máquina de estado cuya ejecución inició una versión.

Version

Versión de la máquina de estado que se utiliza para iniciar la ejecución.

Dimensiones de las ejecuciones con un alias

Dimensión Descripción
StateMachineArn

El nombre de recurso de Amazon (ARN) de la máquina de estado cuya ejecución inició un alias.

Alias

Alias de máquina de estado que se utiliza para iniciar la ejecución.

Métricas de Map Run

El espacio de nombres AWS/States incluye las siguientes métricas para todas las Map Runs de Step Functions. Se trata de métricas adimensionales que se aplican a toda su cuenta en una región.

Métrica Descripción
ApproximateOpenMapRunCount

Número aproximado de Map Runs abiertas actualmente en curso en su cuenta.

Con esta métrica, puede tomar medidas cuando se acerque al OpenMapRunLimit para evitar que se acumulen Map Runs atrasadas.

Para que una alarma le avise si se está acercando a su OpenMapRunLimit, le recomendamos que utilice la estadística Máximo con un umbral de 900 o superior, ya que el OpenManRunLimit predeterminado es de 1000 Map Runs.

OpenMapRunLimit

Número máximo de Map Runs abiertas.

Para obtener más información, consulte Cuotas relacionadas con las cuentas.

ApproximateMapRunBacklogSize

Número aproximado de Map Runs que están atrasadas. Las Map Runs atrasadas esperan al evento MapRunStarted hasta que el número total de Map Runs abiertas sea inferior a la cuota.

El recuento de elementos será cero mientras Map Run esté atrasada. El recuento aumentará cuando Map Run se abra y comience a leer sus entradas.

Métricas de recuento de recursos para versiones y alias

El espacio de nombres AWS/States incluye las siguientes métricas para el recuento de versiones y alias de una máquina de estado.

Métrica Descripción
AliasCount

Número de alias creados para la máquina de estado.

Puede crear hasta 100 alias para cada máquina de estado.

VersionCount

Número de versiones publicadas para la máquina de estado.

Puede publicar hasta 1000 versiones de una máquina de estado.

Dimensión para métricas de recuento de recursos para versiones y alias

Dimensión Descripción
ResourceArn

El nombre de recurso de Amazon (ARN) de la máquina de estado con un alias o una versión.

Métricas de actividad

El espacio de nombres AWS/States incluye las siguientes métricas para las actividades de Step Functions.

Métrica Descripción
ActivityRunTime Intervalo, en milisegundos, entre el momento en que se inicia la actividad y el momento en que se cierra.
ActivityScheduleTime Intervalo, en milisegundos, en el que la actividad permanece en el estado de programación.
ActivityTime Intervalo, en milisegundos, entre el momento en que se programa la actividad y el momento en que se cierra.
ActivitiesFailed Número de actividades que han producido un error.
ActivitiesHeartbeatTimedOut Número de actividades cuyo tiempo de espera se agotó debido a que se agotó el tiempo de espera del latido.
ActivitiesScheduled Número de actividades programadas.
ActivitiesStarted Número de actividades iniciadas.
ActivitiesSucceeded Número de actividades realizadas correctamente.
ActivitiesTimedOut Número de actividades cuyo tiempo de espera se agotó durante el cierre.

Dimensión para métricas de actividad de Step Functions

Dimensión Descripción

ActivityArn

El ARN de la actividad.

Métricas de función de Lambda

El espacio de nombres AWS/States incluye las siguientes métricas para las funciones de Lambda a las que se hace referencia directamente en el campo Resource de una definición de estado Task. Puede encontrar estas métricas en máquinas de estado heredadas. En las máquinas de estado modernas, recomendamos utilizar la integración optimizada de Lambda, que emite métricas de integración de servicios.

Métrica Descripción
LambdaFunctionRunTime Intervalo, en milisegundos, entre el momento en que se inicia la función de Lambda y el momento en que se cierra.
LambdaFunctionScheduleTime Intervalo, en milisegundos, en el que la función de Lambda permanece en el estado de programación.
LambdaFunctionTime Intervalo, en milisegundos, entre el momento en que se programa la función de Lambda y el momento en que se cierra.
LambdaFunctionsFailed Número de funciones de Lambda que han producido un error.
LambdaFunctionsScheduled Número de funciones de Lambda programadas.
LambdaFunctionsStarted Número de funciones de Lambda iniciadas.
LambdaFunctionsSucceeded Número de funciones de Lambda realizadas correctamente.
LambdaFunctionsTimedOut Número de funciones de Lambda cuyo tiempo de espera se agotó durante el cierre.

Dimensión para métricas de la función de Lambda de Step Functions

Dimensión Descripción

LambdaFunctionArn

El ARN de la función de Lambda.

nota

Las métricas de la función de Lambda se emiten para los estados Task que especifican el ARN de la función de Lambda en el campo Resource. Los estados Task que utilizan "Resource": "arn:aws:states:::lambda:invoke" emiten Métricas de integración de servicios en su lugar. Para obtener más información, consulte Invocación de una función AWS Lambda con Step Functions.

Métricas de integración de servicios

El espacio de nombres AWS/States incluye las siguientes métricas para las integraciones de servicio de Step Functions. Para obtener más información, consulte Integración de servicios con Step Functions.

Métrica Descripción
ServiceIntegrationRunTime Intervalo, en milisegundos, entre el momento en que se inicia la tarea de servicio y el momento en que se cierra.
ServiceIntegrationScheduleTime Intervalo, en milisegundos, en el que la tarea de servicio permanece en el estado de programación.
ServiceIntegrationTime Intervalo, en milisegundos, entre el momento en que se programa la tarea de servicio y el momento en que se cierra.
ServiceIntegrationsFailed Número de tareas de servicio que han producido un error.
ServiceIntegrationsScheduled Número de tareas de servicio programadas.
ServiceIntegrationsStarted Número de tareas de servicio iniciadas.
ServiceIntegrationsSucceeded Número de tareas de servicio realizadas correctamente.
ServiceIntegrationsTimedOut Número de tareas de servicio cuyo tiempo de espera se agotó durante el cierre.

Dimensión para métricas de integración de servicios de Step Functions

Dimensión Descripción

ServiceIntegrationResourceArn

EL ARN de recurso del servicio integrado.

Métricas de servicios

El espacio de nombres AWS/States incluye las siguientes métricas para el servicio de Step Functions.

Métrica Descripción
ThrottledEvents

Número de solicitudes que han sido objeto de una limitación controlada.

ProvisionedBucketSize

Número de solicitudes disponibles por segundo.

ProvisionedRefillRate

Número de solicitudes por segundo que se permiten en el bucket.

ConsumedCapacity

Número de solicitudes por segundo.

Dimensión para métricas de servicios de Step Functions

Dimensión Descripción

ServiceMetric

Filtra datos para mostrar las métricas de transiciones de estado.

Métricas de API

El espacio de nombres AWS/States incluye las siguientes métricas para la API de Step Functions.

Métrica Descripción
ThrottledEvents

Número de solicitudes que han sido objeto de una limitación controlada.

ProvisionedBucketSize

Número de solicitudes disponibles por segundo.

ProvisionedRefillRate

Número de solicitudes por segundo que se permiten en el bucket.

ConsumedCapacity

Número de solicitudes por segundo.

Dimensión para métricas de la API de Step Functions

Dimensión Descripción

APIName

Filtra datos a una API con el nombre de API especificado.

Visualización de métricas de Step Functions en CloudWatch

Puede usar la consola CloudWatch para ver métricas de Step Functions para ejecuciones, actividades, funciones e integraciones de servicios.

  1. Inicie sesión en Consola de administración de AWS y abra la consola de CloudWatch.

  2. Elija Metrics (Métricas) y, en la pestaña All Metrics (Todas las métricas), elija States (Estados).

    Si recientemente realizó alguna ejecución, podrá ver hasta cuatro tipos de métricas:

    • Métricas de ejecución

    • Métricas de funciones de actividades

    • Métricas de función de Lambda

    • Métricas de integración de servicios

  3. Elija un tipo de métrica para ver una lista de métricas.

    • Para ordenar las métricas por Nombre de la métrica o StateMachineArn, seleccione los encabezados de columna.

    • Para ver los gráficos de una métrica, active la casilla que aparece en la lista junto a la métrica. Puede cambiar los parámetros del gráfico utilizando los controles de intervalo de tiempo situados encima del gráfico.

      Puede elegir intervalos de tiempo personalizados que utilicen valores relativos o absolutos (fechas y horas específicas). También puede utilizar la lista desplegable para mostrar los valores como líneas, áreas apiladas o números (valores).

    • Para ver los detalles de un gráfico, pase el cursor sobre el código de color de la métrica que aparece debajo del gráfico para mostrar los detalles de la métrica.

Para obtener más información sobre cómo trabajar con métricas de CloudWatch, consulte Uso de métricas de Amazon CloudWatch en la Guía del usuario de Amazon CloudWatch.

Configuración de alarmas para las métricas de Step Functions en CloudWatch

Puede utilizar alarmas de Amazon CloudWatch para realizar acciones. Por ejemplo, si desea saber cuándo se alcanza el umbral de una alarma, puede configurar una alarma que envíe una notificación a un tema de Amazon SNS o un correo electrónico cuando la métrica StateMachinesFailed supere un determinado umbral.

Para configurar una alarma en una métrica

  1. Inicie sesión en Consola de administración de AWS y abra la consola de CloudWatch.

  2. Elija Metrics (Métricas) y, en la pestaña All Metrics (Todas las métricas), elija States (Estados).

    Si recientemente realizó alguna ejecución, podrá ver hasta cuatro tipos de métricas:

    • Métricas de ejecución

    • Métricas de funciones de actividades

    • Métricas de función de Lambda

    • Métricas de integración de servicios

  3. Elija un tipo de métrica para ver una lista de métricas.

  4. Elija una métrica y, a continuación, elija Métricas diagramadas.

  5. Seleccione el icono con forma de campana situado junto a una métrica de la lista para que aparezca la página Crear una alarma.

  6. Especifique los valores de Umbral de alarma y Acciones y, a continuación, elija Crear alarma.

Para obtener más información sobre la configuración de las alarmas y sobre cómo utilizar CloudWatch, consulte Creación de alarmas de Amazon CloudWatch en la Guía del usuario de Amazon CloudWatch.