GH GambleHub

Телеметрия және оқиғаларды жинау

1) Мақсаты және қағидаттары

Мақсаттары:
  • Талдау, антифрод, RG, комплаенс және ML үшін оқиғалардың бірыңғай және болжамды ағыны.
  • Толассыз трассалау (user/session/request/trace) және жаңғыртылуы.
  • 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`.
Операциялық: 'api. request`, `error. exception`, `release. deploy`, `feature. flag_changed`.
Комплаенс: 'aml. alert_opened`, `sanctions. screened`, `dsar. requested`.

Әрбір түрі иесі (domain owner), сұлбасы және 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 Клиент (Web/Mobile/Desktop)

Жергілікті буфері бар SDK телеметриясы, batch-жөнелту, экспоненциалды ретралар.
Авто-оқиғалар: сапарлар, басу, блоктардың көрінуі, web-vitals (TTFB, LCP, CLS), JS қателері.
Идентификаторлар: 'device _ id' (тұрақты, бірақ жеке), 'session _ id' (жаңартылуда), 'user. pseudo_id`.
«Шудан» қорғау: дедуп бойынша 'event _ id', троттлинг, client-side sampling.

4. 2 Сервер/Бэкенд

Логгер/трэйсердің орамдары (OpenTelemetry) → домендік оқиғалардың эмиті.
'trace _ id' дегенді edge/gateway бағдарламасынан барлық downstream сервистеріне міндетті түрде лақтыру.
Домендік оқиғаларды транзакциялық жариялау үшін Outbox үлгісі.

4. 3 Провайдерлер/үшінші тараптар

Хост-схемаларға қалыпқа келтірілген коннекторлар (PSP/KYC/студиялар); нұсқалық адаптерлер.
Қолы/payload тұтастығын тексеру, периметрдің журнализмі (ingest audit).

5) OpenTelemetry (OTel)

Трестер: әрбір сұрау 'trace _ id'; 'trace _ id '/' span _ id' арқылы логтарды/оқиғаларды байланыстырамыз.
Логи: OTel Logs/түрлендіргіштерін пайдаланыңыз; 'service. name`, `deployment. env`.
Метриктер: Сервистер бойынша RPS/latency/error-rate, бизнес-метриктер (GGR, конверсия).
Collector: бірыңғай қабылдау нүктесі/буфер/экспорт Кафка/HTTP/график. стек.

6) Сәйкестендіргіштер және корреляция

'event _ id' - бірегейлік және теңсіздік.
`user. pseudo_id' - тұрақты бүркеншік атау (маппинг жеке және шектеулі).
'session _ id', 'request _ id', 'trace _ id', 'device _ id' - аралық талдау үшін міндетті.
API-шлюз және SDK деңгейінде ID келісімділігі.

7) Тұқымдау және көлемді бақылау

Ережелер: per-event-type, per-market, динамикалық (бейімделетін) жүктеме бойынша.
Нақты алынған оқиғалар: төлем/комплаенс/инциденттер - тұқымдастырылмайды.
Талдамалық оқиғалар: витриналардағы түзетуші таразылармен 10-50% рұқсат етіледі.
Server-side downsampling: мысалы, high-frequency метригі үшін.

8) Құпиялылық және комплаенс

PII-ні азайтыңыз: PAN/IBAN/email; IP → гео-кодтар/ASN кезінде ingest.
Аймақтандыру: аймақтық ingest-эндпоинттарға (EEA/UK/BR) жіберіңіз.
DSAR/RTBF: проекцияларды ішінара жасыруды қолдау; құқықтық операциялар журналы.
Сақтау саясаты: түрі бойынша мерзімдер (талдау қысқа, реттеуші ұзақ); Legal Hold.

9) Көлік және буферлеу

Клиент → Edge: HTTPS (HTTP/2/3), 'POST/telemetry/batch' (100 оқиғаға дейін).
Edge → Шина: Kafka/Redpanda 'user. pseudo_id`/`tenant_id`.
Форматтар: JSON (ingest), Euro/Protobuf (шинада), Parquet (lake).
Сенімділік: 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, source)'.
Outbox сервистерде, Exactly-Once-ағындардағы семантика (keyed state + dedupe).
Кілт шегіндегі тәртіп: 'user/session' бойынша партиялану.
Уақыт бақылауы: NTP/PTP, рұқсат етілген дрейф (мысалы, ≤ 200 мс), серверде 'received _ at'.

11) Телеметрия сапасы (TQ) және SLO

Completeness: ≥ 99. T. үшін сыни түрдегі оқиғалардың 5%

Freshness: p95 Silver дейін жеткізу кідірісі ≤ 15 мин.
Correctness: валидті схемалар ≥ 99. 9%, drop-rate < 0. 1%.
Trace coverage: 'trace _ id' сұрауларының үлесі 98% ≥.
Cost/GB: нысаналы бюджет ingest/домендер бойынша сақтау.

12) Бақылау және дашбордтар

Ең кіші виджеттер:
  • Көздер мен өңірлер бойынша ingest (p50/p95) лаг.
  • Оқиғалар мен нарықтар түрлері бойынша Completeness.
  • Схемаларды валидациялау қателері/oversized-payloads.
  • SDK нұсқаларының картасы және ескірген клиенттердің пайызы.
  • web-vitals, конверсия/істен шығу.

13) Клиенттік SDK: талаптар

Жеңіл footprint, оффлайн буфер, кейінге қалдырылған инициализация.
Параметрлер: sampling, max batch size, max queue age, privacy-сән (no-PII).
Қорғау: пакеттің/anti-tamper қолтаңбасы, кілттерді қаптау.
Жаңарту: шулы оқиғаларды өшіру үшін feature жалаушалары.

14) Edge қабаты және қорғау

Rate limit, WAF, schema validation, компрессия (gzip/br).
Token bucket клиентке; anti-replay ('request _ id', TTL).
IP және UA → алу «шикі» payload тыс қалыпқа келтіру/байыту.

15) Деректер конвейерімен интеграциялау

Bronze: қайтарымсыз-қосымша шикі payload (форензика үшін).
Silver: дедуп/байытумен қалыпқа келтірілген кестелер.
Gold: BI/AML/RG/өнімге арналған сөрелер.
Оқиғалар мен есептер арасындағы линедж; түрлендіру нұсқалары.

16) Клиент сапасының талдауы

«Тыныш клиенттер» коэффициенті (N сағат үшін оқиға жоқ).
«Дауыл» аномалиялары (mass duplicate/burst).
Нұсқалар мен платформалар бойынша «ескірген 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. 6-8 типке арналған v1 + JSON-схемалар оқиғаларының таксономиясы.

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

3. Kafka + Bronze қабаты; базалық валидаторлар мен дедуп.

4. Дашборд ingest lag/completeness, drop/валидаторға арналған алерттар.

2-фаза (4-8 апта):
  • OTel Collector, трейс-корреляция; Silver-қалыпқа келтіру және DQ-ережелер.
  • Өңірлік эндпоинттер (EEA/UK), privacy-сән, DSAR/RTBF рәсімдері.
  • SDK нұсқаларының картасы, сақина бойынша авто-rollout жаңартулары.
3-фаза (8-12 апта):
  • Exactly-Once ағындарында, Feature Store қосылымдары, антифрод-онлайн фид.
  • Схемалар мен валидаторларға арналған Rule-as-Code, өзгерістерді симуляциялау (impact analysis).
  • Құнын оңтайландыру: adaptive sampling, Z-order/lake кластерлеу.

19) Шығарылым алдындағы сапа чек-парағы

  • Схеманың міндетті өрістері және дұрыс түрлері толтырылды.
  • 'trace _ id '/' request _ id '/' session _ id' бар.
  • SDK batch, retry, sampling қолдайды.
  • Edge схеманы растайды және payload өлшемін шектейді.
  • Құпиялылық-сүзгілер және сезімтал өрістерді токенизациялау қосылған.
  • SLO/алерттер және дашбордтар теңшелген.
  • Домендер құжаттамасы (оқиға мысалы, owner, SLA).

20) Жиі қателер және оларды болдырмау

Схемасыз сырланған оқиғалар: registry және CI валидациясын енгізіңіз.
Сәйкессіздік жоқ: 'event _ id' дегенді талап етіңіз және атасының терезелерін сақтаңыз.
PII араластыру және талдау: маппингтерді бөліп алыңыз, өрістерді бүркемелеңіз.
Трейсингтің жоқтығы: 'trace _ id' gateway → сервистер арқылы → оқиғалар.
Басқарылмайтын көлемдер: sampling/trrottling және budget-квоталарды қолданыңыз.
Аймақсыз жаһандық endpoint: аймақтандыру мен data residency пайдаланыңыз.

21) Глоссарий (қысқаша)

OpenTelemetry (OTel) - трейстер/метриктер/логтар үшін ашық стандарт.
Outbox - домендік оқиғаларды транзакциялық жариялау.
DLQ - «сынған» хабарлардың кезегі.
Sampling - көлемді азайту үшін оқиғаның бір бөлігін таңдау.
Data Residency - деректерді қажетті юрисдикцияда сақтау.

22) Қорытынды

Жақсы жобаланған телеметрия - бұл жай ғана «логтарды жіберу» емес, келісімдер: қатаң схемалар, келісілген сәйкестендіргіштер, әдепкі құпиялылық, сенімді көлік, бақылау және үнемді құн. Осы мақаланы басшылыққа ала отырып, сіз болжамды SLO-мен талдау, комплаенс және машиналық оқытуға дайын оқиғалардың тұрақты ағынын аласыз.

Contact

Бізбен байланысыңыз

Кез келген сұрақ немесе қолдау қажет болса, бізге жазыңыз.Біз әрдайым көмектесуге дайынбыз!

Интеграцияны бастау

Email — міндетті. Telegram немесе WhatsApp — қосымша.

Сіздің атыңыз міндетті емес
Email міндетті емес
Тақырып міндетті емес
Хабарлама міндетті емес
Telegram міндетті емес
@
Егер Telegram-ды көрсетсеңіз — Email-ге қоса, сол жерге де жауап береміз.
WhatsApp міндетті емес
Пішім: +ел коды және номер (мысалы, +7XXXXXXXXXX).

Батырманы басу арқылы деректерді өңдеуге келісім бересіз.