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
| Kleur | Betekenis | Actie |
|---|---|---|
| Groen | Kernservices (database, media-opslag, app) reageren normaal; geen kritieke wachtrijen of geheugenproblemen. | Gewoon verder werken. |
| Oranje | Er 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/ roladmin).
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.tsxinLayout.tsxenMagazijnShell.tsx(platform-admin)