GH GambleHub

ტელემეტრია და მოვლენების შეგროვება

1) დანიშვნა და პრინციპები

მიზნები:
  • მოვლენების ერთიანი და პროგნოზირებადი ნაკადი ანალიტიკოსებისთვის, ანტიფროდისთვის, RG, კომპლენსისთვის და ML- სთვის.
  • კვალდაკვალ (მომხმარებლის/სესიის/ნაკადის/ტრასის) და რეპროდუქცია.
  • PII- ის მინიმიზაცია და კონფიდენციალურობის მოთხოვნების დაცვა.

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

2) მოვლენების ტაქსონომია

გადახდა: 'payment. deposit`, `payment. withdrawal`, `payment. chargeback`.
თამაში: 'game. session_start/stop`, `game. bet`, `game. payout`, `bonus. applied`.
მომხმარებლის: 'auth. login`, `profile. update`, `kyc. status_changed`, `rg. limit_set`.
ოპერაციული: 'ap. request`, `error. exception`, `release. deploy`, `feature. flag_changed`.
შესაბამისობა: 'aml. alert_opened`, `sanctions. screened`, `dsar. requested`.

თითოეულ ტიპს აქვს მფლობელი, სქემა და ახალი SLO.

3) სქემები და კონტრაქტები

სავალდებულო ველები (მინიმალური):
  • `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.`.
მაგალითი (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"}
}

სქემების ევოლუცია: სემანტიკური ვერსიები; backward compatible - დაამატეთ nullable ველი; breaking - მხოლოდ ახალ ვერსიაში ('/v2 ') ორმაგი ჩაწერის პერიოდით.

4) ინსტრუმენტაცია: სად და როგორ

4. 1 კლიენტი (ვებ/მობილური/Desktop)

SDK ტელემეტრია ადგილობრივი ბუფერით, batch გაგზავნა, ექსპონენციალური რეკრუტები.
ავტო მოვლენები: ვიზიტები, კლიშეები, ბლოკების ხილვადობა, ვებ - ვიტალები (TTFB, LCP, CLS), JS შეცდომები.
იდენტიფიკატორები: 'Device _ id' (სტაბილური, მაგრამ პირადი), 'session _ id' (განახლებულია), 'user. pseudo_id`.
„ხმაურისგან“ დაცვა: dedup 'event _ id', trottling, client-side sampling.

4. 2 სერვერი/ზურგჩანთა

OpenTelemetry (OpenTlemetry) - აფეთქების ღუმელის მინანქარი.
'Trace _ id' სავალდებულო გადინება edge/gateway- დან ყველა downstream სერვისებში.
Outbox შაბლონი დომენის მოვლენების გარიგების გამოქვეყნებისთვის.

4. 3 პროვაიდერები/მესამე მხარეები

კონექტორები (PSP/KYC/სტუდია) მასპინძელი სქემების ნორმალიზაციით; ოფიციალური გადამყვანები.
Payload- ის მთლიანობის ხელმოწერა/შემოწმება, პერიმეტრის ჟურნალისტიკა (ingest audit).

5) OpenTelemetry (OTel)

ბილიკები: თითოეული მოთხოვნა იღებს 'trace _ id'; ჩვენ ვუკავშირებთ ლოგებს/მოვლენებს 'trace _ id '/' spank _ id' საშუალებით.
ლოგიკა: გამოიყენეთ OTel Logs/გადამყვანი; საშუალო სამსახურის ეტიკეტები. name`, `deployment. env`.
მეტრიკა: RPS/latence/error-rate სერვისები, ბიზნეს მეტრიკა (GGR, კონვერტაცია).
კოლექტორი: ერთი მისაღები წერტილი/ბუფერი/ექსპორტი კაფკაში/HTTP/გრაფიკში. დასტის.

6) იდენტიფიკატორები და კორელაცია

'event _ id' არის უნიკალურობა და იდემპოტენტობა.
`user. pseudo _ id '- სტაბილური ფსევდონიმი (ცალკე და შეზღუდული).
'session _ id', 'request _ id', 'trace _ id', 'device _ id' სავალდებულოა დასრულების ანალიზისთვის.
ID- ის კოორდინაცია API კარიბჭის და SDK- ის დონეზე.

7) სემპლაცია და მოცულობის კონტროლი

წესები: per-event ტიპი, per-barket, დინამიური (ადაპტირებული) დატვირთვით.
ზუსტად გადაღებული მოვლენები: გადახდა/შესაბამისობა/ინციდენტები - არ არის შერწყმული.
ანალიტიკური მოვლენები: დასაშვებია 10-50% -იანი მაკორექტირებელი წონა ფანჯრებში.
Server side side downsampling: მაგალითად, მაღალი ფრენის მეტრიკისთვის.

8) კონფიდენციალურობა და შესაბამისობა

მინიმუმამდე დაიყვანეთ PII: შეამოწმეთ PAN/IBAN/email; IP - გეო კოდი/ASN ingest.
რეგიონალიზაცია: გაგზავნეთ რეგიონალურ ინგესტის ენდოინტებში (EEA/UK/BR).
DSAR/RTBF: პროექციების შერჩევითი დამალვის მხარდაჭერა; იურიდიული ოპერაციების ჟურნალი.
შენახვის პოლიტიკა: ტიპის ვადები (ანალიტიკა უფრო მოკლეა, მარეგულირებელი უფრო გრძელია); Legal Hold.

9) ტრანსპორტი და ბუფერიზაცია

კლიენტი Edge: HTTPS (HTTP/2/3), 'POST/telemetry/batch' (100-მდე მოვლენა).
Edge - Shina: Kafka/Redpanda 'user- ით. pseudo_id`/`tenant_id`.
ფორმატები: JSON (ingest), Avro/Protobuf (ავტობუსში), Parquet (ტბაში).
საიმედოობა: retrais ერთად jitter, DLQ, poison-pill იზოლაცია.

Batch სპეციფიკაცია (გამარტივებული):
json
{
"sdk": {"name":"igsdk-js","version":"2. 7. 1"},
"sent_at": "2025-11-01T18:45:12. 500Z",
"events": [ {... }, {... } ]
}

10) საიმედოობა და იდემპოტენტურობა

Client-generated 'event _ id' + სერვერის დედაპლატი '(event _ id, წყარო)'.
Outbox სერვისებზე, Exactly-Once სემანტიკა ნაკადში (keyed state + dedupe).
შეკვეთა კლავიშში: განაწილება 'user/session'.
დროის კონტროლი: NTP/PTP, დასაშვები დრიფტი (მაგალითად, 200 ms), 'received _ at' სერვერზე.

11) ტელემეტრიული ხარისხი (TQ) და SLO

Completeness: ≥ 99. კრიტიკული ტიპების მოვლენების 5% T- სთვის.
Freshness: p95 მიწოდების შეფერხება Silver-15..
Correctness: მოქმედი სქემები 99. 9%, drop-rate < 0. 1%.
Trace coverage: მოთხოვნების წილი 'trace _ id' 98% -ით.
Cost/GB: მიზნობრივი ბიუჯეტი ინგესტის/შენახვის დომენებისთვის.

12) დაკვირვება და დაშბორდები

მინიმალური ვიჯეტები:
  • Lag ingest (p50/p95) წყაროების და რეგიონების მიხედვით.
  • კომპლექსი მოვლენების ტიპებსა და ბაზრებზე.
  • მიკროსქემის/კონფიგურაციის შეცდომები.
  • SDK ვერსიების რუკა და მოძველებული მომხმარებლების პროცენტი.
  • ვებ - ვიტალების კორელაცია - კონვერტაცია/უკმარისობა.

13) კლიენტის SDK: მოთხოვნები

მსუბუქი footprint, ოფლაინ-ბუფერი, შეფერხებული ინიციალიზაცია.
პარამეტრები: sampling, max batch size, max queue age, კერძო მოდის (no-PII).
დაცვა: პაკეტის ხელმოწერა/anti-tamper, ღილაკების შეფუთვა.
განახლება: feature დროშები ხმაურიანი მოვლენების გამორთვისთვის.

14) Edge ფენა და დაცვა

Rate limit, WAF, schema ვალიდაცია, კომპრესია (gzip/br).
ტოკენის ბუკეტი კლიენტისთვის; anti replay ('request _ id', TTL).
IP და UA- ს ამოღება არის ნორმალიზაცია/გამდიდრება „ნედლი“ პაილოდის გარეთ.

15) ინტეგრაცია კონვეიერთან

Bronze: შეუქცევად-დამატებული ნედლეული payload (საყრდენისთვის).
ვერცხლი: ნორმალიზებული ცხრილი ბაბუის/გამდიდრებით.
ოქროს: ფანჯრები BI/AML/RG/პროდუქტისთვის.
ლინგინგი მოვლენებსა და მოხსენებებს შორის; ტრანსფორმაციების ვერსიები.

16) კლიენტის ხარისხის ანალიტიკა

„მშვიდი მომხმარებლების“ კოეფიციენტი (არ არსებობს მოვლენები N საათში).
„ქარიშხლის“ ანომალიები.
„მოძველებული SDK- ის“ წილი ვერსიებისა და პლატფორმების მიხედვით.

17) პროცესები და RACI

R: Data Platform (ingest/საბურავი/მიმღები), App Teams (SDK ინსტრუმენტაცია).
A: Head of Data/Architecture.
C: Compliance/DPO (PII/retention), SRE (SLO/ინციდენტები).
I: BI/მარკეტინგი/რისკი/პროდუქტი.

18) გზის განხორციელების რუკა

MVP (2-4 კვირა):

1. V1 + JSON სქემების მოვლენების ტაქსონომია 6-8 ტიპისთვის.

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

3. Kafka + Bronze ფენა; ძირითადი ვალიდატორები და დედაპლატი.

4. Dashboard ingest lag/completeness, alertes drop/completator.

ეტაპი 2 (4-8 კვირა):
  • OTel Collector, სავაჭრო კორელაცია; ვერცხლის ნორმალიზაცია და DQ წესები.
  • რეგიონალური ენდოინები (EEA/UK), კერძო მოდის, DSAR/RTBF პროცედურები.
  • SDK ვერსიების რუკა, რგოლების განახლებები.
ეტაპი 3 (8-12 კვირა):
  • Exactly-Once ნაკადებში, Feature Store, ანტიფროგრამის ონლაინ ფიდები.
  • Rule-as-Code სქემებისა და მოვალეობებისთვის, ცვლილებების სიმულაციისთვის (impact analysis).
  • ღირებულების ოპტიმიზაცია: adaptive sampling, Z-order/კლასტერიზაცია ტბაში.

19) ხარისხის ჩეკის სია გამოშვებამდე

  • შევსებულია სქემის სავალდებულო ველები და სწორი ტიპები.
  • არის 'trace _ id '/' request _ id '/' session _ id'.
  • SDK მხარს უჭერს batch, retry, sampling.
  • Edge უხელმძღვანელებს სქემას და ზღუდავს payload- ის ზომას.
  • ჩართულია ფილტრების კონფიდენციალურობა და მგრძნობიარე ველების ტოქსიკაცია.
  • SLO/alerty და dashbords მორგებულია.
  • დოკუმენტაცია დომენებისთვის (მოვლენის მაგალითი, owner, SLA).

20) ხშირი შეცდომები და როგორ მოვერიდოთ მათ

ნედლეული მოვლენები სქემების გარეშე: შეიყვანეთ რეგისტრი და CI სავალდებულო.
არ არსებობს idempotention: მოითხოვეთ 'event _ id' და შეინახეთ ბაბუის ფანჯრები.
PII ნაზავი და ანალიტიკოსები: გამოყავით მაპინგები, შეავსეთ ველები.
ტრეიზინგის ნაკლებობა: განათავსეთ 'trace _ id' gateway სერვისების საშუალებით.
უკონტროლო მოცულობა: გამოიყენეთ sampling/trottling და budget კვოტები.
გლობალური endpoint რეგიონების გარეშე: გამოიყენეთ რეგიონალიზაცია და მონაცემთა აღდგენა.

21) გლოსარიუმი (მოკლედ)

OpenTelemetry (OTel) არის ღია სტანდარტი ტრეისების/მეტრიკის/ლოგებისთვის.
Outbox არის დომენის მოვლენების გარიგების გამოქვეყნება.
DLQ არის „გატეხილი“ შეტყობინებების რიგი.
Sampling - ღონისძიებების ნაწილის შერჩევა მოცულობის შესამცირებლად.
მონაცემთა აღდგენა - მონაცემთა შენახვა სასურველ იურისდიქციაში.

22) შედეგი

კარგად შემუშავებული ტელემეტრია არის შეთანხმებები და არა მხოლოდ „ლოგოების გაგზავნა“: მკაცრი სქემები, შეთანხმებული იდენტიფიკატორები, ნაგულისხმევი კონფიდენციალურობა, საიმედო ტრანსპორტი, დაკვირვება და ეკონომიკური ღირებულება. ამ სტატიის შემდეგ, თქვენ მიიღებთ მოვლენების სტაბილურ ნაკადს, რომელიც მზად არის ანალიტიკისთვის, შესაბამისობისა და მანქანების სწავლებისთვის პროგნოზირებადი SLO.

Contact

დაგვიკავშირდით

დაგვიკავშირდით ნებისმიერი კითხვის ან მხარდაჭერისთვის.ჩვენ ყოველთვის მზად ვართ დაგეხმაროთ!

ინტეგრაციის დაწყება

Email — სავალდებულოა. Telegram ან WhatsApp — სურვილისამებრ.

თქვენი სახელი არასავალდებულო
Email არასავალდებულო
თემა არასავალდებულო
შეტყობინება არასავალდებულო
Telegram არასავალდებულო
@
თუ მიუთითებთ Telegram-ს — ვუპასუხებთ იქაც, დამატებით Email-ზე.
WhatsApp არასავალდებულო
ფორმატი: ქვეყნის კოდი და ნომერი (მაგალითად, +995XXXXXXXXX).

ღილაკზე დაჭერით თქვენ ეთანხმებით თქვენი მონაცემების დამუშავებას.