Skip to content

Uptime monitoring — celestial-intelligence prod

A GitHub Actions workflow (.github/workflows/uptime.yml) probes the four production endpoints every 30 minutes:

  • https://starflow.celestialintelligence.co/health
  • https://decider.mcp.celestialintelligence.co/health
  • https://dashboard.celestialintelligence.co/health
  • https://docs.celestialintelligence.co/ (CF Pages — no /health route)

On any non-200, the workflow opens a GitHub issue labelled incident + uptime with a triage snippet. Manual run: Actions → uptime → Run workflow.

This repo is private. Actions minutes for private repos are billed against a 2000 min/month quota. 5-min cadence burns ~8000 min/mo and would put us into pay-per-min territory; 30-min stays well under.

That’s the trade-off — a real prod incident sits unseen for up to ~30 min unless the on-call SSH happens to notice. For tighter cadence + actual paging, set up UptimeRobot as the next step (below).

Next step: UptimeRobot (5-min checks + paging)

Section titled “Next step: UptimeRobot (5-min checks + paging)”

UptimeRobot free tier:

  • 50 monitors @ 5-min interval — fits our 4 endpoints with room
  • Email / Slack / Discord notification on failure
  • No credit card

Setup:

  1. Sign up at https://uptimerobot.com (use a shared ops mailbox).
  2. Add Monitor for each of the four endpoints above. Type: HTTPS keyword; Keyword: ok (the /health payload contains "ok":true).
  3. Alert Contacts → add Slack/Discord webhook or email.
  4. Once configured, delete .github/workflows/uptime.yml (or leave it as belt-and-braces; cost is negligible at 30-min cadence).
  • journald → external — logs stay on entmoot, queryable via journalctl -u <service>. For long-term retention, a Vector or Promtail shipper to Loki/Grafana Cloud (free tier 50 GB/mo) is the next step.
  • Disk-space alerts — entmoot is at 6 % today; no automated alert. Add a cron + Discord webhook, or have UptimeRobot probe a /health/disk endpoint we’d need to expose first.
  • Metric collection — no Prometheus / OTel today. The starflow-server bundle has telemetry-bridge.ts and the systemd env has STARFLOW_TELEMETRY=off — turn this back on once we have a collector.