Gözegçilik we giriş
1) Näme üçin iGaming-de möhüm?
Hakyky wagtda pul: goýumlary kabul etmek, derrew tölegler, nyrhlary we ýeňişleri hasaplamak, ýaryşlar - hemme zat gijikdirmelere we şowsuzlyklara duýgur.
Düzgünleşdiriji we audit: hereketleriň doly yzarlanylmagy talap edilýär (KYC/AML, tölegler, jogapkär oýnuň çäkleri).
Çylşyrymly paýlanan arhitektura: API-şlýuzlar, tölegleriň orkestrasiýasy, EDA/Kafka, üpjün edijileriň hyzmatlary, ykjam müşderiler, frontlar, BI-şina.
Maksat: MTTD/MTTR azaltmak, altyn signallar boýunça SLO saklamak we hadysalaryň forensikasyny üpjün etmek.
2) Gözegçilik etmegiň esasy düşünjeleri
Loglar: derňewler we audit üçin amatly jikme-jik wakalar (JSON tarapyndan gurnalan).
Metrikler: wagtynda agregatlar (TSDB), SLO/alertler üçin amatly.
Söwdalar: hyzmatlaryň/dellallaryň/DB-leriň üsti bilen sebäpler-netijeler zynjyry (trace/span).
Wakalar: domen wakalary (BetPlaced, DepositApproved) - iş metrikleri bilen tehnikanyň arasyndaky köpri.
3) "Altyn signallar" we iGaming üçin SLI/SLO
Latency: Möhüm akymlar boýunça P95/P99 (awtorizasiýa, goýum, stawka, sessiýanyň başlangyjy, spin).
Traffic: API boýunça RPS, tölegler boýunça TPS, wakalar boýunça EPS.
Errors: 5xx/4xx, decline-rate, failed-withdrawals paýy, üpjün edijileriň ýalňyşlyklary.
Saturation: CPU, memory, IO, Kafka lag, DB connections, thread-pools.
- SLI: `1 - (failed_payments / total_payments)`
- SLO: 99. 30 günde kartlaryň üstünlikli ygtyýarlylandyrylmagynyň 7% -i (error budget 0. 3%).
4) Ýygnamak we gaýtadan işlemek arhitekturasy
1. Injest: agentler (OTel Collector/Fluent Bit), programmada SDK, RUM/sintetika.
2. Marşrut: broker/telemetriýa tekeri (OTLP/HTTP/GRPC), süzgüçler we PII gizlemek.
- Metrikler: TSDB (agregasiýalar, downsampling).
- Logs: hot (indekslenýän )/warm (az indekslenýän )/cold (obýekt ammary, WORM).
- Söwda: wagt-indexed storage we tail-sampling.
- 4. Analitika/alertler: Düzgünler (PromQL/LogQL/SQL), söwda we goýberilişler bilen baglanyşyk.
- 5. Daşbordlar: tehniki + işewürlik görnüşleri (tölegler, RNG/üpjün edijiler, ýaryş hereketlendirijisi).
5) Log standartı (JSON) we wakalaryň taksonomiýasy
JSON-loging, birmeňzeş açarlar we derejeler maslahat berilýär.
Уровни: `DEBUG < INFO < NOTICE < WARN < ERROR < FATAL < AUDIT`
Таксономия: `auth.`, `payment.`, `gameplay.`, `risk.`, `psp.`, `kyc.`, `rg.` (responsible gaming), `ops.`.
JSON-wakanyň mysaly (AUDIT/PII-safe):json
{
"ts": "2025-11-04T19:45:31. 842Z",
"lvl": "AUDIT",
"event_type": "payment. deposit_approved",
"correlation_id": "c-7d2c1f0b",
"trace_id": "2d6a9c0e4c0b1f72",
"span_id": "9f3a81d2a1c3b764",
"request_id": "r-8f12de9e",
"tenant": "brand_eu",
"psp": "acq_xyz",
"user_id_hash": "u:sha256:1e63…",
"device_id": "d-3c8f…",
"ip_trunc": "203. 0. 113. 0/24",
"amount_minor": 5000,
"currency": "EUR",
"result": "approved",
"latency_ms": 312,
"tags": ["pci_safe", "kyc_passed", "low_risk"],
"extra": {
"bin": "411111",
"method": "card",
"region": "EU",
"ab_test": "checkout_v2"
}
}
PII/PCI-howpsuzlyk düzgünleri:
- PAN/BIN-i gizleýäris (diňe syýasat boýunça rugsat berilýän meýdanlary saklaýarys), email/telefon - hash/token.
- IP kesmek/24, GeoIP aýratyn saklamak.
- Ulanyjy girişi üçin 'extra' -da mugt teksti sanitizsiz gadagan edýäris.
6) Baglanyşyk: trace_id, correlation_id, idempotency_key
Her bir log we metrika 'trace _ id' (OTelden), 'span _ id', 'correlation _ id' (iş prosesi üçin ýüzbe-ýüz), 'idempotency _ key' (töleg soraglary üçin) goşuň.
Kesmek üçin baggage (tenant/brand, market, A/B-wariant) geçiriň.
7) Metrikler: tehniki we işewürlik
Tehniki: RPS, p95 latency, error rate, saturation, GC, pool usage, Kafka consumer lag.
Iş: CR hasaba alyş → goýum, üstünlikli ygtyýarnamalar, tölegleri ýatyrmak, NGR/GGR, ARPPU, RTP anomaliýalary, KYC ädiminde drop-off, jogapkär çäkleriň paýy.
promql sum(rate(http_requests_total{status=~"5.."}[5m]))
/
sum(rate(http_requests_total[5m]))
8) Treýsing we OpenTelemetry
Geýtweýi, töleg orkestratoryny, oýun ýadrosyny, habarnamalary, KYC/AML, üpjün edijiler bilen integrasiýany gurallaýarys.
Umumy akym üçin head-sampling + ýalňyşlyklar/gizlin spanlar we tölegler üçin tail-sampling (ýokary).
Kontekst propagandasy: 'traceparent '/' tracestate', Kafka headers, gRPC metadata.
Spany 'BetPlaced', 'WithdrawalRequested' domen wakalary bilen düşündirýäris.
9) Sessiz alerting
Köp basgançakly bosagalar (warning/critical), flappingiň basylmagy, de-duplikasiýa, wagt boşluklary.
Baglanyşyk: "Ösüş 5xx" + "Kafka lag" + "p95 latency PSP" → bir hadysany baglanyşdyrýarys.
SLO-based alerty: harçlaýarys error-budget - eskalirýäris.
Alerts-as-Code (GitOps), review we düzgünler synaglary.
yaml groups:
- name: payments rules:
- alert: PaymentErrorSpike expr: (sum(rate(payment_errors_total[5m])) / sum(rate(payment_attempts_total[5m]))) > 0. 02 for: 10m labels: { severity: "critical", team: "payments" }
annotations:
summary: "Payment errors> 2% per 10m"
runbook: "runbooks/payments/error-spike. md"
10) Loglary gözlemek (LogQL mysaly)
logql
{app="psp-orchestrator", level=~"ERROR FATAL"}
= "decline"
json amount_minor > 10000 region="EU"
Maksat - sesleri çalt aýyrmak we maksatly sebitde "gymmat" şowsuzlyklary bellemek.
11) Daşbordlar: hökmany zat
"Payments Health": PSP boýunça üstünlik/şowsuzlyklar, latency usuly, sebitleriň kartasy, üpjün edijileriň SLA.
Game Core: Üpjün edijiler boýunça RPS, p95 arka, error ratio SDK, RTP slotlary boýunça anomaliýalar.
Player Journey: hasaba alyş → KUS → goýum → oýun → çykyş (öwrülişik hunisi, ädimleriň arasyndaky wagt).
Infra: Kafka lag, DB connections, cache hit ratio, Kubernetes klasteri.
12) Saklamak, retensiýa we bahasy (FinOps)
Gözegçilik astynda kardinallyk: ýokary üýtgeýän bellikler bilen metriklerden gaça durmak (user_id).
Retensiýa: metrikler hot 30-90 gün, downsampling 13 aýa çenli; logi hot 7-14 gün, warm 30-90 gün, cold 1-3 ýyl (düzgünleşdirijini göz öňünde tutup).
Audit-bloglar üçin WORM/immutability, Object Lock.
Gysmak/partiýa ýerleşdirmek we ILM syýasaty; audit/PII-safe üçin aýratyn indeksler.
INFO/DEBUG-da log sampling; ERROR/AUDIT - doly.
13) Howpsuzlyk we gabat gelmek
PII/PCI: tokenizasiýa, kesmek, gizlemek; maglumatlary azaltmak.
RBAC/ABAC: loglara/treýslere girmek - rollar boýunça, tentleri bölmek.
Syrlar we açarlar: credentials/tokenleri goldamaň; CI-de gizlin detektorlar.
Audit-trail: administrasiýa girelgeleri, çäklendirmeleriň/tölegleriň üýtgemegi, balansyň el bilen düzedilmegi - diňe AUDIT-indeksinde, üýtgemez.
Legal-hold: derňew wagtynda retensiýany doňdurmagyň mehanizmi.
14) Telemetriýa maglumatlarynyň hili
Loglar/wakalar üçin Schema Registry (wersiýalaşdyrmak, gabat gelmek).
Meýdanlaryň ýeke-täk nomenklaturasy (snake_case, ölçeg birlikleri).
Injestde tassyklama (hapa wakalaryň dargamagy, nika hakda metrika).
Backpressure we "gämi tupanlaryndan" gorag.
15) SRE prosesleri, onkoll we runbook
Onkoll-matrisa we eskalasiýa; Quiet Hours we rotasiýa.
Runbook alertlere baglanýar (diagnostika ädimleri, SQL/LogQL reseptleri, zaýalanmak üçin ficheflaglar).
Postmortem jezasyz, action items eýeleri we möhletleri bilen.
Toparyň görkezijileri: MTTD/MTTR, şowhunly alertleriň göterimi, runbuklar bilen örtülendir.
16) RUM we sintetika
RUM: WebVitals (LCP, CLS, INP), öň hatalary, enjam yzlary, sebitler/üpjün edijiler.
Sintetika: dürli sebitlerden "hasaba durmak → goýum → yzyna almak" ssenarileri; içerki ýollar üçin hususy ýerler (administrator/bek-ofis).
17) Relizleriň, synaglaryň we fiçeflaglaryň tejribesi
Relizleriň wersiýalary (commit/artefact).
Baggage → daşborddaky A/B bellikleri "synagyň SLI-e täsiri".
Canary/Blue-Green: kanarlar üçin aýratyn paneller, error-budget burn rate.
18) Anomaliýalary we frodlara garşy signallary ýüze çykarmak
decline-rate/chargeback-risk/täze kartoçkalarda statistik triggerler (seasonality-aware).
Baglanyşyklar: "şowsuz goýumlaryň ösüşi + PSP-adapteriň täze çykyşy".
Akym düzgünleri (Kafka → Flink) near-real-time reaksiýalary üçin.
19) Durmuşa geçirmegiň ýol kartasy (tapgyrlar boýunça)
0-njy etap - Bazis: JSON-loglar, bitewi korelýasiýa meýdanlary, hyzmatlaryň esasy metrikleri, umumy daşbordlar, ilkinji alertler.
1-nji etap - Söwda: OTel gurallary, head + tail sampling, bloglar bilen baglanyşyk.
2-nji etap - Biznes-SLI/SLO: tölegler/netijeler/oýun metrikleri, SLO-alertler, error-budget prosesleri.
3-nji etap - Kämillik: Alerts-as-Code, ILM, aýry-aýry retensiýalar, anomaliýa-detekt, Runbook per-hyzmaty, CI/CD-de SRE-amallar.
20) Rebyu üçin çek-sanawy
- Diňe JSON, ýekeje açar, PII gizlemek.
- Her bir hadysada: 'trace _ id', 'span _ id', 'correlation _ id', 'tenant'.
- Metrikler altyn signallary we iş akymlaryny öz içine alýar.
- SLO beýan edildi, burn rate-de error-budget we alertler bar.
- Töleg ýalňyşlyklary we ýokary gizlinlikler üçin Tail-sampling goşulýar.
- ILM/Retensions we WORM audit bloglary üçin sazlanýar.
- RBAC telemetriýa, giriş barlagy.
- Payments/Game Core/Player Journey/Infra boýunça daşbordlar.
- Runbook her bir möhüm alert bilen baglanyşykly.
- Postmortemalar we action items - eýeleri bilen bellikde.
A programmasy: OpenTelemetry atributlary (maslahat)
`service. name`, `service. version`, `deployment. environment`
`cloud. region`, `k8s. pod. name`, `k8s. container. name`
`tenant`, `brand`, `market`, `ab_test`, `user_segment`
`payment. method`, `psp`, `game. provider`, `game. id`
B goşundysy: SLO üçin metrik mysallar
`payment_success_ratio`, `withdrawal_ttw_p95` (time-to-wallet), `psp_latency_p99`
`game_spin_latency_p95`, `provider_error_rate`, `kafka_consumer_lag`
`auth_success_ratio`, `kyc_step_dropout`, `cache_hit_ratio`
C goşundysy: derňewiň çalt reseptleri
"Ösýär 'payment _ error _ rate' → PSP/sebit/usul boýunça deňeşdirmek, tail-treysleri barlamak, adapteriň goýberilişini görmek.
"p99 spins ↑" → trasirovki front → geýtweý → provayder, provayderi/kanallary, thread-howuzlaryň çäklerini, tor retraýlaryny barlamak.
"Kafka lag ↑" → konsumerleriň saglygy, prodýuserleriň retralary, backpressure, haýal sinks/DB.