Skip to content

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.

  • 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); null when 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.

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.

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.