DOP-C02 Monitoring and Logging Practice Question
A company is using AWS Lambda to process streaming data from Amazon Kinesis. The processing rate is slower than expected, and the engineer needs to monitor the number of records that are failing processing. Which metric should be used to create a CloudWatch alarm?
⚠ Common exam trap
Watch out — candidates often confuse 'Errors' (Lambda function exceptions) with 'record processing failures' in a Kinesis stream, not realizing that Kinesis retries failed batches internally, so the Lambda may not emit an error metric for each failed record.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
IteratorAge
The IteratorAge metric measures the age of the last record in the Lambda function's iterator, indicating how far behind real-time the processing is. A high or increasing IteratorAge suggests that records are being retried or stuck due to processing failures, making it the correct metric to monitor for records failing processing in a Kinesis-triggered Lambda.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Invocations
Why it's wrong here
The Invocations metric increments each time Lambda is invoked by the Kinesis event source mapping, regardless of whether the execution succeeds or fails. It therefore reflects call volume, not the health or outcome of streaming data processing. A healthy, heavy workload can show a high Invocations count while a failing processor might actually show a decreasing count if the mapping stops invoking the function. Because it fails to distinguish successful processing from backend or data errors, it cannot serve as a reliable signal for detecting streaming data failures.
- ✓
IteratorAge
Why this is correct
IteratorAge is the correct metric to monitor for Kinesis-triggered Lambda because it directly measures the age of the oldest unprocessed record, reported in milliseconds. When the Lambda consumer can't keep up with the shard's data rate, the iterator age grows, indicating that stream records are sitting unprocessed for longer — a clear sign of a processing bottleneck or backlog. A sustained increase in IteratorAge typically drives alarms for scaling out the Lambda function or increasing the number of shards, making it the definitive indicator of stream processing lag.
- ✗
Errors
Why it's wrong here
The Errors metric only counts Lambda invocations that terminate due to unhandled exceptions or runtime crashes during the function execution. However, many Kinesis processing failures never surface as invocation errors: a batch can be successfully invoked but fail to checkpoint, or the function may intentionally swallow a record that can't be deserialized after retries. Furthermore, errors that occur in downstream systems or during partial batch failures are not reflected in this metric. Thus, a near-zero Errors count can still coexist with a significant stream backlog, making it an unreliable measure for this scenario.
- ✗
Throttles
Why it's wrong here
Throttles occurs when Lambda refuses to run a new invocation because the function's reserved or account-level concurrency limit is already exhausted. In a Kinesis event-source mapping, a throttled event is retried by Lambda, so the record is not immediately lost, but repeated throttling can stall progress and eventually cause data to be pushed beyond the retention window. The metric specifically indicates a resource capacity constraint rather than a failure inherent to the data or processing logic. Therefore, Throttles alone does not reveal why records are failing or lagging; it only shows when the invocation was rejected before code could run.
Quick reference
Cloud Service Model Comparison
| Model | You Manage | Provider Manages | Examples |
|---|---|---|---|
| IaaS | OS, runtime, apps, data | Hardware, hypervisor, networking | EC2, Azure VMs, GCP Compute Engine |
| PaaS | Apps and data | OS, runtime, middleware, hardware | Elastic Beanstalk, Azure App Service |
| SaaS | Data and settings only | Everything else | Microsoft 365, Salesforce, Workday |
| FaaS / Serverless | Function code only | Infra, scaling, runtime | Lambda, Azure Functions, Cloud Run |
| CaaS | Containers and apps | Kubernetes, OS, hardware | EKS, AKS, GKE |
Go deeper
Related to this question
About these practice questions
Courseiva writes every DOP-C02 question from scratch — 1,298 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This DOP-C02 practice question is part of Courseiva's free Amazon Web Services certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the DOP-C02 exam.