Telemetriýa we wakalary ýygnamak
1) Bellenilmegi we ýörelgeleri
Maksatlar:- Analitika, antifrod, RG, laýyklyk we ML üçin wakalaryň ýeke-täk we öňünden aýdyp boljak akymy.
- Yzarlamak (user/session/request/trace) we köpeltmek.
- PII-ni minimallaşdyrmak we gizlinlik talaplaryna laýyk gelmek.
Принципы: schema-first, privacy-by-design, idempotency-by-default, observability-by-default, cost-aware.
2) Wakalaryň taksonomiýasy
Töleg: 'payment. deposit`, `payment. withdrawal`, `payment. chargeback`.
Oýun: 'game. session_start/stop`, `game. bet`, `game. payout`, `bonus. applied`.
Ulanyjy: 'auth. login`, `profile. update`, `kyc. status_changed`, `rg. limit_set`.
Operasiýa: 'api. request`, `error. exception`, `release. deploy`, `feature. flag_changed`.
Utgaşma: 'aml. alert_opened`, `sanctions. screened`, `dsar. requested`.
Her görnüşiň eýesi (domain owner), shemasy we SLO täzeligi bar.
3) Shemalar we şertnamalar
Hökmany meýdanlar:- `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"}
}
Shemalaryň ewolýusiýasy: semantik wersiýalar; backward-compatible - nullable meýdanlary goşýarys; breaking - diňe goşa ýazgy döwri bilen täze wersiýada ('/v2 ').
4) Instrumentasiýa: nirede we nädip
4. 1 Müşderi (Web/Mobile/Desktop)
Ýerli buferli SDK telemetriýa, batch-iberiş, eksponensial retralar.
Awto-wakalar: saparlar, basmalar, bloklaryň görünmegi, web-witals (TTFB, LCP, CLS), JS ýalňyşlyklary.
Identifikatorlary: 'device _ id' (durnukly, ýöne şahsy), 'session _ id' (täzelenýär), 'user. pseudo_id`.
"Seslerden" gorag: 'event _ id', trottling, client-side sampling.
4. 2 Serwer/bölek
Logger/traiser örtükleri (OpenTelemetry) → domen hadysalarynyň emiti.
edge/gateway-den 'trace _ id' -ni ähli downstream hyzmatlaryna geçirmek hökmanydyr.
Domen wakalaryny geçirmek üçin Outbox-pattern.
4. 3 Üpjün edijiler/üçünji taraplar
Konnektorlar (PSP/KYC/studiýalar) host shemalaryna kadalaşýar; wersiýa adapterleri.
Gol/payload bitewiligini barlamak, perimetriň žurnalizmi (ingest audit).
5) OpenTelemetry (OTel)
Söwda: Her haýyş 'trace _ id' alýar; logleri/wakalary 'trace _ id '/' span _ id' arkaly baglanyşdyrýarys.
Logs: OTel Logs/öwrüjileri ulanýarys; 'service gurşawynyň bellikleri. name`, `deployment. env`.
Metrikler: RPS/latency/error-rate boýunça hyzmatlar, iş metrikleri (GGR, öwrülişik).
Collector: Kabul ediş nokady/bufer/Kafka eksport/HTTP/grafik. stek.
6) Kesgitleýjiler we korrelýasiýa
'event _ id' - özboluşlylyk we idempotentlik.
`user. pseudo_id' - durnukly lakamlaşdyrma (aýratyn we çäkli).
'session _ id', 'request _ id', 'trace _ id', 'device _ id' - ahyrky derňew üçin hökmanydyr.
API-şlýuz we SDK derejesinde ID utgaşdyrylmagy.
7) Semplemek we göwrümine gözegçilik etmek
Düzgünler: per-event-type, per-market, ýük boýunça dinamiki (uýgunlaşdyryjy).
Takyk alnan wakalar: töleg/komplayens/hadysalar - tölenmeýär.
Analitik wakalar: penjirelerde düzediş agramlary bilen 10-50% ýol berilýär.
Server-side downsampling: high-frequency metrik üçin mysal üçin.
8) Gizlinlik we gabat gelmek
PII-ni minimallaşdyryň: PAN/IBAN/e-poçtany belläň; IP → geo-kodlar/ASN ingest.
Sebitleşdirmek: sebitleýin ingest-endpointlere (EEA/UK/BR) iberiň.
DSAR/RTBF: proýeksiýalaryň saýlanyp gizlenmegini goldamak; hukuk amallarynyň žurnaly.
Saklamak syýasaty: görnüşi boýunça möhletler (analitika gysga, düzgünleşdiriji has uzyn); Legal Hold.
9) Ulag we buferizasiýa
Müşderi → Edge: HTTPS (HTTP/2/3), 'POST/telemetry/batch' (100 çärä çenli).
Edge → Şina: Kafka/Redpanda. pseudo_id`/`tenant_id`.
Formatlar: JSON (ingest), Euro/Protobuf (tekerde), Parquet (lake).
Ygtybarlylyk: jitter, DLQ, poison-pill izolýasiýa bilen retraýalar.
json
{
"sdk": {"name":"igsdk-js","version":"2. 7. 1"},
"sent_at": "2025-11-01T18:45:12. 500Z",
"events": [ {... }, {... } ]
}
10) Ygtybarlylyk we idempotentlik
Client-generated 'event _ id' + serwer dedup '(event_id, source)'.
Hyzmatlarda Outbox, akymlarda Exactly-Once semantika (keyed state + dedupe).
Açaryň çägindäki tertip: 'user/session' boýunça partiýa ýerleşdirmek.
Wagt gözegçiligi: NTP/PTP, rugsat edilýän süýşme (mysal üçin ≤ 200 ms), serwerde 'received _ at'.
11) Telemetriýanyň hili (TQ) we SLO
Completeness: ≥ 99. T. üçin möhüm wakalaryň 5% -i.
Freshness: p95 Silver-a eltmegiň gijikdirilmegi ≤ 15 minut.
Correctness: tassyklanan shemalar ≥ 99. 9%, drop-rate < 0. 1%.
Trace coverage: 'trace _ id' -den soraglaryň paýy 98% ≥.
Cost/GB: domen boýunça ingest/saklamak üçin maksatly býudjet.
12) Gözegçilik etmek we daşbordlar
Iň az widget:- Lag ingest (p50/p95) çeşmeler we sebitler boýunça.
- Wakalaryň we bazarlaryň görnüşleri boýunça Completeness.
- Shemalary tassyklamakda ýalňyşlyklar/oversized-payloads.
- SDK wersiýalarynyň kartoçkasy we köne müşderileriň göterimi.
- Web-vitals öwrülişik/şowsuzlyklar.
13) Müşderi SDK: talaplar
Ýeňil footprint, awtonom bufer, gijikdirilen başlangyç.
Sazlamalar: sampling, max batch size, max queue age, privacy-modes (no-PII).
Gorag: paket/anti-tamper goly, açar gaplamasy.
Täzelenmek: şowhunly wakalary öçürmek üçin feature-baýdaklar.
14) Kenar gatlagy we gorag
Rate limit, WAF, schema validation, gysyş (gzip/br).
Müşderä token bucket; anti-replay ('request _ id', TTL).
IP we UA aýyrmak → "çig" tölegden daşarda kadalaşdyrmak/baýlaşdyrmak.
15) Maglumatlaryň konweýeri bilen integrasiýa
Bronze: yzyna gaýtaryp bolmajak-goşmaça çig payload (forensika üçin).
Silver: deadup/baýlaşdyryş bilen kadalaşdyrylan tablisalar.
Altyn: BI/AML/RG/önüm üçin penjireler.
Wakalaryň we hasabatlaryň arasyndaky linej; transformasiýa wersiýasy.
16) Müşderiniň hiliniň seljermesi
"Sessiz müşderileriň" koeffisiýenti (N sagat üçin waka ýok).
"Tupan" anomaliýalary (mass duplicate/burst).
Wersiýalar we platformalar boýunça "köne SDK" paýy.
17) Amallar we RACI
R: Data Platform (ingest/teker/tassyklaýjylar), App Teams (SDK gurallary).
A: Head of Data/Architecture.
C: Compliance/DPO (PII/retention), SRE (SLO/hadysalar).
I: BI/Marketing/Töwekgelçilik/Önüm.
18) Durmuşa geçirmegiň ýol kartasy
MVP (2-4 hepde):1. 6-8 görnüşli wakalaryň taksonomiýasy v1 + JSON-shemalar.
2. SDK (Web/Android/iOS) с batch и sampling; Edge `/telemetry/batch`.
3. Kafka + Bronze gatlagy; esasy walidatorlar we dedup.
4. Daşbord ingest lag/completeness, drop/walidator üçin alertler.
2-nji faza (4-8 hepde):- OTel Collector, söwda-baglanyşyk; Kümüş kadalaşma we DQ düzgünleri.
- Sebitleýin endpointler (EEA/UK), privacy-modalar, DSAR/RTBF amallary.
- SDK wersiýalarynyň kartoçkasy, halkalar boýunça awto-rollout täzelenmeleri.
- Akymlar boýunça "Exactly-Once", "Feature Store Connection", "Anti-frod Online".
- Shemalar we tassyklaýjylar, üýtgeşmeler simulýasiýasy (impact analysis) üçin Rule-as-Code.
- Gymmaty optimizirlemek: adaptive sampling, Z-order/lake klaster.
19) Goýberilmezden öň hiliň çek-sanawy
- Shemanyň hökmany meýdanlary we dogry görnüşleri dolduryldy.
- 'trace _ id '/' request _ id '/' session _ id' bar.
- SDK batch, retry, sampling.
- Edge shema tassyklaýar we töleg mukdaryny çäklendirýär.
- Gizlinlik-süzgüçler we duýgur meýdanlaryň bellikleri girizildi.
- SLO/alertler we daşbordlar sazlandy.
- Domenler üçin resminamalar (wakanyň mysaly, owner, SLA).
20) Ýygy-ýygydan ýalňyşlyklar we olardan nädip gaça durmaly
Çig wakalar: registry we CI-tassyklamany giriziň.
Idempotentlik ýok: 'event _ id' -ni talap ediň we atamyň penjirelerini saklaň.
PII we analitikleriň garyşmagy: mappingleri aýyryň, meýdanlary gizläň.
Traýsingiň ýoklugy: 'trace _ id' gateway → hyzmatlar → wakalar arkaly goýuň.
Dolandyrylmadyk göwrümler: sampling/trrottling we budget-kwotalary ulanyň.
Sebitsiz global endpoint: sebitleşdirme we data residency ulanyň.
21) Sözlük (gysgaça)
OpenTelemetry (OTel) - treýs/metrik/loglar üçin açyk standart.
Outbox - domen wakalarynyň geleşik neşiridir.
DLQ - "döwülen" habarlaryň nobaty.
Sampling - göwrümi azaltmak üçin wakalaryň bir bölegini saýlamak.
Data Residency - maglumatlary zerur ýurisdiksiýada saklamak.
22) Jemleýji
Gowy dizaýn edilen telemetriýa diňe bir "loglary ibermek" däl-de, ylalaşykdyr: berk shemalar, ylalaşylan kesgitleýjiler, adaty gizlinlik, ygtybarly ulag, gözegçilik we tygşytly çykdajy. Bu makalany yzarlamak bilen, öňünden aýdylýan SLO bilen analitika, ylalaşyk we maşyn okuwyna taýyn wakalaryň durnukly akymyny alarsyňyz.