Health

Health is the post-live operations page for a project. It answers the current question first: whether production traffic is reachable, server-routed, visible in GA4, and free of recent infrastructure anomalies. Pre-live the page is a placeholder; post-live it carries the production-signals panels and the "Run Health Check" button.

Pre-live vs. post-live

Health is visible in the sidebar both before and after cutover, but the body changes.

  • Before cutover — the page shows the Health hero with "Available after production cutover" and a "Health activates after cutover" placeholder card with a "Continue setup →" link back to /setup. There is no "Run Health Check" button until the project is live.
  • After cutover — the hero shows the current overall status, an actions-recommended count, an informational-records count, and "Last run" time. A "Run Health Check" button triggers a fresh run that re-renders the page body in place.

Status vocabulary

  • Healthy — the core production signals GSS can verify are passing.
  • Degraded — production may still be working, but at least one core signal needs review, such as missing GA4 event visibility or a changed container fingerprint.
  • Down — endpoint reachability, server-path confirmation, or infrastructure health is failing.
  • Unknown — no current health run is available, or the available evidence is incomplete.
  • Not live yet — the project has not completed cutover.

How the headline is calculated

The headline is panel-derived. It does not reuse legacy readiness summaries from older health runs.

Panel type Effect
Core Endpoint & server-path confirmation, recent event visibility, and infra anomalies drive the headline status.
Action Monitoring readiness and configuration changes add to the action count, but they do not downgrade the headline.
Informational Live state and baseline snapshot records provide context only.

Section 1 — Production signals (core)

Three core panels live under this heading. They drive the headline.

  • Endpoint & server-path confirmation — four per-row checks: Endpoint reachability (Cloud Run liveness), Server-path confirmation (server URL vs. baseline), Web container drift, and Server container drift. Renders per-row state badges and details (current vs. baseline fingerprint where relevant). Does not inspect live GTM tag configuration.
  • Recent event visibility — for each critical event frozen into the cutover baseline, shows the previous complete UTC day's count from GA4 and a status badge. Each row also has an operator-attestation block with "Note present" / "Note not present" buttons. Not realtime — the GA4 export is daily.
  • Infra anomalies — lists recent routing and Cloud Run error anomalies from Health runs, or "No routing or Cloud Run anomalies are active in the recent health window."

Section 2 — Actions

Action panels point to follow-up work that does not downgrade the headline. The count in the hero ("N actions recommended") is the sum of unresolved action items.

  • Monitoring readiness — status of uptime checks, alert policies, and notification channels in Cloud Monitoring. Links to the Monitoring page.
  • Configuration changes (action) — shows total / needs-review / last-reviewed counts when there are unacknowledged drift rows. Links to the Changes page.

Section 3 — Context (informational)

Informational panels are context only. They contribute to the informational-records count but never downgrade Health.

  • Configuration changes (informational) — same drift counters as above, but rendered here when no review is currently needed.
  • Live state — the live-since timestamp, cutover attempt number, and expected server URL. Links to the cutover record.
  • Baseline snapshot — the structured fields captured at cutover (web/server container versions, snippet target, etc.). Links to the Setup Snapshot page.

Operator notes on event visibility

The Recent event visibility panel includes "Note present" / "Note not present" buttons for each tracked event. These attestations record operator context (who said what, when) and appear inline as "Noted as present at <time>". They do not override the GA4-derived Health status.