Skip to content
Get started

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 CLI — alarm on dropped 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-topic
Replace the SNS ARN and region. Create similar alarms for TargetErrorCount and, for CloudWatch Event rules, InvocationsFailedToBeSentToTarget. For missed invocations (a schedule that never fired at all), add a heartbeat from inside the target function so you're alerted when the expected ping doesn't arrive.

What 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.