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`,
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.
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.
- 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.