GH GambleHub

Operazioni e gestione della capacità di Alerta

Alert di capacità

1) Perché è necessario

Gli alert di capacità avvertono di avvicinarsi ai limiti tecnici molto prima dell'incidente, «siamo all '80% del soffitto - è ora di scalare». Per le imprese alimentari si tratta direttamente di denaro: scommesse/depositi mancanti, sessioni di drop, ritardi nei giochi live e rinunce ai provider = ricavi persi, reputazione, multe e rimborsi.

Obiettivi:
  • Prevedibilmente resistere ai picchi di carico (iventi, tornei, striam, grandi campagne).
  • Includere lo skailing automatico in tempo e pianificare capacity uplift.
  • Abbassare il rumore e svegliarsi quando i soldi sono a rischio SLO.
  • Dare consigli precisi agli ingegneri attraverso il runbook.

2) Concetti di base

Capacità (Capacity): larghezza di banda massima (RPS/TPS, connettori, IOPS, throughput).
Headroom - Riserva tra il carico corrente e i limiti.
SLO/SLA: target di disponibilità/tempo di risposta Gli alert devono essere «SLO-aware».
Burn-rate: velocità di bruciatura del bilancio SLO degli errori/latitanza.
High/Low Watermark - Livelli superiori/inferiori per attivazioni e ripristino automatico.

3) Architettura dei segnali e delle origini dati

Telemetria: metriche (Prometheus/OTel), logi (ELK/ClickHouse), tracciabili (OTel/Jaeger).
Approccio a livello: alert a livello (Edge) API, servizi di business code/striam, database/cache, file/oggetti, provider esterni.
Contesto: phicheflagi, release, campagne di marketing, tornei, geo-design.
Incidente pneumatico: Alertmanager/PagerDuty/Opsgenie/Slack; riferimento al runbook e alla matrice di escalation.

4) Metriche chiave per livello (cosa monitor e perché)

Edge / L7

RPS, 95-/99-percentile latency, errorrate (5xx/4xx), open connection.
Rate-limits/quotas, drops на CDN/WAF/Firewall.

API-шлюз / Backend-for-Frontend

Saturation per worker/work pool, coda di richieste, timeouts ai downstream.
Percentuale di degrado (fallbacks, circuiti-breakers).

Code/Streaming (Kafka/Rabbit/Pulsar)

Lag/consumer delay, backlog growth rate, throughput (msg/s, MB/s).
Partition skew, rebalancing churn, ISR (per Kafka), retrai/nonno lettore.

Worker asincroni

Tempo di attesa delle operazioni, lunghezza della coda, percentuale di operazioni SLA scadute.
Saturation CPU/Memory/FD nei pool.

Cache (Redis/Memcached)

Hit ratio, latency, evictions, used memory, client connessi/ops/s.
Cluster: slot/repliche, failover events.

БД (PostgreSQL/MySQL/ClickHouse)

Active connections vs max, lock waits, replication lag, buffer/cache hit.
IOPS, read/write latency, checkpoint/flush, bloat/fragmentation.

Archivio oggetti/file

PUT/GET latency, 4xx/5xx, egress, query/s, limiti del provider.

Provider esterni (pagamenti/CUS/provider di giochi)

Limiti TPS, finestre QPS, errore rate/timeout, coda di retrai, «cost per call».

Infrastruttura

CPU/Memory/FD/IOPS/Network saturation su nodi/pod/ASG.
Eventi HPA/VPA, pending pods, contenitori OOM/Throttling.

5) Tipi di alert di capacità

1. Soglie statiche

Semplice e comprensibile: 'db _ connessioni> 80% max'. Bene come «segnale-faro».

2. Soglie adattive (dinamiche)

Basati su stagionalità e trend (rolling windows, decomposizione STL). Permettono di catturare «fuori luogo per questa settimana».

3. Orientati SLO (burn-rate)

Si agisce quando la velocità di deambulazione error-budget mette a rischio la SLO nell'orizzonte X dell'orologio.

4. Predittiva (forecast-alerts)

Tra 20 minuti, con la tendenza attuale, la coda raggiungerà il 90%. Usano una previsione lineare/Robust/Prophet simile su finestre brevi.

5. Composti (multi-signal)

Triguerà con la combinazione dì queue _ lag «+» consumer _ cpu 85% '+ «autoscaling at max» «richiede un intervento manuale».

6) Regole di soglia e anti-rumore

High/Low Watermark:
  • Su: avvertenza 70-75%, creta 85-90%. Giù: isteresi 5-10 p. Per non «segare alla soglia».
Finestre temporanee e soppressioni:
  • «for: 5m» per i criti, «for: 10-15m» per gli avvisi. Night-mode - ruotare il non-ritico in chat senza cercapersone.
Raggruppamento eventi:
  • Raggruppa per servizio/cluster/geo per non produrre schede di incidenti.
Dependency-aware suppression:
  • Se il provider KYC è su out e errori API, la conseguenza è il cercapersone del proprietario dell'integrazione, non tutti i consumatori.
Finestre temporanee di marketing:
  • Durante il periodo di azioni aumentare le soglie di rumore per la «crescita prevista», ma lasciare gli alert SLO intatti.

7) Esempi di regole (pseudo-Prometheus)

Database dei connettori:

ALERT PostgresConnectionsHigh
IF (pg_stat_activity_active / pg_max_connections) > 0. 85
FOR 5m
LABELS {severity="critical", team="core-db"}
ANNOTATIONS {summary="Postgres connections >85%"}
Kafka lag + skailing auto al limite:

ALERT StreamBacklogAtRisk
IF (kafka_consumer_lag > 5_000_000 AND rate(kafka_consumer_lag[5m]) > 50_000)
AND (hpa_desired_replicas == hpa_max_replicas)
FOR 10m
LABELS {severity="critical", team="streaming"}
Burn-rate SLO (API latente):

ALERT ApiLatencySLOBurn
IF slo_latency_budget_burnrate{le="300ms"} > 4
FOR 15m
LABELS {severity="page", team="api"}
ANNOTATIONS {runbook="wiki://runbooks/api-latency"}
Redis memoria ed Ewickshen:

ALERT RedisEvictions
IF rate(redis_evicted_keys_total[5m]) > 0
AND (redis_used_memory / redis_maxmemory) > 0. 8
FOR 5m
LABELS {severity="warning", team="caching"}
Provider di pagamenti - Limiti:

ALERT PSPThroughputLimitNear
IF increase(psp_calls_total[10m]) > 0. 9 psp_rate_limit_window
FOR 5m
LABELS {severity="warning", team="payments", provider="PSP-X"}

8) Approccio SLO e priorità aziendale

Da segnale a esposizione a business: gli alert di capacità devono fare riferimento a risk to SLO (giochi specifici/geo/metriche GGR, conversione deposito).
Allarmi su più livelli per il servizio on-call; Crit - Server del proprietario del dominio La caduta SLO è un incidente grave e un canale di comando.
Phicheflagi di degrado: riduzione automatica del carico di lavoro (read-only parziale, taglio dei pesi pesanti, riduzione della frequenza di jackpot broadcast, spegnimento delle animazioni «pesanti» nei giochi live).

9) Scale automatico e trigger «corretti»

HPA/VPA: target non solo per CPU/Memory, ma anche per metriche aziendali (RPS, queue lag, p99 latency).
Warm-up timing - Considera la partenza fredda e i limiti del provider (ASG spin-up, contenitori, riscaldamento della cache).
Condizioni di arresto in caso di aumento di errori; Protezione contro gli skailing.
Capacity-playbooks: dove e come aggiungere shard/partition/replica, come ridistribuire il traffico per regione.

10) Processo: dalla progettazione all'utilizzo

1. Mappatura dei limiti: raccoglie i limiti «veri» bottleneck per ogni livello (max conns, iOPS, TPS, quotas provider).
2. Selezione dei predatori metrici: quali segnali prima di tutti indicano «battersi in N minuti».
3. Il design delle soglie è high/low + slo-burn + composto.
4. Runbook per ogni crit: fasi di diagnostica («cosa aprire», «quali comandi», «dove ingrandire»), tre opzioni: giro rapido, ridimensionamento, degrado.
5. Test: simulazione dei carichi (chaos/game days), avvio secco degli alert, controllo anti-rumore.
6. Il proprietario del segnale = proprietario del servizio. Senza il proprietario, niente pagelle.
7. Retrospettive e sintonizzazioni: analisi settimanale di falsi/omessi; metrica «MTTA (ack), MTTD, MTTR, Noise/Segnale ratio».

11) Anti-pattern

CPU> 90% panico, senza correlazione con latency/queues può essere normale.
Una soglia su tutte: regioni/zone temporali diverse - profili di traffico diversi.
Alert senza runbook: il software senza un'azione chiara esaurisce l'on-call.
Cecità ai provider: quote/limiti esterni spesso sono i primi a rompere gli script (PSP, KYC, antifrode, provider di giochi).
Nessuna isteresi, «segare» al confine 80 %/79%.

12) Caratteristiche iGaming/finplatform

Picchi orari: prime time, finali di tornei, grandi partite; Aumentare in anticipo le repliche di destinazione e riempire la cache.
I live-striam e i jackpot sono i picchi delle emittenti e i limiti sui broker/siti web.
Pagamenti e KYC: finestre dei provider, antifrode-screen; mantenere le rotte di riserva e la modalità «grace» dei depositi.
Geo-bilanciamento: le scorribande locali del provider - portare il traffico nella regione vicina dove c'è headroom.
Responsabilità: quando si corrono rischi di perdita di scommesse/jackpot è un comando di dominio istantaneo + notifica aziendale.

13) Dashboard (set minimo)

Capacity Overview: headroom per strati, top 3 aree a rischio, burn-rate SLO.
Stream & Queues: lag, backlog growth, consumer saturation, HPA state.
DB & Cache: connettori, repl-lag, p95/p99 latency, hit ratio, evictions.
Providers: TPS/finestre/quote, timeouts/errors, costo delle chiamate.
Release/Feature text - Rilasci/ficcaflagi accanto alle curve.

14) Assegno foglio di implementazione

  • Elenco dei limiti e dei proprietari «veri».
  • Mappa dei predatori metrici + associazione tra i livelli.
  • Soglie statiche + isteresi.
  • SLO-burn-alert su percorsi critici (deposito, puntata, avvio live-game).
  • Alert predittivi in coda/striam/connettori.
  • Suppressione/maintenance della finestra; anti-rumore della politica.
  • Runbook ', con comandi, grafici, fitte di degrado.
  • Analisi settimanale di falsi effetti e sintonizzazione.
  • Conteggio delle campagne di marketing e del calendario degli iventi.

15) Esempio di modello runbook (abbreviato)

Segnale dì StreamBacklogAtRisk "

Obiettivo: Evitare che lag> 10 milioni e guadagni in ritardo> 5 minuti

Diagnostica (3-5 min):

1. Controlla «hpa _ desired/max», throttle/oom nei pod.

2. Vedere «rate (lag)», distribuzione per partenze (skew).

3. Controlla il broker (ISR, under-replicated, network).

Azioni:
  • Aumenta il consumer-replica di + N, alza max-in-flight.
  • Abilita il pool di priorità per i topic critici.
  • Ridurre temporaneamente la frequenza di guadagno secondario/entrichment.
  • Se ASG at max - richiedere un uplift temporaneo alla nuvola; parallelamente, attivare il degrado delle funzioni pesanti.
  • Ripristina - Torna al profilo «normale» dopo «lag <1 milione» 15 minuti.
  • Escalation: proprietario del cluster Kafka, seguito dalla piattaforma SRE.

16) KPI e qualità dei segnali

Coverage:% percorsi critici chiusi con alert di capacità.
Noise/Ni: non più di 1 falso pagella per on-call/settimana.
MTTD/MTTR: gli incidenti di capacità vengono rilevati ≤5 minuti prima dei colpi SLO.
Proactive saves: problemi evitati (postmortem).

17) Partenza rapida (default conservatori)

OBD: avvertenza del 75% dei connettori/iOPS/lat; creta 85%, isteresi 8-10 p.
Cache: 'hit <0. 9 'Y'evictions> 0'> 5 minuti - Avviso; 'used _ mem> 85%' - creta.
Code: «lag» altezza> 3 media per 30d + «hpa at max» - creta.
API: `p99 > SLO1. 3 '10 min - Avviso;' burn-rate> 4 '15 min - creta.
Provider: 'throughput> 90% di quota' - Avviso; 'timeouts> 5%' - creta.

18) FAQ

Q: Perché non allungare semplicemente «CPU> 80%»?
A: Senza il contesto latency/code è rumore. La CPU da sola non è un rischio.

Sono necessarie soglie adattive?
A: Sì, per la stagionalità giornaliera/settimanale, diminuiscono i falsi effetti.

Q: Come si tiene conto del marketing/ivent?
A: Calendario delle campagne di annotazione su grafici + regolazione temporanea anti-rumore, ma non toccare gli alert SLO.

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.