Health check — dastur, server yoki dependency trafik qabul qilishga va vazifasini bajarishga tayyorligini avtomatik tekshiruvchi signal. Load balancer, container orchestrator va monitoring tizimi health check natijasiga ko‘ra trafikni to‘xtatishi, processni qayta ishga tushirishi yoki alert yuborishi mumkin. Bitta “healthy” qiymati turli maqsadlarni aralashtirmasligi uchun liveness, readiness va startup tekshiruvlari ajratiladi.
Liveness
Liveness process oldinga siljiyaptimi yoki qayta ishga tushirish kerakmi, degan savolga javob beradi. Deadlock, cheksiz loop yoki event loop to‘liq bloklangan holatni aniqlashi mumkin. Database vaqtincha ishlamasa processni restart qilish muammoni hal qilmaydi va barcha nusxada restart storm yaratishi mumkin; shu sababli liveness odatda tashqi dependencyga qattiq bog‘lanmaydi.
Liveness endpoint juda yengil va processning muhim thread/event loopida xizmat ko‘rsatiladi. Alohida sog‘lom debug server asosiy worker o‘lgan bo‘lsa ham 200 qaytarsa, tekshiruv noto‘g‘ri signal beradi. Timeout va ketma-ket failure threshold bir martalik GC pause yoki CPU spike’ni restartga aylantirmasligi kerak.
Readiness
Readiness nusxa yangi request qabul qila oladimi, degan qarorni beradi. Dastur ishga tushgan, konfiguratsiya yuklangan, zarur connection pool tayyor va kritik lokal holat mavjud bo‘lsa ready bo‘ladi. Readiness muvaffaqiyatsiz bo‘lsa orchestrator processni o‘ldirmasdan load balancer endpointlaridan chiqaradi.
Har bir downstream xizmatni readinessga qo‘shish cascading failure yaratishi mumkin. Masalan, bitta umumiy database sekinlashsa barcha app instance bir vaqtda unready bo‘lib, hatto cache’dan xizmat qilinadigan endpointlar ham yo‘qoladi. Dependency ilovaning mutlaq ishlash sharti yoki degradatsiya qilinadigan funksiya ekaniga qarab tekshiriladi.
Startup probe
Sekin ishga tushadigan dastur migration, model loading yoki cache warmup uchun vaqt talab qiladi. Startup probe muvaffaqiyatli bo‘lguncha liveness failure hisoblanmaydi. Bu liveness timeoutini doimiy juda uzun qilishdan yaxshiroq: start tugagach deadlock tez aniqlanadi.
Startup endpoint process birinchi marta tayyor bo‘lganini emas, ayni lifecycle bosqichini ko‘rsatadi. Deployment termination boshlanganda readiness avval false qilinadi, endpoint propagation uchun qisqa drain davri beriladi, keyin mavjud requestlar tugatiladi.
Tekshiruv turlari
TCP check faqat port ulanishini ko‘radi. HTTP check status, body yoki headerni tekshirishi mumkin. gRPC health checking standart service holatini beradi. Command probe container ichida buyruq bajaradi, ammo process spawn xarajati va shell dependency keltiradi.
Synthetic transaction login bo‘lmagan test account bilan to‘liq business oqimini tekshirishi mumkin. U load balancerning har soniyalik checki emas, monitoringning kamroq chastotali end-to-end nazoratidir. Test data production statistikasini buzmasligi va side effectni tozalashi kerak.
Endpoint xavfsizligi
Public health endpoint version, database host, stack trace va secretni oshkor qilmaydi. Tashqi checkga oddiy status yetarli. Ichki diagnostika endpointi authentication va tarmoq siyosati bilan batafsil component holatini ko‘rsatishi mumkin. Bir xil /health javobida barcha maxfiy konfiguratsiyani chiqarish reconnaissance’ni osonlashtiradi.
Health check rate limitdan istisno qilinsa, uning o‘zi arzon bo‘lishi kerak. Hujumchi og‘ir dependency query’ni cheksiz chaqira olmasligi lozim. Check query read-only, kichik timeoutli va resurs poolidan nazoratli foydalanadi.
Threshold va kuzatuv
Bir failure bilan serverni chiqarish transient packet lossda flapping yaratadi. failureThreshold, successThreshold, interval va timeout xizmat latency profiliga mos belgilanadi. Juda yumshoq threshold real nosozlikka trafik yuborishni uzaytiradi. State o‘zgarishi metric va eventda qayd etiladi.
Health “200” bo‘lsa ham latency yoki xato ulushi yomon bo‘lishi mumkin. SLO monitoring real request success, percentile latency va saturationni kuzatadi. Health check binar routing qarori, observability esa xizmat sifatining kengroq o‘lchovidir.
Bog‘liq tushunchalar
Liveness probe, Readiness probe, Startup probe, Load balancer, Monitoring, SLO, Graceful shutdown