StatusPage — Operations
Controleren of de cron draait
Via wrangler tail
wrangler tail streamt real-time logregels van de productie-Worker. Bij elke cron-uitvoering zie je regels zoals:
Via D1-query
Controleer of er recent records zijn geschreven:
Als de teller niet oploopt, is de cron niet actief. Controleer de Wrangler-deploymentstatus en of de cron-schedules aanwezig zijn in het Cloudflare-dashboard.
Status hangt op DegradedPerformance zonder duidelijke reden
De meest voorkomende oorzaken:
Stale Degraded records — een module had tijdelijk een Degraded-status en de poller heeft sindsdien geen Healthy record kunnen schrijven. De
getOverallStatus()-functie kijkt naar het meest recente HealthRecord per module.Actief incident — een incident met status niet-
Resolvedtelt mee voorDegradedPerformance, ook al is de daadwerkelijke service weer operationeel.
Diagnose
Oplossing — Healthy refresh via admin
Log in op /admin en klik op Healthy refresh. Dit triggert handmatig een poll-ronde zodat actuele statussen worden geschreven zonder op de volgende cron-tick te wachten.
Oplossing — Reset Health Data (drastisch)
Het admin-dashboard biedt ook een Reset Health Data-actie die alle HealthRecords en UptimeSummaries voor een module verwijdert. Gebruik dit alleen als de data consistent corrupt is. De eerstvolgende cron-tick bouwt de data opnieuw op.
Maintenance window beheren
Starten
Log in op /admin en klik op Start Maintenance. Alternatief via D1:
Stoppen
Via het admin-dashboard: Stop Maintenance. Alternatief:
Zodra het maintenance window gestopt is, hervat de poller bij de eerstvolgende cron-tick (maximaal 1 minuut).
D1-migraties applyen (remote)
Migraties worden ook automatisch door de CI-workflow (Deployment-StatusPage-Worker.yml) uitgevoerd.
Secret rotatie
AZURE_AD_CLIENT_SECRET
De Entra ID client secret van app ac3eb2dc-8631-45a3-b702-e167511070f2 heeft een vervaldatum. Stappen bij rotatie:
Genereer een nieuw secret in Azure Portal → App Registrations → Certificates & secrets
Roteer het Worker-secret:
cd Portals/StatusPage.Worker pnpm exec wrangler secret put AZURE_AD_CLIENT_SECRET # Plak het nieuwe secret wanneer gevraagdVerifieer via
wrangler taildat admin-login nog werkt (geenToken exchange failed-fouten)
Overige secrets
Waarschuwing — adapter-cloudflare upgrade
Bij een upgrade van @sveltejs/adapter-cloudflare kan de builduitvoer veranderen. Het postbuild-script scripts/inject-scheduled.mjs overschrijft src/main.ts met een wrapper die de scheduled()-handler toevoegt. Als de adapter de locatie of structuur van _worker.js wijzigt, kan het script falen.
Na elke adapter-upgrade: voer een volledige build uit en controleer of:
src/main.tscorrect gegenereerd is (bevatscheduled())Cron-triggers nog werken via
wrangler tailna deploy
Als de scheduled()-handler verdwijnt, stopt de health-poller zonder zichtbare fout.
Retentie en datavolume
HealthRecords worden 90 dagen bewaard (
RETENTION_DAYS=90inwrangler.jsonc)Bij 4 actieve modules × 60 polls/uur × 24 uur × 90 dagen ≈ 518.400 records maximaal
Pruning door de uurlijkse cron; D1 Cloudflare Free tier: 5 GB opslag
Aanpassen van de retentietermijn: