GH GambleHub

Telemetriya va voqealarni yig’ish

1) Vazifasi va prinsiplari

Maqsadlar:
  • Tahlillar, antifrod, RG, komplayens va ML uchun yagona va oldindan aytib bo’ladigan voqealar oqimi.
  • Izlash (user/session/request/trace) va takrorlanuvchanlik.
  • PIIni minimallashtirish va maxfiylik talablariga muvofiqligi.

Принципы: schema-first, privacy-by-design, idempotency-by-default, observability-by-default, cost-aware.

2) Voqealar taksonomiyasi

To’lov:’payment. deposit`, `payment. withdrawal`, `payment. chargeback`.
Oʻyin:’game. session_start/stop`, `game. bet`, `game. payout`, `bonus. applied`.
Foydalanuvchi:’auth. login`, `profile. update`, `kyc. status_changed`, `rg. limit_set`.
Operatsion:’api. request`, `error. exception`, `release. deploy`, `feature. flag_changed`.
Komplayens:’aml. alert_opened`, `sanctions. screened`, `dsar. requested`.

Har bir turning egasi (domain owner), sxemasi va SLO yangiligiga ega.

3) Sxemalar va kontraktlar

Majburiy maydonlar (minimal):
  • `event_time` (UTC), `event_type`, `schema_version`, `event_id` (UUID/ULID),
  • `trace_id`/`span_id`, `request_id`, `user. pseudo_id`, `session_id`,
`source` (clientserverprovider), `market` (jurisdiction), `labels.`.
Misol (JSON):
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"}
}

Sxemalar evolyutsiyasi: semantik versiyalar; backward-compatible - nullable maydonlarini qo’shing; breaking - faqat yangi versiyada (’/v2’).

4) Instrumentatsiya: qayerda va qanday

4. 1 Mijoz (Web/Mobile/Desktop)

SDK telemetriya bilan lokal bufer, batch-jo’natish, eksponensial retralar.
Avto-voqealar: tashriflar, bosishlar, bloklarning ko’rinishi, web-vitals (TTFB, LCP, CLS), JS xatolari.
Identifikatorlar:’device _ id’(barqaror, lekin shaxsiy),’session _ id’(yangilanmoqda),’user. pseudo_id`.
Shovqinlardan himoya qilish: dedup’event _ id’, trottling, client-side sampling.

4. 2 Server/backend

Logger/treyser (OpenTelemetry) → domen hodisalari emiti.
’trace _ id’ ni edge/gateway’dan barcha downstream servislariga ulash.
Domen voqealarini tranzaksion nashr etish uchun Outbox-pattern.

4. 3 Provayderlar/uchinchi tomonlar

Xost-sxemalarga normallashtirilgan konnektorlar (PSP/KYC/studiyalar); versiya adapterlari.
Imzo/payload yaxlitligini tekshirish, perimetr jurnalizmi (ingest audit).

5) OpenTelemetry (OTel)

Treyslar: har bir so’rov’trace _ id’ni oladi; ’trace _ id ’/’ span _ id’ orqali loglar/hodisalarni bogʻlaymiz.
Logi: OTel Logs/konvertorlardan foydalaning; ’service muhit belgilari. name`, `deployment. env`.
Metrika: Services bo’yicha RPS/latency/error-rate, biznes-metrika (GGR, konvertatsiya).
Collector: yagona qabul qilish/bufer/Kafka/HTTP/grafichga eksport qilish. stek.

6) Identifikatorlar va korrelyatsiya

’event _ id’ - o’ziga xoslik va idempotentlik.
`user. pseudo_id' - barqaror taxalluslashtirish (alohida va cheklangan tarzda mapping).
’session _ id’,’request _ id’,’trace _ id’,’device _ id’- uzluksiz tahlil qilish uchun majburiydir.
API-shlyuz va SDK darajasida ID muvofiqligi.

7) Semplash va hajmni nazorat qilish

Qoidalar: per-event-type, per-market, yuk bo’yicha dinamik (moslashuvchan).
Aniq olib tashlangan hodisalar: to’lov/komplayens/hodisalar - semplanmaydi.
Tahliliy voqealar: vitrinalarda tuzatuvchi tarozilar bilan 10-50% ga yo’l qo’yiladi.
Server-side downsampling: masalan, high-frequency metrik uchun.

8) Maxfiylik va komplayens

PII ni minimallashtiring: PAN/IBAN/email ni tokenlashtiring; IP → geo-kodlar/ASN ingest.
Hududlashtirish: mintaqaviy ingest-endpointlarga (EEA/UK/BR) yuboring.
DSAR/RTBF: proyeksiyalarni tanlab yashirishni qoʻllab-quvvatlash; huquqiy operatsiyalar jurnali.
Saqlash siyosati: turi bo’yicha muddatlar (tahlillar qisqaroq, tartibga solish muddatlari uzoqroq); Legal Hold.

9) Transport va buferlashtirish

Mijoz → Edge: HTTPS (HTTP/2/3),’POST/telemetry/batch’(100 tagacha).
Edge → Shina: Kafka/Redpanda. pseudo_id`/`tenant_id`.
Formatlar: JSON (ingest), Euro/Protobuf (shinada), Parquet (lake).
Ishonchlilik: jitter, DLQ, poison-pill izolyatsiyali retralar.

Batch spetsifikatsiyasi (soddalashtirilgan):
json
{
"sdk": {"name":"igsdk-js","version":"2. 7. 1"},
"sent_at": "2025-11-01T18:45:12. 500Z",
"events": [ {... }, {... } ]
}

10) Ishonchlilik va idempotentlik

Client-generated’event _ id’+ server dedup’(event_id, source)’.
Servislarda Outbox, oqimlarda Exactly-Once semantikasi (keyed state + dedupe).
Kalit doirasidagi tartib:’user/session’bo’yicha partiyalashtirish.
Vaqt nazorati: NTP/PTP, ruxsat etilgan dreyf (masalan, 200 ms ≤), serverda’received _ at’.

11) Telemetriya (TQ) va SLO sifati

Completeness: ≥ 99. T. uchun muhim turdagi hodisalarning 5%

Freshness: p95 Silver yetkazib berishda kechikish ≤ 15 daqiqa.
Correctness: valid sxemalar ≥ 99. 9%, drop-rate < 0. 1%.
Trace coverage:’trace _ id’soʻrovlari ulushi ≥ 98%.
Cost/GB: ingest/domen bo’yicha saqlash uchun maqsadli budjet.

12) Kuzatuv va dashbordlar

Minimal vidjetlar:
  • Lag ingest (p50/p95) manbalar va mintaqalar bo’yicha.
  • Hodisalar va bozorlar turlari bo’yicha completeness.
  • Sxemalar validatsiyasi xatosi/oversized-payloads.
  • SDK versiyasi xaritasi va eskirgan mijozlar foizi.
  • Korrelyatsiya web-vitals, konversiya/rad etish.

13) Mijoz SDK: talablar

Yengil footprint, offline-bufer, kechiktirilgan ishga tushirish.
Moslamalar: sampling, max batch size, max queue age, privacy modes (no-PII).
Himoya: paket/anti-tamper imzosi, kalitlarni saqlash.
Yangilash: shovqinli voqealarni oʻchirish uchun feature bayroqlari.

14) Edge qatlami va himoya

Rate limit, WAF, schema validation, kompressiya (gzip/br).
Token bucket har bir mijoz uchun; anti-replay (’request _ id’, TTL).
IP va UA → ni olib tashlash/« xom »payloaddan tashqarida boyitish.

15) Ma’lumotlar konveyeri bilan integratsiya qilish

Bronze: qaytarib bo’lmaydigan-qo’shimcha xom payload (forenzika uchun).
Silver: dedup/boyitish bilan normallashtirilgan jadvallar.
Gold: BI/AML/RG/mahsulot uchun vitrinalar.
Voqealar va hisobotlar o’rtasidagi linedj; transformatsiyalar versiyasi.

16) Mijoz sifati tahlili

«Jim mijozlar» koeffitsiyenti (N soat uchun hodisa yo’q).
«Bo’ron» anomaliyalari (mass duplicate/burst).
Versiyalar va platformalar bo’yicha «eskirgan SDK» ulushi.

17) Jarayonlar va RACI

R: Data Platform (ingest/shina/validatorlar), App Teams (SDK instrumentatsiyasi).
A: Head of Data/Architecture.
C: Compliance/DPO (PII/retention), SRE (SLO/hodisalar).
I: BI/Marketing/Xavf/Mahsulot.

18) Joriy etishning yo’l xaritasi

MVP (2-4 hafta):

1. Hodisalar taksonomiyasi v1 + JSON-sxemalar 6-8 tur uchun.

2. SDK (Web/Android/iOS) с batch и sampling; Edge `/telemetry/batch`.

3. Kafka + Bronze qatlami; bazaviy validatorlar va dedup.

4. Dashbord ingest lag/completeness, drop/validatorga alertlar.

2-bosqich (4-8 hafta):
  • OTel Collector, treys-korrelyatsiya; Silver-normalizatsiya va DQ qoidalari.
  • Mintaqaviy endpointlar (EEA/UK), privacy-modalar, DSAR/RTBF protseduralari.
  • SDK versiyalari xaritasi, halqa yangilanishlari avto-rollout.
3-faza (8-12 hafta):
  • Exactly-Once streams, Feature Store ulanish, anti-frod onlayn fayllar.
  • Sxemalar va validatorlar, o’zgarishlar simulyatsiyasi (impact analysis) uchun Rule-as-Code.
  • Qiymatni optimallashtirish: adaptive sampling, Z-order/lake klasterlash.

19) Reliz oldidan sifat chek-varag’i

  • Sxemaning majburiy maydonlari va to’g "ri turlari to’ldirildi.
  • ’trace _ id ’/’ request _ id ’/’ session _ id’mavjud.
  • SDK batch, retry, sampling.
  • Edge sxemani tasdiqlaydi va payload oʻlchamini cheklaydi.
  • Maxfiylik filtrlari va sezgir maydonlarning tokenlanishi kiritilgan.
  • SLO/alertlar va dashbordlar sozlangan.
  • Domenlar uchun hujjatlar (hodisa namunasi, owner, SLA).

20) Tez - tez xatolar va ulardan qanday qochish mumkin

Sxemasiz xom hodisalar: registry va CI validatsiyasini kiriting.
Dempotentlik yoʻq:’event _ id’ni talab qiling va dedup oynalarini saqlang.
PII va tahlillarni aralashtirish: mappinglarni ajrating, maydonlarni yashiring.
Treysing yo’qligi:’trace _ id’ni gateway orqali o’tkazing → xizmatlar → voqealar.
Boshqarilmaydigan hajmlar: sampling/trrottling va budget-kvotalardan foydalaning.
Mintaqasiz global endpoint: hududlashtirish va data residency.

21) Lugʻat (qisqacha)

OpenTelemetry (OTel) - treys/metrik/loglar uchun ochiq standart.
Outbox - domen voqealarini tranzaksion nashr etish.
DLQ - «singan» xabarlarning navbati.
Sampling - hajmni kamaytirish uchun voqealarning bir qismini tanlash.
Data Residency - ma’lumotlarni zarur yurisdiksiyada saqlash.

22) Jami

Yaxshi loyihalashtirilgan telemetriya shunchaki «loglarni jo’natish» emas, balki kelishuvdir: qat’iy sxemalar, kelishilgan identifikatorlar, andoza bo’yicha maxfiylik, ishonchli transport, kuzatuv va tejamkor xarajatlar. Ushbu maqoladan so’ng siz tahlillar, komplayens va oldindan aytib bo’ladigan SLOlar bilan mashina o’rganishga tayyor bo’lgan barqaror voqealar oqimini olasiz.

Contact

Biz bilan bog‘laning

Har qanday savol yoki yordam bo‘yicha bizga murojaat qiling.Doimo yordam berishga tayyormiz.

Integratsiyani boshlash

Email — majburiy. Telegram yoki WhatsApp — ixtiyoriy.

Ismingiz ixtiyoriy
Email ixtiyoriy
Mavzu ixtiyoriy
Xabar ixtiyoriy
Telegram ixtiyoriy
@
Agar Telegram qoldirilgan bo‘lsa — javob Email bilan birga o‘sha yerga ham yuboriladi.
WhatsApp ixtiyoriy
Format: mamlakat kodi va raqam (masalan, +998XXXXXXXX).

Yuborish orqali ma'lumotlaringiz qayta ishlanishiga rozilik bildirasiz.