Colectia de Telemetrie si Evenimente
1) Scop și principii
Obiective:- Flux unic și previzibil de evenimente pentru analiză, antifraudă, RG, conformitate și ML.
- Urmărire end-to-end (user/session/request/trace) și reproductibilitate.
- Minimizarea PII și respectarea confidențialității.
Принципы: schema-în primul rând, confidențialitate-prin-design, idempotență-implicit, observabilitate-implicit, cost-conștient.
2) Taxonomia evenimentelor
Plata: 'plata. depozit „,” plata. retragere „,” plata. chargeback '.
Gaming: 'joc. session_start/stop', "joc. pariu „,” joc. plata „,” bonus. aplicată ".
Personalizat: "autentificare", "profil. update ',' kyc. status_changed', 'rg. limit_set'.
Săli de operație: "api. cerere „,” eroare. excepție „,” eliberare. implementați „,” caracteristică. flag_changed'.
Conformitate: 'aml. alert_opened', sancţiuni. screened ',' dsar. solicitat ".
Fiecare tip are un proprietar de domeniu, o schemă și un SLO de prospețime.
3) Scheme și contracte
Câmpuri obligatorii (minim):- 'event _ time' (UTC), 'event _ type', 'schema _ version', 'event _ id' (UUID/ULID),
- 'trace _ id'/' span _ id',' request _ id', 'user. pseudo_id', 'session _ id',
json
{
"event_id": "01HFY1S93R8X",
"event_time": "2025-11-01T18:45:12. 387Z",
"event_type": "game. bet",
"schema_version": "1. 4. 0",
"user": {"pseudo_id": "p-7a2e", "age_band": "25-34", "country": "EE"},
"session": {"id": "s-2233", "device_id": "d-9af0"},
"game": {"id": "G-BookOfX", "provider": "StudioA", "stake": {"value": 2. 00, "currency": "EUR"}},
"ctx": {"ip": "198. 51. 100. 10", "trace_id": "f4c2...", "request_id": "req-7f91"},
"labels": {"market": "EE", "affiliate": "A-77"}
}
Evoluția schemelor: versiuni semantice; înapoi-compatibil - adăugați câmpuri nullable; breaking - numai în noua versiune ('/v2 ') cu o perioadă de înregistrare dublă.
4) Instrumentație: unde și cum
4. 1 Client (Web/Mobile/Desktop)
Telemetrie locală tampon SDK, depunerea loturilor, retribuții exponențiale.
Auto-evenimente: vizite, clicuri, vizibilitatea blocurilor, semnele vitale web (TTFB, LCP, CLS), erori JS.
Identificatori: 'device _ id' (stabil, dar privat),' session _ id' (actualizat), 'user. pseudo_id'.
Protecție împotriva „zgomotului”: dedup prin 'event _ id', throttling, eșantionare client-side.
4. 2 Server/backend
Logger/tracer wrappers (OpenTelemetry) → eveniment de domeniu emit.
Aruncarea obligatorie a 'trace _ id' de la edge/gateway la toate serviciile din aval.
Outbox model pentru publicarea tranzactionala a evenimentelor de domeniu.
4. 3 Furnizori/Terți
Conectori (PSP/KYC/studios) cu normalizare pentru a găzdui circuite; adaptoare de versiune.
Verificarea integrității semnăturii/sarcinii utile, logarea perimetrală (auditul ingerat).
5) OpenTelemetry (OTel)
Urme: fiecare cerere primește un 'trace _ id'; asociem jurnale/evenimente prin 'trace _ id'/' span _ id'.
Jurnale: utilizați jurnale/convertoare OTel; servicii de etichetare a mediului. nume „,” desfăşurare. env ".
Valori: RPS/latență/eroare-rata de serviciu, metrica de afaceri (GGR, conversie).
Colector: un singur punct de primire/tampon/export în Kafka/HTTP/grafic. stivă.
6) Identificatori și corelație
'event _ id' - unicitate și idempotență.
"utilizator. pseudo_id' - aliasing stabil (cartografiere separat și limitat).
'session _ id',' request _ id', 'trace _ id',' device _ id' sunt necesare pentru analiza end-to-end.
ID consistență la API gateway și nivel SDK.
7) Prelevarea de probe și controlul volumului
Reguli: per-eveniment-tip, per-piață, dinamic (adaptiv) de sarcină.
Evenimente surprinse cu precizie: plată/conformitate/incidente - nu sunt eșantionate.
Evenimente analitice: 10-50% cu ponderi corective în cazurile de afișare este permis.
Sub-eșantionare laterală a serverului: Valabil pentru măsurători de înaltă frecvență.
8) Confidențialitate și conformitate
Minimizați PII: Tokenize PAN/IBAN/email; IP → geo coduri/ASN atunci când ingera.
Regionalizare: Trimiteți la punctele finale regionale de ingerare (SEE/UK/BR).
DSAR/RTBF: suport pentru ascunderea proiecției selective; jurnalul de tranzacții legale.
Politici de retenție: calendarul pe tipuri (analiză mai scurtă, reglementare mai lungă); Legal Hold.
9) Transport și tamponare
→ client Edge: HTTPS (HTTP/2/3), „POST/telemetrie/lot” (până la 100 de evenimente).
Edge → anvelope: Kafka/Redpanda partiționat de utilizator. pseudo_id'/'tenant_id'.
Formate: JSON (ingera), Avro/Protobuf (în autobuz), Parchet (în lac).
Fiabilitate: retrai cu jitter, DLQ, izolarea pilulelor otrăvitoare.
json
{
"sdk": {"name":"igsdk-js","version":"2. 7. 1"},
"sent_at": "2025-11-01T18:45:12. 500Z",
"events": [ {... }, {... } ]
}
10) Fiabilitate și idempotență
Generat de client 'event _ id' + server grandfather by' (event_id, sursă) '.
Outbox pe servicii, Exact-Once-semantica în fire (starea tastat + dedupe).
Comanda in cheie: partitionat de 'user/session'.
Controlul timpului: NTP/PTP, drift permis (de exemplu, ≤ 200 ms), 'received _ at' pe server.
11) Calitatea telemetriei (TQ) și SLO
Integralitate: ≥ 99. 5% din evenimentele de tip critic per T.
Prospețime: întârziere de livrare p95 la Silver ≤ 15 min.
Corectitudine: scheme valabile ≥ 99. 9%, drop-rate <0. 1%.
Acoperirea urmelor: Procentul cererilor cu 'trace _ id' ≥ de 98%.
Cost/GB: buget țintă pentru ingerare/stocare pe domenii.
12) Observabilitate și tablouri de bord
Widget-uri minime:- Lag ingera (p50/p95) după sursă și regiune.
- Integralitatea în funcție de tipul de eveniment și de piață.
- Erori de validare a schemelor de sarcini utile supradimensionate.
- Harta versiunii SDK și procentul clienților moșteniți.
- Corelarea semnelor vitale web ↔ conversia/eșecurile.
13) Cerințe SDK client
Amprentă ușoară, tampon offline, inițializare amânată.
Setări: eșantionare, dimensiunea maximă a lotului, vârsta maximă a cozii, moda de confidențialitate (fără PII).
Protecție: semnătură pachet/anti-tamper, obfuscation cheie.
Actualizare: feature-flags pentru a dezactiva evenimentele zgomotoase.
14) Strat de margine și protecție
Limita ratei, WAF, validarea schemei, compresie (gzip/br).
Cupă token pentru fiecare client; anti-reluare ('request _ id', TTL).
Eliminarea IP și UA → normalizare/îmbogățire în afara sarcinii utile „brute”.
15) Integrarea cu conducta de date
Bronz: sarcină utilă brută adăugată ireversibil (pentru criminalistică).
Argint: tabele normalizate cu deduplicare/îmbogățire.
Aur: cutii de afișare pentru BI/AML/RG/produs.
Legătura dintre evenimente și rapoarte; versiuni de transformări.
16) Analiza calității clienților
Raport clienți silențios (fără evenimente în N ore).
Anomalii ale „furtunii” (duplicat/explozie în masă).
Ponderea „SDK-urilor moștenite” pe versiuni și platforme.
17) Procese și RACI
R: Platforma de date (ingera/autobuz/validatoare), Echipe de aplicații (instrumentație SDK).
R: Șef de date/arhitectură.
C: Conformitate/DPO (PII/retenție), SRE (SLO/incidente).
I: BI/Marketing/Risc/Produs.
18) Foaia de parcurs privind implementarea
MVP (2-4 săptămâni):1. Event taxonomy v1 + JSON scheme pentru 6-8 tipuri.
2. SDK (Web/Android/iOS) с lot и eșantionare; Edge '/telemetrie/lot '.
3. Kafka + Strat de bronz; validatoare de bază și dedup.
4. Tabloul de bord ingera lag/completitudine, alerte pentru a picătură/validator.
Faza 2 (4-8 săptămâni):- Colector OTel, corelație de urme; Normalizarea argintului și regulile DQ.
- Puncte finale regionale (SEE/UK), proceduri de confidențialitate, proceduri DSAR/RTBF.
- Versiunea SDK hartă, auto-rollout actualizări de inele.
- Exact-Odată în fluxuri, conexiuni Feature Store, feed-uri online anti-fraudă.
- Rule-as-Code pentru scheme și validatori, analiza impactului.
- Optimizarea valorii: eșantionare adaptivă, comandă Z/grupare în lac.
19) Lista de verificare a calității înainte de lansare
- Câmpurile scheme necesare și tipurile corecte sunt completate.
- 'trace _ id'/' request _ id'/' session _ id' sunt prezente.
- SDK suportă lot, încercați din nou, eșantionare.
- Edge validează schema și limitează dimensiunea sarcinii utile.
- Filtrele de confidențialitate și tokenizarea câmpurilor sensibile sunt activate.
- Configurate SLO/alerte și tablouri de bord.
- Documentație pentru domenii (exemplu eveniment, proprietar, SLA).
20) Greșeli frecvente și cum să le evitați
Evenimente brute fără scheme: introduceți registrul și validarea CI.
Fără idempotență: necesită 'event _ id' și stochează ferestrele de eliminare a duplicatelor.
PII și analytics se amestecă: mapări separate, câmpuri de mască.
Fără urmărire: traseu 'trace _ id' prin gateway → servicii → evenimente.
Volume fără gestionare - Utilizați cote de eșantionare/trottling și buget.
Punct final global fără regiuni - utilizați regionalizarea și rezidența datelor.
21) Glosar (scurt)
OpenTelemetry (OTel) este un standard deschis pentru trasee/metrici/busteni.
Outbox - publicarea tranzactionala a evenimentelor de domeniu.
DLQ - coadă de mesaje „rupte”.
Eșantionare - selectarea unei părți a evenimentelor pentru reducerea volumului.
Rezidența datelor - stocarea datelor în jurisdicția dorită.
22) Linia de jos
Telemetria bine concepută se referă la aranjamente, nu doar la „trimiterea jurnalelor”: scheme stricte, identificatori conveniți, confidențialitate implicită, transport fiabil, observabilitate și economie de costuri. Urmând acest articol, veți obține un flux constant de evenimente gata pentru analiză, conformitate și învățare automată cu SLO-uri predictibile.