Anomaly detection has gone foundation-model: Datadog's Watchdog runs on Toto, a timeseries foundation model; Grafana ML and Elastic AIOps ship their own detectors, and all of them increasingly attach LLM-written explanations to what they flag.
Tier: Core · Hands-on time: ~40 minutes
The detection is statistical ("this series deviates from learned patterns"); the explanation is narrative ("likely caused by the 14:20 deploy"). Those are different products with different failure modes, and this playbook is the validation pass that keeps you from paging a team — or rolling back a deploy — over seasonality the model hasn't learned or a narrative the LLM invented. The economics are asymmetric: every false positive you act on taxes an engineer and erodes trust in the whole detector.
Skip ML anomaly detection entirely for metrics with hard correctness bounds (disk full, cert expiry, queue depth limits) — static thresholds are more accurate, cheaper, and explainable there by construction.
Separate detection from narrative. Read the anomaly card and split it: what did the detector flag (series, window, deviation direction/magnitude) versus what did the explainer claim (cause, correlated events). Write both down; you validate them independently.
Validate the detection against context the model may lack. Overlay the flagged window with: (a) the same window last week/month (seasonality check); (b) deploy/config-change events; (c) upstream dependency metrics; (d) known calendar effects (sale events, batch windows, festival traffic). Ask: would an engineer who knows this system call this abnormal? A deviation that recurs every Monday at 02:00 is a cron job, not an anomaly — regardless of model confidence.
Validate the explanation like a citation. For every causal claim in the AI explanation ("correlates with deploy d41f", "driven by region ap-south-1"): check the referenced event exists, its timestamp actually precedes the deviation, and the correlation holds when you slice the metric by the claimed dimension. An explanation that names a real deploy which happened after the anomaly started is confidently, checkably wrong — this is pb-15's citation discipline applied to metrics.
Decide with the false-positive economics explicit. Act (page/rollback) only when detection AND at least one causal claim validate. Watch (snooze with a re-fire condition) when detection validates but cause is unknown. Dismiss — and record why — when seasonality or data artifacts explain it. The recorded dismissals are your tuning dataset.
Tune the detector with your validation log. Weekly or after ~10 events, review the log: which series produce validated anomalies (keep), which produce recurring seasonal false positives (extend training window, add seasonality hints, or demote to threshold alerts), which never fire usefully (remove — every low-value detector dilutes attention). In Datadog, this maps to Watchdog impact settings and monitor scoping; in Grafana ML, to job hyperparameters and holiday calendars.
The detector sees the series; you see the calendar, the deploys, and the business. Validation is not distrust of the model — it is supplying the context a timeseries foundation model structurally does not have.
Follow-the-sun handoffs (pb-18) should carry unresolved "watch" anomalies with the validation state — detection-validated/cause-unknown is precisely the context the next region needs.