Overview

Live health snapshot — workers, endpoints, panels, and error tail.

Auto-refreshing every 60s
Endpoints Healthy
Of all monitored endpoints
Data Freshness
Median age of panel data
Median Latency
p50 across all checks
Last Check
Auto-polled from admin edge
Recent activity
Loading recent activity…
Workers
worker-name
200
100ms
note here

Endpoints

Every backend endpoint the site depends on — status, response time, size.

endpoint
200100ms
endpoint
200100ms
endpoint
200100ms

Workers

Cloudflare Workers powering the Gateway. Green = healthy, red = 5xx or timeout.

Errors

Backend failures (5xx / 4xx / timeout) plus real-user JS errors from Michigan Gateway.

Backend endpoint errors
Waiting for first health check…
Real user errors (last hour)
Waiting for first client-side error to arrive…
No errors reported by users yet.
RUM snippet on Michigan Gateway posts here on window.onerror / unhandledrejection / fetch 5xx.

Synthetic checks

Fetches key pages and parses the HTML for expected content — catches "[object Object]", "undefined undefined", missing sections, or bodies too small to have rendered.

Fetching pages and asserting content…

Infra & deploys

Cloudflare deploy history per project, SSL cert expiry, worker request volume vs limits.

Recent deploys
Querying Cloudflare API…
SSL certificate
Checking cert via crt.sh…
Worker usage (last 24h)
Fetching worker analytics…

Cron heartbeats

Every scheduled worker writes a heartbeat on each run. Silent workers (no heartbeat in > 2× their interval) get flagged here.

Reading heartbeats from KV…

Data health

Parses response BODIES, not just status codes. Catches "HTTP 200 but data is empty / stale / errored" — the class of bug that plain uptime checks miss.

Running semantic checks — parsing bootstrap + endpoint bodies…

Third-party dependencies

Direct pings to upstream APIs (NWS, USGS, OpenSky, FDA, WordPress, etc). Distinguishes "our worker is broken" from "the upstream is having a bad day."

Pinging upstreams…

Panels & counties

Grouped by page: expand any page to see the panels it renders and their live status. County page coverage is folded into the "County pages" accordion.

Pages
Enumerating panels per page…

Weather alerts

weather-alerts-worker ingest history — coming in Phase 2.