# Monitor stuck on No Data

What you see: the monitor never goes OK or Alert, just No Data, forever.

## Why

1. **The query matches nothing.** Typo in the metric name, a tag filter that excludes everything (`env:prod` when the tag is `env:production`), or the metric stopped reporting. Paste the query into the Metrics Explorer: if it is empty there, the monitor is fine, the data is missing.
2. **Evaluation window vs data frequency.** A `last('5m')` window on a metric reported every 10 minutes is always empty. Match the window to the reporting interval.
3. **notify_no_data left default.** Decide explicitly: do you want to be told when data stops (often yes for critical monitors) or stay quiet? The Terraform example sets `notify_no_data` explicitly for a reason.
4. **New monitor on a new metric.** The metric has no history yet; the monitor needs a few evaluation cycles before its first real state.

## Fix

- Validate the query in the explorer first, monitor second.
- Set `notify_no_data` deliberately, not by accident.
- For sparse metrics (batch jobs, cron), use wider windows and consider anomaly or new-value detection instead of thresholds.

## Trap

Cloning a monitor for a new service and forgetting to update the tag filter. The clone watches the old service (fine) or nothing (no data), and nobody notices until the incident the monitor was supposed to catch.