

# Monitoring Amazon EventBridge
Monitoring

EventBridge sends metrics to Amazon CloudWatch every minute for everything from the number of matched [events](eb-events.md) to the number of times a [target](eb-targets.md) is invoked by a [rule](eb-rules.md).

 The following video reviews monitoring and auditing EventBridge behavior through CloudWatch:




**Topics**
+ [

## EventBridge metrics
](#eb-metrics)
+ [

## Dimensions for EventBridge metrics
](#eb-metrics-dimensions)
+ [

# Best practices for monitoring event delivery in Amazon EventBridge
](eb-monitoring-events-best-practices.md)
+ [

# EventBridge is the evolution of Amazon CloudWatch Events
](eb-cwe-now-eb.md)

## EventBridge metrics
EventBridge metrics

The `AWS/Events` namespace includes the following metrics.

For the metrics that use Count as a unit, Sum and SampleCount tend to be the most useful statistics.

Metrics that specify only the `RuleName` dimension refer to the default event bus. Metrics that specify both the `EventBusName` and `RuleName` dimensions refer to a custom event bus. 


| Metric | Description | Dimensions | Units | 
| --- | --- | --- | --- | 
|  DeadLetterInvocations  |  The number of times a rule’s target isn't invoked in response to an event. This includes invocations that would result in running the same rule again, causing an infinite loop.  | RuleName | Count | 
|  Events  |  The number of partner events ingested by EventBridge.  | EventSourceName | Count | 
|  FailedInvocations  |  The number of invocations that failed permanently. This doesn't include invocations that are retried or invocations that succeeded after a retry attempt. It also doesn't count failed invocations that are counted in `DeadLetterInvocations`.  EventBridge only sends this metric to CloudWatch if it isn't zero.   | RuleName | Count | 
|  Invocations  |  The number of times a target is invoked by a rule in response to an event. This includes successful and failed invocations, but doesn't include throttled or retried attempts until they fail permanently. It doesn't include `DeadLetterInvocations`.  EventBridge only sends this metric to CloudWatch if it isn't zero.   | None, RuleName | Count | 
| InvocationAttempts | Number of times EventBridge attempted invoking a target.  | EventBusName, None, RuleName | Count | 
|  InvocationsCreated  |  The total number of invocations created in response to each event.  This metric is often used to monitor utilization of the **Invocations throttle limit in transactions per second** [EventBridge service quota](eb-quota.md#eb-limits).  | None | Count | 
|  InvocationsFailedToBeSentToDlq  |  The number of invocations that couldn't be moved to a dead-letter queue. Dead-letter queue errors occur due to permissions errors, unavailable resources, or size limits.  EventBridge only sends this metric to CloudWatch if it isn't zero.   | RuleName | Count | 
|  IngestiontoInvocationCompleteLatency  |  The time taken from event ingestion to completion of the first invocation attempt.   | EventBusName, None, RuleName | Milliseconds | 
| IngestionToInvocationSuccessLatency | The time taken from event ingestion to successful target delivery, using the invocation end time as cutoff. This metric is only emitted after the first successful delivery attempt to the target. | EventBusName, None, RuleName | Milliseconds | 
|  IngestiontoInvocationStartLatency  |  The time to process events, measured from when an event is ingested by EventBridge to the first invocation of a target.   | EventBusName, None, RuleName | Milliseconds | 
|  InvocationsSentToDlq  |  The number of invocations that are moved to a dead-letter queue.  EventBridge only sends this metric to CloudWatch if it isn't zero.   | RuleName | Count | 
|  MatchedEvents  |  If EventBusName or EventSourceName is specified, the number of events that matched with any rule. If RuleName is specified, the number of events that matched with a specific rule.  | EventBusName, EventSourceName, RuleName | Count | 
| RetryInvocationAttempts | Number of times target invocation has been retried. EventBridge only sends this metric to CloudWatch if it isn't zero.  | EventBusName, None, RuleName | Count | 
| SuccessfulInvocationAttempts | Number of times target was successfully invoked.  | EventBusName, None, RuleName | Count | 
|  ThrottledRules  |  The number of times rule execution was throttled. Invocations for those rules may be delayed. For more information, see **Invocations throttle limit in transactions per second** in [EventBridge event bus quotas](eb-quota.md#eb-limits).  | EventBusName, None, RuleName | Count | 
|  TriggeredRules  |  The number of rules that have run and matched with any event. You won't see this metric in CloudWatch until a rule is triggered.  | EventBusName, None, RuleName | Count | 
|  EventBusEncryptionStarted  |  The number of times a re-encryption operation has started for an event bus. Updating the event bus configuration triggers a re-encryption of the static configuration stored by EventBridge.  | EventBusName | Count | 
|  EventBusEncryptionCompleted  |  The number of times a re-encryption operation has completed successfully for an event bus. Updating the event bus configuration triggers a re-encryption of the static configuration stored by EventBridge.  | EventBusName | Count | 
|  EventBusEncryptionFailed  |  The number of times a re-encryption operation has failed for an event bus. Updating the event bus configuration triggers a re-encryption of the static configuration stored by EventBridge.  EventBridge only sends this metric to CloudWatch if it isn't zero.   | EventBusName | Count | 

### EventBridge PutEvents metrics


The `AWS/Events` namespace includes the following metrics pertaining to the `[PutEvents](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEvents.html)` API requests.

For the metrics that use Count as a unit, Sum and SampleCount tend to be the most useful statistics.


| Metric | Description | Dimensions | Units | 
| --- | --- | --- | --- | 
| PutEventsApproximateCallCount | Approximate number of received `[PutEvents](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEvents.html)` requests.  | None | Count | 
|  PutEventsApproximateFailedCount  | Approximate number of failed `[PutEvents](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEvents.html)` requests.  | None | Count | 
|  PutEventsApproximateSuccessCount  | Approximate number of successful `[PutEvents](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEvents.html)` requests.  | None | Count | 
|  PutEventsApproximateThrottledCount  |  Number of `[PutEvents](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEvents.html)` requests rejected due to throttling.  | None | Count | 
| PutEventsEntriesCount |  The number of event entries contained in a `[PutEvents](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEvents.html)` request.  | None | Count | 
| PutEventsFailedEntriesCount |  The number of event entries contained in a `[PutEvents](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEvents.html)` request that failed to be ingested.  | None | Count | 
|  PutEventsLatency  |  The time taken per `[PutEvents](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEvents.html)` request.  | None | Milliseconds | 
|  PutEventsRequestSize  |  The size of the `[PutEvents](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEvents.html)` request.  | None | Bytes | 

### EventBridge PutPartnerEvents metrics


The `AWS/Events` namespace includes the following metrics pertaining to the `[PutPartnerEvents](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutPartnerEvents.html)` API requests.

**Note**  
EventBridge only includes metrics pertaining to [PutPartnerEvents](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutPartnerEvents.html) requests in SaaS partner accounts that send events. For more information, see [Receiving events from a SaaS partner with Amazon EventBridge](eb-saas.md)

For the metrics that use Count as a unit, Sum and SampleCount tend to be the most useful statistics.


| Metric | Description | Dimensions | Units | 
| --- | --- | --- | --- | 
| PutPartnerEventsApproximateCallCount | Approximate number of received `[PutPartnerEvents](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutPartnerEvents.html)` requests.  | None | Count | 
|  PutPartnerEventsApproximateFailedCount  | Approximate number of failed `[PutPartnerEvents](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutPartnerEvents.html)` requests.  | None | Count | 
|  PutPartnerEventsApproximateThrottledCount  |  Number of `[PutPartnerEvents](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutPartnerEvents.html)` requests rejected due to throttling.  | None | Count | 
|  PutPartnerEventsApproximateSuccessCount  | Approximate number of successful `[PutPartnerEvents](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutPartnerEvents.html)` requests.  | None | Count | 
| PutPartnerEventsEntriesCount |  The number of event entries contained in a `[PutPartnerEvents](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutPartnerEvents.html)` request.  | None | Count | 
| PutPartnerEventsFailedEntriesCount |  The number of event entries contained in a `[PutPartnerEvents](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutPartnerEvents.html)` request that failed to be ingested.  | None | Count | 
|  PutPartnerEventsLatency  |  The time taken per `[PutPartnerEvents](https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutPartnerEvents.html)` request.  | None | Milliseconds | 

## Dimensions for EventBridge metrics


EventBridge metrics have *dimensions*, or sortable attributes, which are listed below.


|  Dimension  |  Description  | 
| --- | --- | 
|  EventBusName  |  Filters the available metrics by event bus name.  | 
|  EventSourceName  |  Filters the available metrics by partner event source name.  | 
|  RuleName  |  Filters the available metrics by rule name.  | 

# Best practices for monitoring event delivery in Amazon EventBridge
Monitoring event delivery

To ensure that the business logic in your event-driven applications executes reliably, it is essential to monitor your event delivery behavior. EventBridge provides metrics that enable you to monitor, detect, and mitigate issues early to ensure reliable event delivery. These metrics include:
+ Counter-based metrics, such as `InvocationAttempts`, `SuccessfulInvocationAttempts`, `RetryInvocationAttempts` and `FailedInvocations`, to enable you to observe target throttling, and calculate error rates.
+ Latency-based metrics, such as `IngestionToInvocationSuccessLatency`, to provide insights into event delivery and delays.

These metrics allow you to monitor the health of your event-driven architectures, and to understand and mitigate event delivery issues caused by underperforming, undersized, or unresponsive targets. For example, a permanently under-scaled or throttled target can lead to excessive retries, delays in event delivery, and permanent delivery failures.

We recommend you combine multiple metrics to get a holistic overview, and closely monitor them. Setting up appropriate alarms and dashboards enables you to address persistent issues early.

For information on specific metrics, see [EventBridge metrics](eb-monitoring.md#eb-metrics).

## Detecting event delivery failures
Event delivery failures

EventBridge includes metrics you can configure to report target invocations--that is, event delivery attempts--per rule.

We recommend you monitor the following metrics at the rule level:
+ `InvocationAttempts` to observe the total number of times EventBridge attempts to invoke the target, including event delivery retries. 
+ `SuccessfulInvocationAttempts` for the number of invocation attempts where EventBridge successfully delivered the event to the target.
+ `RetryInvocationAttempts` for the number attempts that represent event delivery retries.

  An increase in `RetryInvocationAttempts` may be an early indication of an undersized target.

In addition, since increased retry attempts can be a first sign of delivery issues, we also recommend creating a single metric that tracks the percentage of successful target invocations to all target invocations. For example, in CloudWatch you can use metric math to create such a metric, called `SuccessfulInvocationRate`, using the following formula:

`SuccessfulInvocationRate` = `SuccessfulInvocationAttempts` / ` InvocationAttempts`

Then, depending on your requirements, you can configure CloudWatch Alarms to create notifications when a certain threshold is hit. 

Although an occasional decrease of `SuccessfulInvocationRate` due to temporary traffic spikes or invocation errors can be considered normal, a constant mismatch is an indication of a misconfigured target and needs to be addressed as part of the shared responsibility model.

For more information on metric math, see [Using math expressions with CloudWatch metrics](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/using-metric-math.html) in the *Amazon CloudWatch User Guide*. 

By default, EventBridge retries delivering an event for 24 hours and up to 185 times. After EventBridge exhausts these retry attempts, EventBridge either drops the event, or sends it to a dead-letter queue if one has been specified. For more information, see [Retrying event delivery](eb-rule-retry-policy.md). To avoid losing events if they fail to be delivered, we recommend you configure a dead-letter queue for each rule target. For more information, For more information, see [Using dead-letter queues](eb-rule-dlq.md).

Events that EventBridge fails to deliver to the specified target are reported in the `FailedInvocations` metric and the `InvocationsSentToDlq` metric if you have configured a dead-letter queue for the target. If your application is experiencing a large number of `FailedInvocations` or `InvocationsSentToDlq` reports, we recommend you investigate if the target is properly scaled and able to receive the given traffic.

## Detecting event delivery delays
Event delivery delays

EventBridge also provides a metric that lets you observe the end-to-end latency--the time it takes from event ingestion to successful delivery to the target. This can be achieved with the `IngestionToInvocationSuccessLatency` metric. This metric surfaces effects from retries and delayed delivery, for example due to timeouts and slow responses from targets. `IngestionToInvocationSuccessLatency` includes the time the target takes to successfully respond to event delivery. This allows you to monitor the end-to-end latency between EventBridge and your target, and detect performance variations and degradations of targets, even when there is no target throttling or errors.

# EventBridge is the evolution of Amazon CloudWatch Events
CloudWatch Events

EventBridge was formerly called Amazon CloudWatch Events. The default event bus and the rules you created in CloudWatch Events also display in the EventBridge console. EventBridge uses the same CloudWatch Events API, so your code that uses the CloudWatch Events API stays the same.

EventBridge builds on the capabilities of CloudWatch Events with features such as partner events, Schema Registry, and EventBridge Pipes. New features added to EventBridge are not added to CloudWatch Events. For more information, see [What Is Amazon EventBridge?](eb-what-is.md).

All the features you're used to in CloudWatch Events are also present in EventBridge, including:
+ [Event buses in Amazon EventBridge](eb-event-bus.md)
+ [Rules in Amazon EventBridge](eb-rules.md)
+ [Events in Amazon EventBridge](eb-events.md)
+ [Events from AWS services](eb-events.md#eb-service-event)

EventBridge features that build on and expand the capabilities of events include: 
+ [Receiving events from a SaaS partner with Amazon EventBridge](eb-saas.md)
+ [Amazon EventBridge Pipes](eb-pipes.md)
+ [Amazon EventBridge schemas](eb-schema.md)
+ [Amazon EventBridge Scheduler](using-eventbridge-scheduler.md)