← All Exercises
Decide When an Alert Should Fire
intermediatejavascript
Background
Alerts without a sustain window page on a single sample. Requiring consecutive breaches removes most single-point noise while keeping real incidents visible.
Problem
Evaluate a threshold rule over a metric series, requiring the threshold to be breached for a sustained number of consecutive minutes before firing.
Input
JSON object: { rule: { threshold, comparison, forMinutes }, series: [{ minute, value }] }Output
JSON object: { firing: boolean, firstBreachMinute: number | null }Sample tests
Sample 1
Input: {"rule":{"threshold":0.05,"comparison":"above","forMinutes":3},"series":[{"minute":1,"value":0.01},{"minute":2,"value":0.06},{"minute":3,"value":0.07},{"minute":4,"value":0.08}]}Expected: {"firing":true,"firstBreachMinute":2}Sample 2
Input: {"rule":{"threshold":0.05,"comparison":"above","forMinutes":3},"series":[{"minute":1,"value":0.06},{"minute":2,"value":0.04},{"minute":3,"value":0.06}]}Expected: {"firing":false,"firstBreachMinute":null}Your solution
Learning objective
Configure sustained-threshold alerts that page on trends rather than single samples.