Práticas recomendadas para monitorar a entrega de eventos no Amazon EventBridge - Amazon EventBridge

Práticas recomendadas para monitorar a entrega de eventos no Amazon EventBridge

Para garantir que a lógica de negócios em suas aplicações orientadas a eventos seja executada de forma confiável, é essencial monitorar o comportamento da entrega de eventos. O EventBridge fornece métricas que permitem monitorar, detectar e mitigar problemas com antecedência para garantir a entrega confiável de eventos. Dentre estas métricas:

  • Métricas baseadas em contadores, como InvocationAttempts, SuccessfulInvocationAttempts, RetryInvocationAttempts e FailedInvocations, para permitir que você observe o controle de utilização do destino e calcule as taxas de erro.

  • Métricas baseadas em latência, como IngestionToInvocationSuccessLatency, para fornecer insights sobre entrega de eventos e atrasos.

Essas métricas permitem que você monitore a integridade de suas arquiteturas orientadas a eventos e compreenda e mitigue os problemas de entrega de eventos causados por destinos de baixo desempenho, subdimensionados ou que não respondem. Por exemplo, um destino permanentemente subescalado ou com controle de utilização pode levar a tentativas excessivas, atrasos na entrega de eventos e falhas permanentes na entrega.

Recomendamos que você combine várias métricas para obter uma visão geral completa e monitorá-las de perto. A configuração de alarmes e painéis adequados permite que você resolva problemas persistentes com antecedência.

Para obter informações sobre métricas específicas, consulte Métricas do EventBridge.

Detectar falhas na entrega de eventos

O EventBridge inclui métricas que você pode configurar para relatar invocações ao destino, ou seja, tentativas de entrega de eventos, por regra.

Recomendamos que você monitore as seguintes métricas em nível de regra:

  • InvocationAttempts para observar o número total de vezes que o EventBridge tenta invocar o destino, incluindo novas tentativas de entrega de eventos.

  • SuccessfulInvocationAttempts para o número de tentativas de invocação em que o EventBridge entregou o evento ao destino com êxito.

  • RetryInvocationAttempts para o número de tentativas que representam novas tentativas de entrega de eventos.

    Um aumento em RetryInvocationAttempts pode indicar com antecedência se um destino está subdimensionado.

Além disso, como o aumento de tentativas pode ser o primeiro sinal de problemas de entrega, também recomendamos criar uma única métrica que rastreie a porcentagem de invocações bem-sucedidas ao destino em todas as respectivas invocações. Por exemplo, no CloudWatch, você pode usar a matemática de métricas para criar essa métrica, chamada SuccessfulInvocationRate, usando a seguinte fórmula:

SuccessfulInvocationRate = SuccessfulInvocationAttempts / InvocationAttempts

Então, dependendo dos seus requisitos, você pode configurar alarmes do CloudWatch para criar notificações quando determinado limite for atingido.

Embora uma diminuição ocasional em SuccessfulInvocationRate devido a picos temporários de tráfego ou erros de invocação possa ser considerada normal, uma incompatibilidade constante indica um destino configurado incorretamente e precisa ser tratada como parte do Modelo de Responsabilidade Compartilhada.

Para obter mais informações sobre a matemática de métricas, consulte Uso de expressões matemáticas com as métricas do CloudWatch no Guia do usuário do Amazon CloudWatch.

Por padrão, o EventBridge tenta entregar um evento novamente por 24 horas e até 185 vezes. Depois que o EventBridge esgota essas tentativas, ele descarta o evento ou o envia a uma fila de mensagens não entregues, caso uma fila tenha sido especificada. Para obter mais informações, consulte Tentar entregar eventos novamente. Para evitar a perda de eventos, caso eles não sejam entregues, recomendamos que você configure uma fila de mensagens não entregues para cada destino da regra. Para obter mais informações, consulte Usar filas de mensagens não entregues.

Os eventos que o EventBridge não entrega ao alvo especificado são relatados nas métricas FailedInvocations e InvocationsSentToDlq, se você tiver configurado uma fila de mensagens não entregues para o destino. Se sua aplicação estiver recebendo um grande número de relatórios de FailedInvocations ou InvocationsSentToDlq, recomendamos que você investigue se o destino está escalado corretamente e consegue receber o tráfego fornecido.

Detectar atrasos na entrega de eventos

O EventBridge também fornece uma métrica que permite observar a latência de ponta a ponta: o tempo transcorrido desde a ingestão do evento até a entrega bem-sucedida ao destino. Isso pode ser feito com a métrica IngestionToInvocationSuccessLatency. Essa métrica mostra os efeitos de novas tentativas e atrasos na entrega devido, por exemplo, a tempos limite de execução e respostas lentas dos destinos. IngestionToInvocationSuccessLatency inclui o tempo que o destino leva para responder com êxito à entrega do evento. Isso permite que você monitore a latência de ponta a ponta entre o EventBridge e o destino e detecte variações e degradações de desempenho nos destinos, mesmo quando não há controle de utilização ou erros no destino.