Ga naar hoofdinhoud

Serverstatus-indicator (sidebar)

Platform-beheerders zien in de sidebar (desktop) en header (mobiel), naast notificaties en uitloggen, een klein gekleurd bolletje. Er staat geen tekst bij in de app — alleen de kleur. Klik op het bolletje om Beheer → Monitor te openen.

Kleuren

KleurBetekenisActie
GroenKernservices (database, media-opslag, app) reageren normaal; geen kritieke wachtrijen of geheugenproblemen.Gewoon verder werken.
OranjeEr is degradatie of traagheid: verhoogd geheugen, drukke export-wachtrij, export-worker offline zonder actieve job, hoge CPU-load, weinig schijfruimte op backup-volume, recente herstart van de app (< 10 min), of meerdere mislukte export-jobs.Blijf voorzichtig werken; grote bulkacties (massale exports, zware GIS-kaart) uitstellen; open Monitor voor detail.
Rood (pulserend)Ernstige problemen — risico op vastlopers, timeouts of data niet betrouwbaar opgeslagen tijdens de storing.Stop met productiewerk in FieldOps tot groen/oranje; neem contact op met beheer; gebruik Monitor en serverlogs.

Wat wordt gecontroleerd

De indicator wordt elke 60 seconden ververst via GET /api/admin/monitor/status (alleen platform-admin).

Rood (voorbeelden)

  • PostgreSQL niet bereikbaar
  • MinIO/media-opslag niet bereikbaar (indien geconfigureerd)
  • Onderhoudsmodus (database-restore) actief
  • Export-jobs vastgelopen in status processing (langer dan reclaim-drempel, standaard 10 min)
  • Export-worker offline terwijl er jobs bezig zijn
  • App-geheugen (RSS) ≥ 95% van alert-drempel (FIELDOPS_ALERT_MEMORY_MB, default 3500 MB)
  • App recent herstart (< 90 s — mogelijke OOM/crash)
  • Backup-volume ≥ 95% vol
  • CPU load zeer hoog (load > 2,5× aantal cores)
  • PostgreSQL verbindingen ≥ 90% van maximum

Oranje (voorbeelden)

  • Geheugen 75–95% van drempel
  • App herstart 90 s – 10 min geleden
  • Backup-volume 85–95% vol
  • Export-worker offline zonder actieve jobs
  • ≥ 3 failed export-jobs
  • ≥ 5 jobs in wachtrij (pending + processing)
  • GIS geojson-semaphore vol met wachtrij
  • CPU load 1,5–2,5× cores
  • PostgreSQL verbindingen 75–90%

Groen

Geen van bovenstaande triggers actief.

Beperkingen

  • De meting draait op de app-container (geheugen/load van het API-proces), niet per individuele Docker-service op de host.
  • Export-worker-gezondheid via heartbeat in de database (± 90 s).
  • Geen vervanging voor externe monitoring (uptime, disk op host, alerts buiten FieldOps).
  • Alleen zichtbaar voor gebruikers met platform-admin (is_admin / rol admin).

Monitor en alerting

Uitgebreide cijfers, export-job beheer en actieve gebruikers: Beheer → tab Monitor (/beheer?tab=monitor).

E-mail/SMS bij crashes en geheugen: zie GITHUB_SECRETS / alerting en ADMIN_ALERT_EMAIL in productie-config.

Technisch

  • Service: src/server/serverStatusService.ts
  • API: GET /api/admin/monitor/status{ "level": "green" | "orange" | "red" }
  • UI: src/components/ServerStatusDot.tsx in Layout.tsx en MagazijnShell.tsx (platform-admin)