Logo GH

Osservabilità e telemetria

(Sezione Tecnologia e infrastruttura)

Breve riepilogo

L'osservazione è la capacità di rispondere al «perché funziona così?» senza la presentazione dei nuovi bilanci. Nel iGaming è critico: tornei di punta, picchi di pagamento, multiregionalità e requisiti di gambling responsabile/PII. Base - metriche, fogli, tracciabili, combinati da identificatori e standard comuni (OpenTelemetry), con contratti SLO, alerting rumoroso e controllo dei costi.

1) Ossatura di osservabilità: di cosa si compone

Metriche (numeri orari): RED/USE, Business KPI, SLI. Memorizzati in TSDB.
Loghi (eventi testo/JSON) - Controllo, errori, fatti aziendali, protezione.
Traccia (span): percorso di query attraverso servizi, latitanza, cause di ritardo.
Profiling: CPU/memoria/eBPF-flussi, heap/lock-contensioni.
RUM e sintetico: utenti reali (web/app) + test robot.
Catalogo di telemetria: schemi, criteri PII, tempi di conservazione, tag di costo.

2) Tassonomia segnali e principi

RED для API: Rate, Errors, Duration.
USE per l'infrastruttura: Utilization, Saturation, Errors (CPU, dischi, rete, code).
SLI/SLO: indicatori misurabili (ad esempio richieste di successo/tutte, p95 latency), obiettivi di disponibilità (ad esempio, "99. 9% in 30 giorni"), il bilancio degli errori → i processi.
High-cardinality con intelligenza: le etichette discografiche devono essere utili in tagli (regione/tenante/provider), ma non esplodere TSDB.

3) Standard e correlazione completa

OpenTelemetry (OTTEL) - Un unico SDK/protocollo per metriche, fogli e tracciati.
Identificatori: «trace _ id», «span _ id», «correlation _ id», «player _ id» (alias), «payment _ route».
ID di flusso: gateway di ingresso tutti i microservizi di pagamenti/PSP/code/giubbotti di login/metriche/span.

Esempio: intestazione correlazione


traceparent: 00-<trace_id>-<span_id>-01 x-request-id: <correlation_id>

4) Metriche: cosa e come misuriamo

Denominazione/etichetta

`service="payments-api"`, `env="prod"`, `region="eu-west"`, `tenant`, `provider="pspX"`.

Esempi di Prometheus

prometheus
RED http_requests_total{service="api",route="/deposit",method="POST",status="200"}
http_request_duration_seconds_bucket{service="api",le="0. 25",route="/deposit"} 1234 http_request_errors_total{service="api",route="/deposit"}

USE cpu_utilization_ratio{node="n1"} 0. 71 queue_depth{queue="withdrawals"} 128

Бизнес payments_success_total{psp="X",currency="EUR"} 4521 payment_conversion_ratio{route="pspX"} 0. 948

Istogrammi ed exemplars

Conserva gli istogrammi di latitanza (native-historograms/vcuckets) e aggancia l'exemplar con'trace _ id ', per saltare dal «baco lento» a una pista specifica.

5) Loghi: strutturato e sicuro

Solo JSON (niente free-form in vendita).
Поля: `timestamp`, `severity`, `service`, `trace_id`, `correlation_id`, `player_id_hash`, `event`, `amount`, `currency`, `ip_hash`.
Masking/hash PII, singoli indici/retention per sensibile.
Pipline dei logi: parsing, normalizzazione dell'arricchimento (geo/ASN), modifica dell'indicizzazione PII.

Esempio di evento JSON

json
{
"ts":"2025-11-05T10:42:31Z",
"sev":"ERROR",
"service":"payments-api",
"event":"psp_timeout",
"trace_id":"9c5e...e2",
"route":"pspX",
"duration_ms": 3100,
"attempt":2,
"player_id_hash":"p:1b7f...",
"pii_redacted":true
}

6) Tracce: dove perdere tempo

Span: richiesta di input, chiamate di provider (PSP/Games Provider), database/cache, RPC interserver.
Attributi: 'db. system`, `net. peer. name`, `messaging. system`, `psp. route`, `game. provider`.

Sampling:
  • head-based (probabile) per il volume,
  • tail-based (per errori, p95 +, segmento VIP),
  • guaranteed-keep per pagamenti/critici PII.

7) Osservazione del fronte e del mobile

RUM: TTFB, FCP/LCP/CLS/INP, errori JS, reti e routing SPA.
Crash-report: simbolazione, disobfusione, versione del cartellino, dispositivo/OS.
Sintetica: script di ingresso/deposito/tasso; Controlli geografici.

8) SLO, SLI e bilancio degli errori

Esempio SLO (pseudo-YAML)

yaml service: payments-api sli:
- name: availability expr: sum(rate(http_requests_total{status=~"2..    3.."}[5m]))
/ sum(rate(http_requests_total[5m]))
- name: latency_p95 expr: histogram_quantile(0. 95, rate(http_request_duration_seconds_bucket[5m]))
targets:
availability: "99. 9%/30d"
latency_p95: "<=250ms/30d"
error_budget_policy:
fast_burn: 5% for 1h -> page, freeze deploy slow_burn: 20% for 24h -> incident, improvement plan

Alerting sul budget degli errori, non su ogni metrica.
Procedure Freeze per bruciare il budget: limitare i rilasci/canarini.

9) Alerting senza rumore

Multi-window, multi-burn regole: finestra breve/lunga.
Deduplicazione/routing per servizi/regioni/criticità in on-call.
Runbook URL e assemblaggio automatico del contesto (ultimi deploi, modifiche ai configuri, grafico delle dipendenze).
Orologio silenzioso e soppressione durante i lavori di routine.

Esempio di regola (idea PromQL)

promql alert: PaymentsSLOFastBurn expr: slo_error_rate_5m > 2 slo_budget_rate for: 15m labels: { severity="page", service="payments-api" }
annotations:
summary: "SLO fast burn"
runbook: "https://runbooks/payments/slo"

10) Profiling e eBPF

eBPF/profiler: flame CPU/alloc, latitanza I/O, drop di rete, anomalie Syscall.
Utile con le strette p99, jitter e rare dipendenze.

11) Osservazione aziendale (product & risk)

Finanza/monetizzazione: conversione dei depositi, TTW (time-to-wallet), auto ./settl, cancellazioni/charjbeck.
Attività di gioco: retenschn/strick, quota di scommesse live, «appiccicosità» dei provider.
Antifrode/abuse: velocità di azione, corrispondenza dei dispositivi/IP, correlazioni.
Indicatori RG: sessioni lunghe, «raggiungimento», bistecche crescenti.
Le metriche aziendali sono correlate con le metriche e le release (annotation events).

12) Sicurezza, PII e conformità

Data-zone - Tag dataset/login ('pii = true', 'region = EU').
Maschera prima dell'indicizzazione, alias ID.
Storage WORM per il controllo Accesso di ruolo al cavo.
Tempi di conservazione diversi per i tecnici/verifiche/business.
Vietare i segreti crudi nei reparti; scan-test in CI.

13) Gestione del costo (FinOps)

Limite di cardinalità: attenzione con'user _ id ',' sessions _ id '.
Partitura/retenschn: caldo (7-14 giorni), caldo (30-90), freddo (archivio).
Sampling piste (tail-based) e downsampling metriche.
Bollo per i tag «team», «service», «tenant»: rapporti «chi brucia l'osservazione».

14) Strumentazione (matricola)

Metriche: Prometheus/lake per metriche, dashboard Grafana.
Logi: Loki/ELK; ingestione regole, reduction/parsing.
Trailer: Tempo/Jaeger/Raccoglitori OTel; eccplars-lines da metriche.
Il sintetico è l'esportatore Blackbox, i browser robot.
Alerting: Alertmanager/chat-integrazione, on-call rotazione.
Profiling, profiling.

15) Esempi: implementare rapidamente la base

(a) Esportatore RED per API (pseudo-codice):
python from prometheus_client import Counter, Histogram, start_http_server reqs = Counter('http_requests_total','', ['route','method','status'])
lat = Histogram('http_request_duration_seconds','', ['route'])
def handle(req):
with lat. labels(route=req. route). time():
status = app(req)
reqs. labels(route=req. route,method=req. method,status=str(status)). inc()
(b) Incorporare trace _ id nella loggia (middleware-idea):
go tid:= ctx. Value("trace_id")
logger = logger. With("trace_id", tid)
logger. Info("deposit-accepted", "amount", amt, "route", route)
(c) Varianti (exemplars) in metriche:
prometheus http_request_duration_seconds_bucket{..., le="0. 25"} 1023 # exemplar: trace_id=9c5e...

16) Processi e operazioni

Un unico dizionario/etichetta (naming-guide) e un modello di dashboard.
Release-annotazioni automatica nei grafici.
Incidenti: carta, timeline, RCA senza accuse, action items.
Ansia di apprendimento (game-day) - Simulazione di cadute, ritardi PSP, surriscaldamento della cache.
Runbooks - istruzioni passo passo e collegamenti automatici da alert.

17) Assegno-foglia di maturità

1. OtTel SDK/raccoglitore → un'unica esportazione di metriche/fogli/trailer.
2. RED/USE coprono tutti i servizi + SLI/SLO per API chiave.
3. La correlazione'trace _ id 'è una correlazione tra i fogli della metrica (exemplars, jump-links).
4. Alert di bilancio errori con multi-burn e link runabook.
5. RUM + sintetico per deposito/tasso/output.
6. Profiling (eBPF) sulla lista bianca.
7. Criteri PII: occultamento, zone, accesso, conservazione.
8. Rapporto finanziario sui costi della telemetria (tag «team/service»).
9. Preparazione al picco - Piano di prova, riscaldamento della cache, modelli alert.
10. RCA regolari e revisione SLO/soglie.

18) Antipattern

Fogli «lenzuola» senza struttura e «trace _ id».
Gli alert di ogni metrica → alert-fatiG.
Gli istogrammi non sono corretti.
L'illimitata radicalità delle etichette ha fatto esplodere il valore.
L'assenza di RUM/sintetici è «ok» e l'utente no.
Miscelazione di PII con i tecnici, ritenzione a tempo indeterminato.
L'isolamento della telemetria dalla KPI aziendale - «La latitanza è in calo, anche i ricavi».

Riepilogo

Una forte osservabilità è il linguaggio comune tra prodotto, SRE, sicurezza e pagamento. Collegando le metriche, i fogli, le piste sotto OTEL, introducendo SLO con il budget degli errori, rendendo l'alerting intelligente e il costo gestibile, si ottiene un sistema che prima nota i problemi, riparare più velocemente e passare prevedibilmente picchi di traffico e carichi di tornei.

Contact

Mettiti in contatto

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

Telegram
@Gamble_GC
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.