GH GambleHub

Telemetriya və hadisələrin toplanması

1) Təyinat və prinsiplər

Məqsədlər:
  • Analitik, antifrod, RG, uyğunluq və ML üçün vahid və proqnozlaşdırıla bilən hadisələr axını.
  • Tracking (user/session/request/trace) və təkrarlanabilirlik.
  • PII-nin minimuma endirilməsi və məxfilik tələblərinə uyğunluğu.

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

2) Hadisələrin taksonomiyası

Ödəniş: 'payment. deposit`, `payment. withdrawal`, `payment. chargeback`.
Oyun: 'game. session_start/stop`, `game. bet`, `game. payout`, `bonus. applied`.
Xüsusi: 'auth. login`, `profile. update`, `kyc. status_changed`, `rg. limit_set`.
Əməliyyat: 'api. request`, `error. exception`, `release. deploy`, `feature. flag_changed`.
Komplayens: 'aml. alert_opened`, `sanctions. screened`, `dsar. requested`.

Hər növ sahibi var (domain owner), sxem və SLO təravət.

3) Sxemlər və müqavilələr

Məcburi sahələr (minimum):
  • `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.`.
Nümunə (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"}
}

Sxemlərin təkamülü: semantik versiyalar; backward-compatible - nullable sahələri əlavə edin; breaking - yalnız yeni versiyada ('/v2 ') ikiqat yazma müddəti ilə.

4) Instrumental: harada və necə

4. 1 Müştəri (Web/Mobile/Masaüstü)

SDK telemetriya yerli bufer, batch-göndərmə, eksponent retras.
Avtomatik hadisələr: ziyarətlər, kliklər, blokların görünürlüyü, web-vitals (TTFB, LCP, CLS), JS səhvləri.
Identifikatorları: 'device _ id' (sabit, lakin xüsusi), 'session _ id' (yenilənir), 'user. pseudo_id`.
«Səs-küy» qorunması: 'event _ id' dedupu, trottling, client-side sampling.

4. 2 Server/Backend

Logger/Tracer (OpenTelemetry) → domen hadisələrinin emiti.
Bütün downstream xidmətlərinə edge/gateway-dən 'trace _ id' atmaq məcburidir.
Domen hadisələrinin tranzaksiya nəşri üçün Outbox-pattern.

4. 3 Provayderlər/üçüncü tərəflər

Ana sxemlərə normallaşdırma ilə bağlayıcılar (PSP/KYC/studiyalar); versiya adapterləri.
İmza/payload bütövlüyünün yoxlanılması, perimetrin jurnalistikası (ingest audit).

5) OpenTelemetry (OTel)

Traces: Hər sorğu 'trace _ id' alır; log/hadisələri 'trace _ id '/' span _ id' vasitəsilə bağlayırıq.
Logs: OTel Logs/çeviriciləri istifadə edin; 'service mühit işarələri. name`, `deployment. env`.
Metriklər: RPS/latency/error-rate, biznes metrikası (GGR, konvertasiya).
Collector: Kafka/HTTP/qrafik vahid qəbul/bufer/ixrac nöqtəsi. yığını.

6) Identifikatorlar və korrelyasiya

'event _ id' - unikallıq və idempotentlik.
`user. pseudo_id' - sabit təxəllüsləşmə (ayrı və məhdud mappinq).
'session _ id', 'request _ id', 'trace _ id', 'device _ id' - keçici analiz üçün məcburidir.
API şlyuz və SDK səviyyəsində ID uyğunluğu.

7) Sampling və həcminə nəzarət

Qaydalar: per-event-type, per-market, dinamik (adaptiv) yük.
Dəqiq çəkilmiş hadisələr: ödəniş/komplayens/insidentlər - səpilmir.
Analitik hadisələr: vitrinlərdə düzəliş çəkiləri ilə 10-50% icazə verilir.
Server-side downsampling: yüksək frequency metrik üçün belə.

8) Gizlilik və uyğunluq

PII-ni minimuma endirin: PAN/IBAN/email-i tokenləşdirin; IP → geo kodları/ASN ingest.
Bölgələşmə: Regional ingest-endpointlərə (EEA/UK/BR) göndərin.
DSAR/RTBF: seçici gizli proyeksiyaları dəstəkləyir; hüquqi əməliyyatlar jurnalı.
Saxlama siyasətləri: tipə görə müddətlər (analitik daha qısa, tənzimləyici daha uzun); Legal Hold.

9) Nəqliyyat və bufer

Client → Edge: HTTPS (HTTP/2/3), 'POST/telemetry/batch' (100 hadisəyə qədər).
Edge → Şina: Kafka/Redpanda 'user partiyalaşdırma ilə. pseudo_id`/`tenant_id`.
Formatlar: JSON (ingest), Avro/Protobuf (şində), Parquet (lake).
Etibarlılıq: jitter, DLQ, poison-pill izolyasiya ilə retralar.

batch spesifikasiyası (sadələşdirilmiş):
json
{
"sdk": {"name":"igsdk-js","version":"2. 7. 1"},
"sent_at": "2025-11-01T18:45:12. 500Z",
"events": [ {... }, {... } ]
}

10) Etibarlılıq və idempotentlik

Client-generated 'event _ id' + server dedup '(event_id, source)'.
Xidmətlərdə Outbox, axınlarda Exactly-Once-semantika (keyed state + dedupe).
Açar daxilində sifariş: 'user/session' üzrə partizan.
Vaxt nəzarəti: NTP/PTP, icazə verilən sürüklənmə (məsələn, ≤ 200 ms), serverdə 'received _ at'.

11) Telemetriya (TQ) və SLO keyfiyyəti

Completeness: ≥ 99. T. üçün kritik tipli hadisələrin 5% -i.
Freshness: p95 Silver çatdırılma gecikməsi ≤ 15 dəq.
Correctness: 99 ≥ valid sxemləri. 9%, drop-rate < 0. 1%.
Trace coverage: 'trace _ id' ilə sorğuların payı 98% ≥.
Cost/GB: domenlər üzrə ingest/saxlama üçün hədəf büdcə.

12) Müşahidə və daşbordlar

Minimum widget:
  • Lag ingest (p50/p95) mənbələrə və bölgələrə görə.
  • Hadisələrin və bazarların növlərinə görə Completeness.
  • Sxem validasiya səhvləri/oversized-payloads.
  • SDK versiyalarının xəritəsi və köhnəlmiş müştərilərin faizi.
  • Korrelyasiya web-vitals, dönüşüm/uğursuzluqlar.

13) Müştəri SDK: tələblər

Yüngül footprint, offline tampon, gecikmiş başlanğıc.
Parametrlər: sampling, max batch size, max queue age, privacy mods (no-PII).
Mühafizə: paket imzası/anti-tamper, anahtarların açılması.
Yeniləmə: səs-küylü hadisələri söndürmək üçün feature bayraqlar.

14) Edge qat və müdafiə

Rate limit, WAF, schema validation, kompression (gzip/br).
Müştəriyə Token bucket; anti-replay ('request _ id', TTL).
IP və UA aradan qaldırılması → normallaşdırma/« xam »payload xaricində zənginləşdirilməsi.

15) Məlumat konveyeri ilə inteqrasiya

Bronze: geri dönməz xammal payload (forensika üçün).
Silver: deadup/zənginləşdirmə ilə normallaşdırılmış cədvəllər.
Gold: BI/AML/RG/məhsul üçün vitrinlər.
Hadisələr və hesabatlar arasında linej; transformasiya versiyaları.

16) Müştəri keyfiyyətinin analitikası

«Sakit müştərilər» əmsalı (N saat ərzində heç bir hadisə yoxdur).
«Fırtına» anomaliyaları (mass duplicate/burst).
Versiyalara və platformalara görə «köhnəlmiş SDK» -ların payı.

17) Proseslər və RACI

R: Data Platform (ingest/şin/validatorlar), App Teams (SDK instrumentasiyası).
A: Head of Data/Architecture.
C: Compliance/DPO (PII/retention), SRE (SLO/insidentlər).
I: BI/Marketinq/Risk/Məhsul.

18) Tətbiqi yol xəritəsi

MVP (2-4 həftə):

1. 6-8 növ üçün hadisələrin taksonomiyası v1 + JSON sxemləri.

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

3. Kafka + Bronze qat; əsas validatorlar və dedup.

4. Daşbord ingest lag/completeness, drop/validator üçün alertlər.

Faza 2 (4-8 həftə):
  • OTel Collector, Trace-korrelyasiya; Silver normallaşdırma və DQ qaydaları.
  • Regional end-point (EEA/UK), privacy-moda, DSAR/RTBF prosedurları.
  • SDK versiyalarının xəritəsi, üzüklər üzrə avto-rollout yeniləmələri.
Faza 3 (8-12 həftə):
  • Axınlarda Exactly-Once, Feature Store Connection, Anti-Freedom Online Feeds.
  • Sxemlər və validatorlar, dəyişikliklərin simulyasiyası (impact analysis) üçün Rule-as-Code.
  • Dəyər optimizasiyası: adaptive sampling, Z-order/lake-də klaster.

19) Buraxılışdan əvvəl keyfiyyət yoxlama siyahısı

  • Məcburi sxem sahələri və düzgün növlər doldurulur.
  • 'trace _ id '/' request _ id '/' session _ id' mövcuddur.
  • SDK batch, retry, sampling dəstəkləyir.
  • Edge sxemi təsdiqləyir və payload ölçüsünü məhdudlaşdırır.
  • Xüsusi filtrələr və həssas sahələrin tokenizasiyası daxildir.
  • SLO/Alerts və Dashboard konfiqurasiya.
  • Domenlər üçün sənədləşdirmə (hadisə nümunəsi, owner, SLA).

20) Tez-tez səhvlər və onlardan necə qaçmaq olar

Sxemsiz xam hadisələr: qeydiyyat və CI-validasiya daxil edin.
İdempotentlik yoxdur: 'event _ id' tələb edin və babanın pəncərələrini saxlayın.
PII və analitiklərin qarışması: mappinqləri ayırın, sahələri maskalayın.
Treysinqin olmaması: gateway → xidmətlər → hadisələr vasitəsilə 'trace _ id' qoyun.
Nəzarət olunmayan həcmlər: sampling/trrottling və budget kvotaları tətbiq edin.
Regionlar olmadan qlobal endpoint: regionallaşdırma və data residency istifadə edin.

21) Lüğət (qısa)

OpenTelemetry (OTel) treys/metrik/log üçün açıq standartdır.
Outbox - domen hadisələrinin tranzaksiya nəşri.
DLQ - «qırıq» mesajların növbəsi.
Sampling - həcmi azaltmaq üçün hadisələrin bir hissəsinin seçilməsi.
Data Residency - məlumatların lazımi yurisdiksiyada saxlanması.

22) Yekun

Yaxşı dizayn edilmiş telemetriya sadəcə «giriş göndərmək» deyil, razılaşmalardır: ciddi sxemlər, razılaşdırılmış identifikatorlar, default gizlilik, etibarlı nəqliyyat, müşahidə və qənaət dəyəri. Bu məqaləni izləyərək, proqnozlaşdırıla bilən SLO ilə analitik, komplayens və maşın öyrənməsinə hazır davamlı bir hadisə axını əldə edəcəksiniz.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.