Monitoraggio e log
Endpoint di salute
Sezione intitolata “Endpoint di salute”| Endpoint | Risponde | Uso |
|---|---|---|
GET /healthz |
200 se il processo è vivo |
liveness: riavvia il container se non risponde |
GET /readyz |
200 se il database è raggiungibile e le migrazioni sono allineate, altrimenti 503 |
readiness: manda traffico solo quando è pronto; monitoraggio esterno |
L’immagine Docker è distroless e non contiene curl: l’healthcheck va configurato nell’orchestratore, nel
reverse proxy o in un servizio di monitoraggio esterno (Uptime Kuma, Healthchecks, il monitor della tua
piattaforma).
curl -fsS https://prenota.mio-lido.it/readyzArenile scrive log JSON strutturati (log/slog) sullo standard output: con Docker li leggi con
docker compose logs -f arenile; il compose ufficiale li ruota (5 file da 10 MB).
- Livello con
ARENILE_LOG_LEVEL(debug,info,warn,error). Usadebugsolo per il tempo necessario a capire un problema. - Ogni richiesta ha un request ID, restituito nell’header
X-Request-IDe nel camporequest_iddegli errori dell’API: citandolo trovi subito la riga di log corrispondente. - Mai dati personali o segreti in chiaro: email e telefoni sono mascherati, token, chiavi, firme e corpi dei webhook non vengono mai registrati.
Lavori in background
Sezione intitolata “Lavori in background”Il binario esegue da sé i lavori periodici, senza cron né code esterne. Se un lavoro arriva in ritardo nessuna vendita viene bloccata: gli hold scaduti, per esempio, vengono ignorati e ripuliti anche al momento del conflitto.
| Lavoro | Cosa fa |
|---|---|
| Rilascio degli hold scaduti | Libera ogni 30 secondi i posti bloccati da checkout non completati e porta la prenotazione in Scaduta |
| Completamento | Chiude le prenotazioni a fine soggiorno |
| Consegna degli eventi | Distribuisce gli eventi dell’outbox a tempo reale, notifiche ed estensioni (almeno una volta) |
| Notifiche | Invia le email in coda, con tentativi ed attesa crescente fino a 8 volte |
| Riconciliazione dei pagamenti | Ogni 15 minuti chiede a Stripe l’esito dei pagamenti in sospeso da più di 10 minuti |
| Pulizia | Sessioni scadute e chiavi di idempotenza oltre le 24 ore |
Cosa tenere d’occhio
Sezione intitolata “Cosa tenere d’occhio”| Segnale | Dove | Cosa fare |
|---|---|---|
/readyz in errore |
monitor esterno | Database, disco pieno, migrazioni: vedi i log all’avvio |
| Email non consegnate | Configurazione → Email e notifiche, registro invii | SMTP, SPF/DKIM, indirizzi sbagliati |
| Pagamenti con problemi | report di riconciliazione (Pagamenti online) | Webhook non configurato o segreto errato |
| Errori del webhook di Stripe | dashboard Stripe, sezione webhook | URL o segreto del webhook |
| Spazio su disco | sistema operativo | Backup locali da ruotare, log Docker |

