Complexity: Medium - 150 Points · type:ops
Milestone: M6 - Ops & rigor
Band lever: none
Context
scripts/uptime-check.mjs pings an API and a web origin, records history, and
files a GitHub issue when a target stays down. Its defaults are
quay-api.onrender.com and quay-web.vercel.app — the testnet/staging pair.
Problem
render.mainnet.yaml deliberately stands up a separate service,
quay-api-mainnet, at a different URL. Nothing pings it. After cutover, the
service that actually moves money can be down with no automated signal at all:
no issue filed, no badge change, nothing in docs/STATUS.md — while the
monitoring that does exist keeps reporting green for a testnet service nobody is
paying through. This is distinct from the anchor-probe and db-backup gaps
already listed in TODO.md; those are known, this one is not written down
anywhere.
What needs to be done
- Make the checker multi-environment: take a list of targets (id, label, API
URL, web URL) rather than one pair, from a small config file or env.
- Give each environment its own history series and its own section in
docs/STATUS.md, so a green testnet cannot mask a red mainnet.
- Include the environment name in the auto-filed issue title and body.
- Document in
docs/RUNBOOK.md which secrets/variables must be set for the
mainnet environment to be watched.
Key files
scripts/uptime-check.mjs:17 — API_URL / WEB_URL defaults, TARGETS
.github/workflows/uptime.yml — the (currently disabled) schedule
render.mainnet.yaml:39 — the mainnet service name
docs/STATUS.md
Done when
Tracked in ISSUES.md — issue 8.8.
Complexity: Medium - 150 Points ·
type:opsMilestone: M6 - Ops & rigor
Band lever: none
Context
scripts/uptime-check.mjspings an API and a web origin, records history, andfiles a GitHub issue when a target stays down. Its defaults are
quay-api.onrender.comandquay-web.vercel.app— the testnet/staging pair.Problem
render.mainnet.yamldeliberately stands up a separate service,quay-api-mainnet, at a different URL. Nothing pings it. After cutover, theservice that actually moves money can be down with no automated signal at all:
no issue filed, no badge change, nothing in
docs/STATUS.md— while themonitoring that does exist keeps reporting green for a testnet service nobody is
paying through. This is distinct from the anchor-probe and db-backup gaps
already listed in
TODO.md; those are known, this one is not written downanywhere.
What needs to be done
URL, web URL) rather than one pair, from a small config file or env.
docs/STATUS.md, so a green testnet cannot mask a red mainnet.docs/RUNBOOK.mdwhich secrets/variables must be set for themainnet environment to be watched.
Key files
scripts/uptime-check.mjs:17—API_URL/WEB_URLdefaults,TARGETS.github/workflows/uptime.yml— the (currently disabled) schedulerender.mainnet.yaml:39— the mainnet service namedocs/STATUS.mdDone when
Tracked in
ISSUES.md— issue 8.8.