Skip to content

How do the different EventBridge Pipe "Failed" / "Timeout" metrics work?

0

EventBridge Pipes have the following metrics:

  • ExecutionTimeout
  • ExecutionFailed
  • ExecutionPartiallyFailed
  • EnrichmentStageFailed
  • TargetStageFailed
  • TargetStagePartiallyFailed

It's unclear how these overlap:

  • Do all "Failed" and "Timeout" metrics get included in "ExecutionFailed"?
  • What is an example of a partial execution failure - is this the same as a partial batch failure (where supported)?
4 Answers
0

EventBridge Pipes metrics provide detailed visibility into different types of failures that can occur during pipe execution. Here's how these metrics work and relate to each other:

The metrics represent different stages and types of failures:

  • ExecutionTimeout: Occurs when the entire pipe execution exceeds the maximum allowed time (5 minutes).

  • ExecutionFailed: Represents complete failures of the pipe execution.

  • ExecutionPartiallyFailed: Indicates that some items in a batch succeeded while others failed.

  • EnrichmentStageFailed: Specifically counts failures in the enrichment stage of the pipe.

  • TargetStageFailed: Counts complete failures in the target stage of the pipe.

  • TargetStagePartiallyFailed: Counts partial failures in the target stage.

These metrics do not all roll up into ExecutionFailed. Instead, they represent distinct failure scenarios at different stages of pipe execution. The ExecutionFailed metric represents complete failures of the entire pipe execution, while stage-specific metrics like EnrichmentStageFailed and TargetStageFailed provide more granular information about where the failure occurred.

A partial execution failure (tracked by ExecutionPartiallyFailed or TargetStagePartiallyFailed) typically occurs in the context of batch processing. For example, with Amazon SQS and stream sources like Kinesis and DynamoDB, EventBridge Pipes supports partial batch failure handling. If a target supports batching and only part of the batch succeeds, EventBridge automatically retries the failed items.

For Lambda and Step Functions targets, you can specify a partial failure by returning a payload with a defined structure that indicates which events need to be retried. For instance, you would return a JSON structure with batchItemFailures containing the IDs of the failed events. EventBridge Pipes will then retry those specific items.

EventBridge delivers these metrics to CloudWatch every minute, allowing you to monitor and troubleshoot your pipe executions effectively.
Sources
Logging Amazon EventBridge Pipes performance - Amazon EventBridge
Amazon EventBridge Pipes batching and concurrency - Amazon EventBridge
Logging and monitoring Amazon EventBridge Pipes using Amazon CloudWatch Logs - Amazon EventBridge

answered 7 months ago

EXPERT

reviewed 7 months ago

0

ExecutionFailed is a top-level metric that counts full pipe invocation failures—cases where no event makes it through all stages successfully. It’s not a roll-up of every other “Failed” or “Timeout” metric; those describe failures scoped to specific pipeline phases. ExecutionTimeout triggers when the overall pipe run exceeds the five‑minute limit and is treated as a separate terminal state, not a subset of ExecutionFailed. —Taz

answered 7 months ago

0

Thanks for the information - that helps.

I'm still a bit confused about ExecutionFailed though. To summarise my understanding:

  • If an event makes it through some, but not all, stages then it won't be counted.
  • If an event fails at the first stage, it will be counted in <Stage>Failed and ExecutionFailed.

Is that right?

I'm also still wondering about the ...PartiallyFailed metrics. Do they relate to partial batch failures, or something else?

answered 7 months ago

0

Doing some more investigation:

  • Created a pipe without any enrichment - just filter/target stages.
  • Deliberately made target stage fail.

I observed the ExectionFailed and TargetStageFailed metrics both incremented.

ExectionFailed and TargetStageFailed metrics both incremented

answered 7 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.