A retail company exposes a public checkout API behind an Application Load Balancer. The service is healthy most of the day, but customers in some Regions occasionally report timeouts during quiet periods when there is no organic traffic to trigger existing CloudWatch alarms. The DevOps team wants to detect availability and latency regressions on the checkout endpoint continuously, from outside the application, and raise an alarm before real users are affected, with the least operational overhead. Which approach best meets this requirement?
- AEnable CloudWatch RUM on the checkout web pages so that real-user browser sessions report page load times, then alarm on the RUM performance metrics whenever latency exceeds the agreed threshold for the endpoint.
- BCreate a CloudWatch Synthetics canary that calls the checkout endpoint on a fixed schedule from the AWS network, then alarm on its SuccessPercent and Duration metrics so failures and slow responses are detected even when no real users are present. Correct
- CTurn on Container Insights for the cluster that runs the checkout service so that detailed container CPU and memory metrics reveal when the endpoint is about to start returning timeout errors to callers.
- DEnable Lambda Insights on the functions invoked behind the endpoint so enhanced runtime metrics expose the cold starts and duration spikes that cause the intermittent customer timeouts during low-traffic windows.
Why A is wrong: CloudWatch RUM only reports data when real users are active in the browser, so it cannot probe the endpoint during quiet periods and would miss the regressions the team needs to catch before users arrive.
Why B is correct: A Synthetics canary issues scripted requests on a schedule independent of organic traffic, emitting SuccessPercent and Duration metrics that drive an alarm, so availability and latency regressions are caught proactively with a managed, low-overhead probe.
Why C is wrong: Container Insights reports resource utilisation inside the cluster, which is useful for capacity work but does not measure end-to-end endpoint availability from outside, so quiet-period timeouts seen by callers would go undetected.
Why D is wrong: Lambda Insights surfaces per-function runtime detail only while invocations occur, so it gives no signal during idle periods and cannot perform the external scheduled probing the requirement calls for.