How to monitor AWS EventBridge Scheduler and CloudWatch scheduled rules
Monitor EventBridge Scheduler with the AWS/Scheduler CloudWatch namespace: InvocationAttemptCount tracks how many times the scheduler tried to invoke your target, InvocationDroppedCount counts invocations that were dropped without a retry, and TargetErrorCount counts invocations where the target returned an error. For legacy CloudWatch Event rules, use the AWS/Events namespace with InvocationsFailedToBeSentToTarget and TriggeredRules. Alert on a drop or target error rate above zero to catch silent misses.
Which CloudWatch metrics matter for EventBridge Scheduler?
- InvocationAttemptCount: number of times EventBridge Scheduler attempted to invoke the target. A schedule that fired shows attempts; a schedule that never fired shows zero.
- InvocationDroppedCount: invocations that were dropped — typically because a retry policy was exhausted. Any non-zero value means work was silently lost.
- TargetErrorCount: invocations where the target itself returned an error. The scheduler tried; the target failed.
- InvocationThrottleCount: invocations the scheduler throttled before they reached the target.
Which CloudWatch metrics matter for legacy CloudWatch Event rules?
- TriggeredRules: number of rules matched and triggered. A rule that never matches shows zero.
- InvocationsFailedToBeSentToTarget: invocations that couldn't reach the target. Alert on any non-zero value.
- FailedInvocations: invocations that failed after all retry attempts were exhausted.
How do I create an alarm for dropped or failed invocations?
aws cloudwatch put-metric-alarm \
--alarm-name "EventBridge-Scheduler-Dropped" \
--namespace AWS/Scheduler \
--metric-name InvocationDroppedCount \
--statistic Sum \
--period 3600 \
--threshold 1 \
--comparison-operator GreaterThanOrEqualToThreshold \
--evaluation-periods 1 \
--alarm-actions arn:aws:sns:us-east-1:123456789012:my-alert-topicWhat about a schedule that never fires at all?
CloudWatch metrics show attempts and errors, but a schedule with zero invocations (misconfigured expression, wrong time zone, disabled state) produces zero metric data — which looks the same as a healthy quiet period. To distinguish silence-by-design from silence-by-failure, add a heartbeat from inside the target: if no ping arrives in the expected window, the monitor alerts regardless of what CloudWatch shows.
Add a missed-run alert to this job
The free tier gives you a heartbeat endpoint and an email alert when an expected ping doesn't arrive. Paid tiers add the log-aware diagnosis — the last log line and a likely cause in the alert. The heartbeat receiver ships in an upcoming release; see the plans to learn what each tier adds.
Frequently asked questions
- What is the difference between EventBridge Scheduler and CloudWatch Event rules?
- EventBridge Scheduler (the newer service) is dedicated to scheduled invocations with flexible recurrence, retry policies, and the AWS/Scheduler CloudWatch namespace. CloudWatch Event rules (the legacy path, now called EventBridge rules) use the AWS/Events namespace. New schedules should use EventBridge Scheduler.
- Does EventBridge Scheduler retry a failed invocation?
- Yes, up to the retry policy you configure. Once retries are exhausted, the invocation is counted in InvocationDroppedCount and the work is lost unless you add a dead-letter queue. Alert on InvocationDroppedCount so an exhausted retry policy surfaces immediately.