Prácticas recomendadas de supervisión de la entrega de eventos en Amazon EventBridge
Para garantizar que la lógica empresarial de sus aplicaciones basadas en eventos se ejecute de forma fiable, es esencial supervisar el comportamiento de la entrega de eventos. EventBridge proporciona métricas que le permiten supervisar, detectar y mitigar los problemas con prontitud para garantizar una entrega fiable de eventos. Estas métricas incluyen:
Métricas basadas en contadores, como
InvocationAttempts,SuccessfulInvocationAttempts,RetryInvocationAttemptsyFailedInvocations, que le permiten observar la limitación objetivo y calcular las tasas de error.Métricas basadas en latencia, como
IngestionToInvocationSuccessLatency, para proporcionar información sobre la entrega de eventos y los retrasos.
Estas métricas le permiten supervisar el estado de sus arquitecturas basadas en eventos y comprender y mitigar los problemas de entrega de eventos causados por destinos con bajo rendimiento, con un tamaño insuficiente o que no responden. Por ejemplo, un destino que no se escala lo suficiente o está limitado de forma permanente puede dar lugar a un número excesivo de reintentos, retrasos en la entrega de eventos y errores de entrega constantes.
Le recomendamos que combine varias métricas para obtener una visión general integral y que las supervise de cerca. La configuración de las alarmas y los paneles adecuados le permiten abordar los problemas persistentes con prontitud.
Para obtener más información acerca de métricas específicas, consulte Métricas de EventBridge.
Detección de errores de entrega de eventos
EventBridge incluye métricas que puede configurar para generar informes sobre las invocaciones de destino (es decir, los intentos de entrega de eventos) por regla.
Le recomendamos que supervise las siguientes métricas a nivel de regla:
InvocationAttemptspara observar el número total de veces que EventBridge intenta invocar el destino, incluidos los reintentos de entrega de eventos.SuccessfulInvocationAttemptspara el número de intentos de invocación en los que EventBridge entregó correctamente el evento al destino.RetryInvocationAttemptspara el número de intentos que representan los reintentos de entrega del evento.Un aumento en
RetryInvocationAttemptspuede ser un indicio temprano de que el destino tiene un tamaño insuficiente.
Además, dado que el aumento de los reintentos puede ser una primera señal de problemas en la entrega, también recomendamos crear una métrica única que registre el porcentaje de invocaciones de destino exitosas con respecto a todas las invocaciones de destino. Por ejemplo, en CloudWatch puede utilizar cálculos de métricas para crear una métrica de este tipo, denominada SuccessfulInvocationRate, mediante la siguiente fórmula:
SuccessfulInvocationRate = SuccessfulInvocationAttempts / InvocationAttempts
A continuación, en función de sus necesidades, puede configurar alarmas de CloudWatch para que envíen notificaciones cuando se alcance un determinado umbral.
Si bien una disminución ocasional de SuccessfulInvocationRate debido a picos de tráfico temporales o errores de invocación puede considerarse normal, una discordancia constante indica que hay un destino mal configurado y debe abordarse como parte del modelo de responsabilidad compartida.
Para obtener más información sobre los cálculos de métricas, consulte Uso de expresiones matemáticas con métricas de CloudWatch en la Guía del usuario de Amazon CloudWatch.
De forma predeterminada, EventBridge vuelve a intentar entregar un evento durante 24 horas y hasta 185 veces. Una vez que EventBridge agota estos reintentos, descarta el evento o lo envía a una cola de mensajes fallidos, si se ha especificado alguna. Para obtener más información, consulte Reintentar la entrega de eventos. Para evitar perder eventos si no se han podido entregar, le recomendamos configurar una cola de mensajes fallidos para el destino de cada regla. Para obtener más información, consulte Uso de colas de mensajes fallidos.
Los eventos que EventBridge no puede entregar al destino especificado se registran en las métricas FailedInvocations y InvocationsSentToDlq si se ha configurado una cola de mensajes fallidos para el destino. Si su aplicación tiene un gran número de registros de FailedInvocations o InvocationsSentToDlq, le recomendamos que investigue si el destino tiene la escala adecuada y es capaz de recibir el tráfico en cuestión.
Detección de retrasos de entrega de eventos
EventBridge también proporciona una métrica que le permite observar la latencia completa, es decir, el tiempo que transcurre desde la ingesta del evento hasta su entrega al destino. Se trata de la métrica IngestionToInvocationSuccessLatency. Esta métrica muestra los efectos de los reintentos y los retrasos en la entrega, por ejemplo, debido a los tiempos de espera y a la lentitud de las respuestas de los destinos. IngestionToInvocationSuccessLatency incluye el tiempo que tarda el destino en responder correctamente a la entrega del evento. Esto le permite supervisar la latencia completa entre EventBridge y su destino, y detectar las variaciones y degradaciones del rendimiento de los destinos, incluso cuando no hay limitaciones ni errores en el destino.