在 Amazon 中監控事件交付的最佳實務 EventBridge - Amazon EventBridge

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在 Amazon 中監控事件交付的最佳實務 EventBridge

為了確保事件驅動應用程式中的業務邏輯可靠地執行,請務必監控您的事件交付行為。 EventBridge 提供指標,讓您儘早監控、偵測和緩解問題,以確保可靠的事件交付。這些指標包括:

  • 計數器式指標,例如 InvocationAttemptsSuccessfulInvocationAttemptsRetryInvocationAttemptsFailedInvocations,可讓您觀察目標限流,並計算錯誤率。

  • 以延遲為基礎的指標,例如 IngestionToInvocationSuccessLatency,以提供事件交付和延遲的洞察。

這些指標可讓您監控事件驅動架構的運作狀態,並了解和減輕效能不佳、規模過小或無回應的目標所造成的事件交付問題。例如,永久擴展不足或限流目標可能會導致重試次數過多、事件交付延遲和永久交付失敗。

我們建議您結合多個指標以取得整體概觀,並密切監控這些指標。設定適當的警示和儀表板可讓您提早解決持續性問題。

如需特定指標的資訊,請參閱 EventBridge 指標

偵測事件交付失敗

EventBridge 包含您可以設定以報告目標調用的指標,也就是事件交付嘗試,每個規則。

我們建議您在規則層級監控下列指標:

  • InvocationAttempts 觀察 EventBridge 嘗試叫用目標的總次數,包括事件交付重試次數。

  • SuccessfulInvocationAttempts 用於 EventBridge 成功將事件交付給目標的調用嘗試次數。

  • RetryInvocationAttempts 代表事件交付重試次數的嘗試。

    增加 RetryInvocationAttempts可能是過小目標的早期指示。

此外,由於增加的重試嘗試可能是交付問題的第一個跡象,因此我們也建議建立單一指標,以追蹤所有目標調用的成功目標調用百分比。例如, CloudWatch 在 中SuccessfulInvocationRate,您可以使用下列公式,使用指標數學來建立稱為 的此類指標:

SuccessfulInvocationRate = SuccessfulInvocationAttempts / InvocationAttempts

然後,根據您的需求,您可以設定 CloudWatch 警示,在達到特定閾值時建立通知。

雖然偶爾SuccessfulInvocationRate因為暫時性流量暴增或調用錯誤而降低 可以視為正常,但常數不相符表示目標設定錯誤,而且需要作為共同責任模型的一部分加以解決。

如需指標數學的詳細資訊,請參閱 Amazon CloudWatch 使用者指南 中的將數學表達式與 CloudWatch 指標搭配使用。

依預設, EventBridge 會重試交付事件 24 小時,最多 185 次。 EventBridge 耗盡這些重試嘗試後,請 EventBridge 捨棄事件,如果已指定無效字母佇列,則將其傳送至無效字母佇列。如需詳細資訊,請參閱重試事件交付。為了避免在事件無法交付時遺失事件,建議您為每個規則目標設定無效字母佇列。如需詳細資訊,請參閱 以取得詳細資訊使用無效字母佇列

如果您已設定目標的無效字母佇列, EventBridge 則無法交付至指定目標的事件會在 FailedInvocations 指標和 InvocationsSentToDlq 指標中報告。如果您的應用程式遇到大量 FailedInvocationsInvocationsSentToDlq報告,建議您調查目標是否適當擴展,以及是否能夠接收指定的流量。

偵測事件交付延遲

EventBridge 也提供可讓您觀察 end-to-end 延遲的指標,也就是從事件擷取到成功交付到目標所花費的時間。這可以透過 IngestionToInvocationSuccessLatency 指標達成。此指標會呈現重試和延遲交付的影響,例如由於逾時和目標回應緩慢。 IngestionToInvocationSuccessLatency包括目標成功回應事件交付所需的時間。這可讓您監控 EventBridge 和目標之間的 end-to-end 延遲,並偵測目標的效能變化和降級,即使沒有目標限流或錯誤。