GH GambleHub

Health-check mexanizmlari

1) Nima uchun

Health-checks - kaskadli nosozliklarga qarshi birinchi to’siq: ular tugunlarni rotatsiyadan to’g’ri chiqaradi, retray bo’ronlarining oldini oladi, degradatsiyani soddalashtiradi va tiklanishni tezlashtiradi, SLOni saqlab qoladi va MTTRni kamaytiradi.


2) Tekshiruvlarning bazaviy turlari

Liveness - «tirik» jarayon (deadlock/oqish/vahima yo’q). Nusxani qayta boshlash muvaffaqiyatsiz tugadi.
Readiness - xizmat maqsadli SLO bilan trafikka xizmat ko’rsatishga qodir (pullar ko’tarilgan, kesh isitilgan, bog’liq resurslar normal). Xato → muvozanatdan chiqarib tashlash, lekin qayta tiklash.
Startup - xizmat liveness/readiness (uzun bootstrap, migratsiya, warmup) ga oʻtishga tayyor. Muddatidan oldin restartlardan himoya qiladi.
Deep-health (domenga xos): biznes invariantlar (stavka end-to-end o’tadi, depozit aktiv PSPda avtorizatsiyalanadi). Degradatsiya signallari uchun ishlatiladi, lekin darhol qayta boshlash uchun emas.
External/Synthetic: tashqi faol pinglar (API-yo’l, front-skript, PSP/KYC endpoint) - foydalanuvchining foydalanuvchanligini o’lchaydi.


3) Namunalar dizayni: umumiy qoidalar

1. Arzon hayot: tashqi qaramlikka bormaymiz; hodisa halqasi, heap/FD, watchdog.
2. SLO bo’yicha Readiness: xizmat ko’rsatish uchun zarur bo’lgan mahalliy resurslarni (DB pullari, issiq kesh, limitlar) tekshiramiz. Tashqi qaramliklar - bloklanmagan «can-serve?» signallar.
3. Latency-budget: har bir sinov o’zining SLAsiga ega (masalan, 100-200 ms ≤); oshganda - «degraded», lekin 5xx liveness bo’yicha emas.
4. Backoff & Jitter: sinxron bo’rondan qochish uchun 5-15 sek, 1-2 sek vaqt oralig’i, xatolarda eksponensial kechikish bilan.
5. Gisterezis: Maqom oʻzgarishi uchun N muvaffaqiyatli/notoʻgʻri javoblar (masalan,’successThreshold = 2’,’failureThreshold = 3’).
6. Versiyalash: endpointlar ’/healthz’, ’/readyz’, ’/startupz’barqaror; deep-checks ostida ’/health/...’nomli tekshiruvlar bilan.
7. Sirsiz va PII: javoblar - faqat maqom va qisqa kodlardir.
8. Explainability: JSON:’{"status ": "degraded "", checks ": [{"name ": "db"", ok": true", latencyMs": 18}, {" name":" psp. eu","ok":false,"reason":"timeout"}]}`.


4) Qatlamlar bo’yicha deep-checks namunalari

4. 1 DB/kesh/saqlash

DQ: o’qish-nusxa olish uchun «SELECT 1» qisqa tranzaksiya va pulni tekshirish; latency/replication-lag chegarasi.
Kesh:’GET ’/’ SET’test kaliti + hit-ratio guard (past hit → warning).
Object Storage: Mavjud obʼektning HEAD (yuklamasdan).

4. 2 Navbatlar/striming

Broker: ping-topic publish + consume lokal partition doirasida; consumer-lag ostonalari.
DLQ: deraza orqasida dead-letterda xabarlar koʻpaymaydi.

4. 3 Tashqi provayderlar (PSP/KYC/AML)

PSP: lightweight auth-probe (non-monetary), kontrakt/sertifikat/kvotalarni tekshirish; agar safe-namunalar bo’lmasa, proksi-metrikadan foydalanamiz (banklar/GEO bo’yicha 5-10 daqiqada avtorizatsiyalarning muvaffaqiyati).
KYC/AML: health-API va SLA navbatlar; degradatsiyada - muqobil oqimga/provayderga o’tish.

4. 4 API/front

Sintetika: EU/LATAM/APAC da tranzaksion yo’l (login → depozit-tashabbus → «qumga» stavka).
RUM signali: JS/HTTP va LCP/TTFB xatolari ulushi - «tashqarida» triggerlar.


5) Platforma bilan integratsiya

5. 1 Kubernetes / Cloud

’startupProbe’ bootstrap (migratsiya/kesh-warmup) ni himoya qiladi.
’livenessProbe’ minimalist;’readinessProbe’polar/kesh/lokal navbatlarni hisobga oladi.
Параметры: `initialDelaySeconds`, `periodSeconds`, `timeoutSeconds`, `failureThreshold`, `successThreshold`.
PodDisruptionBudget va maxUnavailable readiness.
HPA/KEDA: navbat boʻyicha masshtablash/SLI; readiness routingga taʼsir qiladi.

5. 2 Balanschilar/shlyuzlar/mesh

L7 (HTTP 200/429/503 semantics) darajasida health-routing.
Outlier detection (envoy/mesh): puldan error-rate/latency persentillari boʻyicha chiqarish.
Circuit-breaker: bir vaqtning o’zida bog’lanish uchun so’rovlar/ulanishlar limitlari, health-signallar bilan integratsiya.

5. 3 Avtoskeyling va degradatsiya

Readiness = FALSE → trafik olib tashlanadi, lekin pod tirik (isishi mumkin).
Graceful rejimi uchun Deep-degrade (PSP down) → feature flags (masalan, to’lov usullarini vaqtincha yashirish, waiting-roomni yoqish).


6) Taym-autlar va retraylar siyosati

Vaqt-out <SLO budjeti:’timeout = min (⅓ p99, 1-2s)’sinxron qaramliklar uchun.
Idempotentlik: retraylar uchun majburiy; idempotency-keys.
Eksponensial backoff + jitter: sinxron val effektlarining oldini oladi.
Retray budjetlari: caps per-request/tenant, «retry-storms» dan himoya qilish.


7) Holat va alerting signallari

Yashil/Sariq/Qizil: servis-dashborddagi yig’ma maqomlar.
SLO bo’yicha Burn-rate-alertlar: tez (1 soat) va sekin (6-24 soat).
Correlation-hints: relizlar/fich bayroqlar/rejali ishlar haqida belgilar.
Auto-actions: «qizil» deep-check - provayderning fallbackini yoqish, sampling trassalarini oshirish.


8) iGaming uchun aqlli strategiyalar

Payment-aware readiness: stavkalar xizmatining tayyorligi PSP marshrutizatorining holatini va banklar/GEO limitlarini hisobga oladi.
Odds/Lines publishing: publisher’dagi readiness liniyalar manbalari va/edge’dagi tarqatish vaqtiga bogʻliq.
Tournament spikes: ko’proq tajovuzkor outlier-detection va waiting-room vaqtinchalik siyosati.


9) Antipatternlar

Liveness, DB/PSPga boradi → tashqi muammoga qarshi ommaviy restartlar.
Bitta «universal» health-endpoint startup/readiness/liveness bo’linmasdan.
Qattiq taym-autlar backoff/jitter → boʻron retraylarisiz.
Gisterezis yo’qligi → yo’nalish flapping.
Restartlarni tetiklovchi Deep-check (uning maqsadi - diagnostika va marshrutlash, qayta ishga tushirish emas).
Health-endpointlarda yashirin 5xx (haqiqiy holatni yashirish).


10) Interfeys namunalari

/startupz → `200 OK {"uptimeSec": ..., "version":"..."}`

Tekshirish: init skriptlar, migratsiyalar tugadi, kalitlar va konfiklar yuklandi.

/healthz (liveness) → `200 OK {"heapOk": true,"fdOk":true,"eventLoop":"ok"}`

Tekshiruvlar: voqealar davri, jarayon resurslari, vahima/oom-bayroqlarning yo’qligi.

/readyz (readiness) →

`200 OK/503 {"canServe": true,"db":{"ok":true,"latencyMs":12},"cache":{"ok":true},"queue":{"ok":true,"lag":0},"localQuota":{"ok":true}}`

/health/payments (deep) →

`200/206/503 {"psp. eu": {"ok":false,"reason":"timeout"}, "psp. alt":{"ok":true}, "routerMode":"failover"}`


11) Health-kontur sifati metrikasi (KPI/KRI)

Pod’NotReady’dan’Ready’ga (warmup-SLO) chiqish vaqti.
«Flapping» chastotasi readiness per servis.
Xato qayta tiklangan pod (root-cause - tashqi qaramlik).
MTTR hodisalar, bunda health-mexanizmlar rol o’ynadi (oldin/keyin).
On-call ishtirokisiz avtomatik failover/feature-degrade ulushi.
Sintetikaning aniqligi vs RUM (soxta ishga tushirish/o’tkazib yuborish).


12) Joriy etish yo’l xaritasi (4-8 hafta)

Ned. 1-2: kritik yo’llarni xatlovdan o’tkazish; startup/liveness/readiness; JSON-javoblarni quyi tekshirishlar va gisterezis bilan kiritish.
Ned. 3-4: deep-checks qo’shish: DB/kesh/broker; 2-3 GEOdagi login/depozit/stavkalar uchun sintetika; / mesh shlyuzida outlier-detection-ni yoqish.
Ned. 5–6: payment-aware readiness и PSP-fallback; front uchun waiting-room; lag/navbatlar bo’yicha avtoskeyling; burn-rate bo’yicha alertlar.
Ned. 7-8: chaos-kunlar (PSP/DB replikasini uzib qo’yish), backoff/jitterni tekshirish; taym-autlarning fintyuningi, PDB; KPI hisoboti va tuzatish kiritish.


13) Artefaktlar

Health Spec (per servis): tekshirishlar roʻyxati, vaqt byudjetlari, gisterezis, qizil holatdagi harakatlar.
Runbooks: "Readiness = FALSE: nima qilyapmiz? ", "PSP-fallback: qadamlar va qaytarish mezonlari".
Routing Policy: outlier-detection, circuit-breakers qoidalari.
Synthetic Playbook: ssenariylar va geografiya, sintetikaning SLO, jadval.
Release Gate: asosiy qaramliklar qizil deep-check bo’lganda reliz bloklari.


Jami

Health-checks - bu signallarning qatlamli tizimi: jarayonning hayotiyligi uchun oson hayot, trafikka xizmat ko’rsatish qobiliyati uchun readiness, xavfsiz boshlash uchun startup va boshqariladigan degradatsiya va marshrutlash uchun domenga xos deep-checks. Autoscaling, outlier-routing, sintetika va SLO-alerting bilan birgalikda u kaskadli nosozliklar xavfini kamaytiradi, MTTRni qisqartiradi va iGaming-platformaning biznes-muhim yo’llarini barqarorlashtiradi.

Contact

Biz bilan bog‘laning

Har qanday savol yoki yordam bo‘yicha bizga murojaat qiling.Doimo yordam berishga tayyormiz.

Integratsiyani boshlash

Email — majburiy. Telegram yoki WhatsApp — ixtiyoriy.

Ismingiz ixtiyoriy
Email ixtiyoriy
Mavzu ixtiyoriy
Xabar ixtiyoriy
Telegram ixtiyoriy
@
Agar Telegram qoldirilgan bo‘lsa — javob Email bilan birga o‘sha yerga ham yuboriladi.
WhatsApp ixtiyoriy
Format: mamlakat kodi va raqam (masalan, +998XXXXXXXX).

Yuborish orqali ma'lumotlaringiz qayta ishlanishiga rozilik bildirasiz.