Performance
The Performance app reports your site’s real-user Core Web Vitals from the Chrome UX Report (CrUX) — field data collected from actual Chrome visitors, the same dataset Google Search uses. Overwatch runs no synthetic tests for this; it syncs CrUX daily per origin.
Enable it per site (performanceEnabled, on by default). There is nothing
else to configure: the first sync backfills the stored weekly series, and
GET /v1/sites/{id}/crux serves the report.
What you get
Section titled “What you get”latest— the freshest p75 values for LCP (Largest Contentful Paint), INP (Interaction to Next Paint), CLS (Cumulative Layout Shift), and TTFB (Time to First Byte), across all device types.verdict— the standard Core Web Vitals assessment: pass iff all three core metrics’ p75 are good (LCP ≤ 2.5 s, INP ≤ 200 ms, CLS ≤ 0.1);nullwhen a core metric is missing.deltas.d7/deltas.d28— per-metric movement versus ~7 and ~28 days ago.series— the stored weekly p75 points for trend charts. Each point is a rolling 28-day collection window, so trends are smoothed by nature.
No data ≠ broken
Section titled “No data ≠ broken”CrUX only contains origins with sufficient Chrome traffic. Until the daily
sync finds data — or if the origin never qualifies — the endpoint responds
404 (no CrUX data for this origin). Treat that as “no banner”, not an
error; low-traffic sites may stay there permanently.
Regression alerts
Section titled “Regression alerts”Overwatch evaluates the verdict on every sync and alerts on the ok →
regressed transition — when an origin that passed starts failing. One alert
per transition, not one per day of remaining regressed. Alerts go to the
perfAlertRecipients and perfAlertWebhooks configured in
notification settings, org-wide or per site.