

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

# 在 Amazon EventBridge 中監控事件交付的最佳實務
<a name="eb-monitoring-events-best-practices"></a>

為了確保事件驅動型應用程式中的商業邏輯能夠可靠地執行，請務必監控您的事件交付行為。EventBridge 提供的指標可讓您及早監控、偵測和緩解問題，以確保可靠的事件交付。這些指標包括：
+ 計數器式指標，例如 `InvocationAttempts`、 `SuccessfulInvocationAttempts``RetryInvocationAttempts`和 `FailedInvocations`，可讓您觀察目標限流，並計算錯誤率。
+ 以延遲為基礎的指標，例如 `IngestionToInvocationSuccessLatency`，以提供事件交付和延遲的洞見。

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

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

如需特定指標的資訊，請參閱 [EventBridge 指標](eb-monitoring.md#eb-metrics)。

## 偵測事件交付失敗
<a name="eb-monitoring-events-best-practices-delivery-failures"></a>

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

我們建議您在規則層級監控下列指標：
+ `InvocationAttempts` 觀察 EventBridge 嘗試叫用目標的總次數，包括事件交付重試次數。
+ `SuccessfulInvocationAttempts` 表示 EventBridge 成功將事件交付至目標的呼叫嘗試次數。
+ `RetryInvocationAttempts` 代表事件交付重試的嘗試次數。

  增加 `RetryInvocationAttempts`可能表示目標過小。

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

`SuccessfulInvocationRate` = `SuccessfulInvocationAttempts` / ` InvocationAttempts`

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

雖然偶爾`SuccessfulInvocationRate`會因為暫時性流量峰值或叫用錯誤而減少 可視為正常，但常數不相符表示目標設定錯誤，且需要作為共同責任模型的一部分加以解決。

如需指標數學的詳細資訊，請參閱《Amazon [ CloudWatch 使用者指南》中的搭配 CloudWatch 指標使用數學表達](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html)式。 *Amazon CloudWatch * 

根據預設，EventBridge 會重試交付事件 24 小時，最多 185 次。EventBridge 耗盡這些重試嘗試後，EventBridge 會捨棄事件，如果已指定無效字母佇列，則將其傳送至無效字母佇列。如需詳細資訊，請參閱[重試事件交付](eb-rule-retry-policy.md)。為了避免在事件無法交付時遺失事件，建議您為每個規則目標設定無效字母佇列。如需詳細資訊，請參閱 [使用無效字母佇列](eb-rule-dlq.md)。

如果您已為目標設定無效字母佇列，則 `FailedInvocations`指標和 `InvocationsSentToDlq` 指標會報告 EventBridge 無法交付至指定目標的事件。如果您的應用程式遇到大量 `FailedInvocations`或 `InvocationsSentToDlq`報告，我們建議您調查目標是否適當擴展，並且能夠接收指定的流量。

## 偵測事件交付延遲
<a name="eb-monitoring-events-best-practices-delivery-latency"></a>

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