GH GambleHub

Meccanismi health-check

1) Perché

Health-checks è la prima barriera contro i guasti a cascata: rimuovono correttamente i nodi dalla rotazione, evitano le tempeste retraiche, semplificano il degrado e velocizzano il ripristino mantenendo il sistema SLO e riducendo l'MTTR.


2) Tipi di controllo di base

Liveness - processo «vivo» (nessun deadlock/fuga/panico). Errore durante il restart dell'istanza.
Il servizio Readavaè in grado di gestire il traffico con SLO di destinazione (pool alzati, cache riscaldata, risorse dipendenti normali). È possibile escludere l'errore dal bilanciamento, ma non ripristinare.
Startup - il servizio è pronto per andare a liveness/readava( lunga bootstrap, migrazione, warmup). Protegge dai restart prematuri.
Deep-health (dominio-specifici): invarianti aziendali (il tasso passa end-to-end, il deposito viene autorizzato in PSP attivo). Usato per i segnali di degrado, ma non per il restart immediato.
Esternal/Synthetic: ping attivi all'esterno (API, fronte-script, PSP/KYC endpoint) - Misurano la disponibilità dell'utente.


3) Progettazione dei campioni: regole comuni

1. Liveness low cost: non camminiamo nelle dipendenze esterne; Controlla il loop di eventi, heap/FD, watchdog.
2. ReadoverSLO: verifica le risorse locali necessarie per la manutenzione (pool database, cache calda, limiti). Dipendenze esterne tramite «can-serve» non bloccanti? Segnali.
3. Latency-budget: ogni campione ha il suo SLA (ad esempio, ≤100 -200 ms); se superata, «degraded», ma non 5xx su liveness.
4. Backoff & Jitter: intervalli di prova di 5-15 secondi, timeout di 1-2 secondi, con ritardo esponenziale degli errori per evitare tempeste sincronizzate.
5. Isteresi: N risposte di successo/errore per il cambio di stato (ad esempio «successThreshold=2», «failureThreshold=3»).
6. Versioning: gli endpoint «/healthz », «/readyz», «/startupz »sono stabili; deep-checks sotto «/health/... »con controlli denominati.
7. Senza segretezza e PII: le risposte sono solo statuti e codici brevi.
8. Esplainability: JSON con l'elenco sotto-controllo: '{"status": "degraded", checks ": [{" name ":" db ", ok: true": 18}, {"name": "psp. eu","ok":false,"reason":"timeout"}]}`.


4) Esempi di deep-checks per livello

4. 1 database/cache/storage

Database: transazione «SELECT 1» breve per la replica read e la convalida del pool latency/replication-lag soglie.
Cache: «GET »/« SET» chiave di prova + hit-ratio guard (hit-warning basso).
Object Storage: HEAD di un oggetto esistente (senza download).

4. 2 Code/streaming

Broker: ping-topic publish + consume all'interno della partition locale; soglia consumer-lag.
DLQ: nessuna comparsa di messaggi nel dead-letter per finestra.

4. 3 Provider esterni (PSP/KYC/AML)

PSP: lightweight auth-probe (non-monetary), controllo contratto/certificato/quote; se non ci sono prove safe, usiamo le metriche proxy (successo delle autorizzazioni da 5 a 10 minuti per banche/GEO).
Code KYC/AML: health-API e SLA; in caso di degrado, passa al flusso alternativo/provider.

4. 4 API/fronte

Sintetico: percorso transazionale (login) deposito-inizio → tasso di →) in EU/LATAM/APAC.
RUM: percentuale di errori JS/HTTP e LCP/TTFB - trigger fuori.


5) Integrazione con la piattaforma

5. 1 Kubernetes / Cloud

«startupProbe» protegge il bootstrap (migrazioni/cache-warmup).
«livenessProbe» è minimalista; «readinessProbe» prende in considerazione i pool/cache/code locali.
Параметры: `initialDelaySeconds`, `periodSeconds`, `timeoutSeconds`, `failureThreshold`, `successThreshold`.
e con un .
HPA/KEDA: scalabilità in coda/SLI; readavainfluisce sul routing.

5. 2 Bilanciatori/gateway/mesh

Health-routing a livello L7 (HTTP 200/429/503 semantics).
Outlier detection (avvoy/mesh) - Consente di uscire dal pool per errare-rate/latency perceles.
Circuito-breaker - Limiti di query/connessioni simultanee alla dipendenza, integrazione con i segnali health.

5. 3 Scale automatico e degrado

Readava= FALSE è stato tolto il traffico, ma il pod è vivo (può gridare).
Deep-degrade (PSP down) → la feature flags per la modalità graceful (ad esempio, nascondere temporaneamente i metodi di pagamento, includere waiting-room).


6) Politiche timeout e retraes

Timeout <budget SLO: 'timeout = min (⅓ p99, 1-2s)' per le dipendenze sincronizzate.
Idampotenza: obbligatoria per i retrai; usiamo idempotency-keys.
Backoff esponenziale + jitter: impedisce gli effetti di albero sincrono.
Budget dei retrai: caps per-sollest/tenant, protezione da «retry-storms».


7) Segnali di stato e alerting

Verde/Giallo/Rosso: stati riepilogativi del servizio-dashbord.
Burn-rate-alert SLO: veloci (1 ora) e lenti (6-24 ore).
Correlation-hints - Note di rilascio/flag/lavoro programmato.
Auto-action - Con il deep-check «rosso», abilitare il provider fallback, aumentare il sempling delle piste.


8) Strategie intelligenti per il iGaming

Payment-aware readava- La disponibilità del servizio di scommesse tiene conto dello stato del router PSP e dei limiti delle banche/GEO.
Odds/Lines publishing: readavadel pablister dipende dalle linee di riepilogo di origine e dal tempo di distribuzione nella cache/edge.
Il criterio temporaneo di outlier-detection e waiting-room è più aggressivo.


9) Antipattern

Liveness, che va al database/PSP per i → di massa in caso di problema esterno.
Una health-endpoint «universale» senza separazione startup/readover/liveness.
Timeout rigidi senza backoff/jitter di tempesta retraica.
La mancanza di isteresi è un flapping di routing.
Deep-check che triguerà i restart (il suo obiettivo è diagnosticare e instradare, non riavviare).
5xx nascosti in health-endpoint (occultamento dello stato reale).


10) Modelli di interfaccia

/startupz → `200 OK {"uptimeSec": ..., "version":"..."}`

Controlli: script init, migrazioni completate, chiavi e configi caricati.

/healthz (liveness) → `200 OK {"heapOk": true,"fdOk":true,"eventLoop":"ok"}`

Verifiche: ciclo di eventi, risorse del processo, nessun panico/indicatore.

/readyz (readiness) →

`200 OK/503 {"canServe": true,"db":{"ok":true,"latencyMs":12},"cache":{"ok":true},"queue":{"ok":true,"lag":0},"localQuota":{"ok":true}}`

/health/payments (deep) →

`200/206/503 {"psp. eu": {"ok":false,"reason":"timeout"}, "psp. alt":{"ok":true}, "routerMode":"failover"}`


11) Metriche di qualità del circuito health (KPI/KRI)

Ora di uscita del pod da «NotReady» in «Ready» (warmup-SLO).
Frequenza di «flapping» readoverper il servizio.
% di sovrappeso erroneamente (root-cause - dipendenza esterna).
MTTR incidenti dove i meccanismi health hanno avuto un ruolo (prima/dopo).
Quota di failover/feature-degrade automatiche senza la partecipazione di on-call.
Precisione sintetica vs RUM (falsi azionamenti/omissioni).


12) Road map di implementazione (4-8 settimane)

Ned. 1-2: inventario dei percorsi critici; espandere startup/liveness/readava; immettere risposte JSON sotto-controllo e isteresi.
Ned. 3-4: aggiungi deep-checks: database/cache/broker; sintetico per login/deposito/tasso di 2-3 GEO; attivare outlier-detection nel gateway/mesh.
Ned. 5–6: payment-aware readiness и PSP-fallback; waiting room per il fronte scailing automatico per lag/code; alert per burn-rate.
Ned. 7-8: chaos-giorni (disattivazione PSP/repliche di database), controllo backoff/jitter; Fintüning time-out, PDB; report KPI e regolazione.


13) Manufatti

Health Spec (per servizio): elenco dei controlli, budget del tempo, isteresi, azioni allo stato rosso.
Runbooks: "Readava= FALSE: cosa facciamo? ", "PSP-fallback - Passi e criteri di restituzione".
Routing Policy - Regole outlier-detection, circuito-breakers, soglie di percezione.
Synthetic Playbook: scenari e geografie, sintetici SLO, pianificazione.
Release Gate - Blocchi di rilascio al deep-check rosso delle dipendenze chiave.


Totale

Un tracciato di health-checks ben progettato è un sistema di segnale a strati: liveness leggero per la vitalità del processo, readoverper la capacità di manutenzione del traffico, startup per l'avvio protetto e deep-checks per il degrado gestito e il routing. In associazione con autoscaling, outlier-routing, sintetica e alerting SLO, riduce il rischio di guasti a cascata, riduce MTTR e stabilizza i percorsi critici aziendali della piattaforma iGaming.

Contact

Mettiti in contatto

Scrivici per qualsiasi domanda o richiesta di supporto.Siamo sempre pronti ad aiutarti!

Avvia integrazione

L’Email è obbligatoria. Telegram o WhatsApp — opzionali.

Il tuo nome opzionale
Email opzionale
Oggetto opzionale
Messaggio opzionale
Telegram opzionale
@
Se indichi Telegram — ti risponderemo anche lì, oltre che via Email.
WhatsApp opzionale
Formato: +prefisso internazionale e numero (ad es. +39XXXXXXXXX).

Cliccando sul pulsante, acconsenti al trattamento dei dati.