

# Monitoring Amazon EventBridge Scheduler with Amazon CloudWatch
<a name="monitoring-cloudwatch"></a>

 You can monitor Amazon EventBridge Scheduler using CloudWatch, which collects raw data and processes it into readable, near real-time metrics. EventBridge Scheduler emits a set of metrics for all schedules, and an additional set of metrics for schedules that have an associated dead-letter queue (DLQ). If you [configure a DLQ](configuring-schedule-dlq.md) for your schedule, EventBridge Scheduler publishes additional metrics when your schedule exhausts its retry policy. 

 These statistics are kept for 15 months, so that you can access historical information and gain a better perspective on why a schedule is failing, and troubleshoot underlying issues. You can also set alarms that watch for certain thresholds, and send notifications or take actions when those thresholds are met. For more information, see the [Amazon CloudWatch User Guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/). 

**Topics**
+ [Terms](#monitoring-cloudwatch-terms)
+ [Dimensions](#monitoring-cloudwatch-dimensions)
+ [Accessing metrics](#monitoring-cloudwatch-view-metrics)
+ [List of metrics](#monitoring-cloudwatch-metrics-list)
+ [EventBridge Scheduler usage metrics](monitoring-cloudwatch-usage-metrics.md)

## Terms
<a name="monitoring-cloudwatch-terms"></a>

**Namespace**  
A namespace is a container for the CloudWatch metrics of an AWS service. For EventBridge Scheduler, the namespace is `AWS/Scheduler`.

**CloudWatch metrics**  
A CloudWatch metric represents a time-ordered set of data points that are specific to CloudWatch. 

**Dimension**  
A dimension is a name/value pair that is part of the identity of a metric. 

**Unit**  
 A statistic has a unit of measure. For EventBridge Scheduler, units include *Count*. 

## Dimensions
<a name="monitoring-cloudwatch-dimensions"></a>

This section describes the CloudWatch dimensions grouping for EventBridge Scheduler metrics in CloudWatch.


| Dimension | Description | 
| --- | --- | 
|  ScheduleGroup  |  The group of schedules for which you want to view metrics using CloudWatch. If you have not created any groups yet, EventBridge Scheduler associates your schedules with the `default` group.  | 

## Accessing metrics
<a name="monitoring-cloudwatch-view-metrics"></a>

This section describes how to access performance metrics in CloudWatch for a specific EventBridge Scheduler schedule.

**To view performance metrics for a dimension**

1. Open the [Metrics page](https://console.aws.amazon.com/cloudwatch/home#metricsV2:graph=~()) on the CloudWatch console.

1.  Use the AWS Region selector to choose the Region for your schedule 

1. Choose the **Scheduler** namespace.

1. In the **All metrics** tab, choose a dimension, for example, **Schedule Group Metrics**. To see metrics for all the schedules you've created in your selected Region, choose **Account Metrics**.

1. Choose a CloudWatch metric for a dimension. For example, **InvocationAttemptCount** or **InvocationDroppedCount**, then choose **Graph search**.

1. Choose the **Graphed metrics** tab to view performance statistics for EventBridge Scheduler metrics.

## List of metrics
<a name="monitoring-cloudwatch-metrics-list"></a>

The following tables list the metrics for all EventBridge Scheduler schedules, as well as additional metrics for schedules for which you've configured a DLQ.

### Metrics for all schedules
<a name="monitoring-cloudwatch-metrics-list-schedules"></a>


| Namespace | Metric | Unit | Description | 
| --- | --- | --- | --- | 
|  `AWS/Scheduler`  |  `InvocationAttemptCount`  |  Count  |  Emitted for every invocation attempt. Use this metric to check that EventBridge Scheduler is attempting to invoke your schedules, and to see when invocations approach your account quotas.  | 
|  `AWS/Scheduler`  |  `TargetErrorCount`  |  Count  |  Emitted when the target returns an exception after EventBridge Scheduler calls the target API. Use this to check when delivery to a target fails.  | 
|  `AWS/Scheduler`  |  `TargetErrorThrottledCount`  |  Count  |  Emitted when target invocation fails due to API throttling by the target. Use this to diagnose delivery failures when the underlying reason is the target API throttling calls made by EventBridge Scheduler  | 
|  `AWS/Scheduler`  |  `InvocationThrottleCount`  |  Count  |  Emitted when EventBridge Scheduler throttles a target invocation because it exceeds your service quotas set by EventBridge Scheduler. Use this to determine when you have exceeded your invocations throttle limit quota. For more information about service quotas, see [Quotas for Amazon EventBridge Scheduler](scheduler-quotas.md).  | 
|  `AWS/Scheduler`  |  `InvocationDroppedCount`  |  Count  |  Emitted when EventBridge Scheduler stops attempting to invoke the target after a schedule's retry policy has been exhausted. For more information about retry policies, see [RetryPolicy](https://docs.aws.amazon.com/scheduler/latest/APIReference/API_RetryPolicy.html) in the *EventBridge Scheduler API Reference*.  | 

### Metrics for schedules with a DLQ
<a name="monitoring-cloudwatch-metrics-list-dlq"></a>

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/scheduler/latest/UserGuide/monitoring-cloudwatch.html)

# EventBridge Scheduler usage metrics
<a name="monitoring-cloudwatch-usage-metrics"></a>

CloudWatch collects metrics that track the usage of some AWS resources. These metrics correspond to AWS service quotas. Tracking these metrics can help you proactively manage your quotas. For more information about service quotas, see [Quotas for Amazon EventBridge Scheduler](scheduler-quotas.md).

These metrics are contained in the `AWS/Usage` namespace, rather than `AWS/Scheduler`, and are collected every minute. CloudWatch publishes metrics in this namespace with the dimensions `Service`, `Class`, `Type`, and `Resource`.


**Common dimensions for usage metrics**  

| Dimension | Description | 
| --- | --- | 
|  `Service`  |  The name of the AWS service containing the resource. For EventBridge Scheduler usage metrics, the value is `Scheduler`.  | 
|  `Class`  |  The class of resource being tracked. For EventBridge Scheduler usage metrics, the value is `None`.  | 
|  `Type`  |  The type of resource being tracked. For API usage metrics, the value is `API`. For resource count metrics, the value is `Resource`.  | 
|  `Resource`  |  The specific resource being tracked. For API usage metrics, this is the API operation name. For resource count metrics, this is the resource type being counted.  | 

## API usage metrics
<a name="monitoring-cloudwatch-api-usage-metrics"></a>

API usage metrics track the number of API operations performed in your account. Use these metrics to monitor API call volume and manage your API rate quotas.

The metric name is `CallCount`. The most useful statistic for this metric is `SUM`, which represents the total operation count for the 1-minute period.


**API usage metrics**  

| Metric | Resource | Description | 
| --- | --- | --- | 
| `CallCount` | `CreateSchedule` | The number of `CreateSchedule` API operations performed in your account. | 
| `CallCount` | `CreateScheduleGroup` | The number of `CreateScheduleGroup` API operations performed in your account. | 
| `CallCount` | `DeleteSchedule` | The number of `DeleteSchedule` API operations performed in your account. | 
| `CallCount` | `DeleteScheduleGroup` | The number of `DeleteScheduleGroup` API operations performed in your account. | 
| `CallCount` | `GetSchedule` | The number of `GetSchedule` API operations performed in your account. | 
| `CallCount` | `GetScheduleGroup` | The number of `GetScheduleGroup` API operations performed in your account. | 
| `CallCount` | `ListScheduleGroups` | The number of `ListScheduleGroups` API operations performed in your account. | 
| `CallCount` | `ListSchedules` | The number of `ListSchedules` API operations performed in your account. | 
| `CallCount` | `ListTagsForResource` | The number of `ListTagsForResource` API operations performed in your account. | 
| `CallCount` | `TagResource` | The number of `TagResource` API operations performed in your account. | 
| `CallCount` | `UntagResource` | The number of `UntagResource` API operations performed in your account. | 
| `CallCount` | `UpdateSchedule` | The number of `UpdateSchedule` API operations performed in your account. | 

For example, the `CallCount` metric with the following dimensions indicates the number of times the `CreateSchedule` API operation has been called in your account:
+ "Service": "Scheduler"
+ "Class": "None"
+ "Type": "API"
+ "Resource": "CreateSchedule"

## Resource count metrics
<a name="monitoring-cloudwatch-resource-count-metrics"></a>

Resource count metrics track the approximate number of resources in your account. Use these metrics to monitor when you are approaching your service quota limits, allowing you to request quota increases before running out of capacity.

The metric name is `ResourceCount`. The most useful statistic for this metric is `Maximum`.


**Resource count metrics**  

| Metric | Resource | Description | 
| --- | --- | --- | 
|  `ResourceCount`  |  `ApproximateSchedule`  |  Approximate number of schedules in your account. Use this metric to monitor when you are approaching your schedules quota limit, to help you avoid `ServiceQuotaExceededException` errors when calling `CreateSchedule`. When the number of schedules is less than 1 million, this metric may show zero. For an alarm to notify when nearing your schedules quota, we recommend using the `Maximum` statistic with a threshold of 5 million or higher, since the default schedules quota is 10 million.  | 
|  `ResourceCount`  |  `ApproximateScheduleGroup`  |  Approximate number of schedule groups in your account. Use this metric to monitor when you are approaching your schedule groups quota limit, to help you avoid `ServiceQuotaExceededException` errors when calling `CreateScheduleGroup`.  | 

For example, the `ResourceCount` metric with the following dimensions and the `Maximum` statistic indicates the approximate number of schedules in your account:
+ "Service": "Scheduler"
+ "Class": "None"
+ "Type": "Resource"
+ "Resource": "ApproximateSchedule"