Observability — tizimning tashqi chiqishlari asosida uning ichki holatini tushunish imkoniyatidir. Dasturiy tizimlarda bu tushuncha log, metrika va distributed trace kabi telemetriya ma’lumotlarini yig‘ish, bog‘lash va tahlil qilish orqali noma’lum muammolarga javob topishni anglatadi. Monitoring avvaldan belgilangan ko‘rsatkichni kuzatsa, observability yangi savolni mavjud ma’lumot yordamida tekshirish imkonini kengaytiradi.
Telemetriyaning asosiy turlari
Metrikalar vaqt bo‘yicha o‘lchanadigan sonlardir. So‘rovlar soni, xato ulushi, CPU yuklamasi va latency taqsimoti shular jumlasiga kiradi. Counter faqat ortib boruvchi hodisani, gauge joriy qiymatni, histogram esa qiymatlarning diapazon bo‘yicha taqsimotini ifodalaydi.
Loglar ma’lum vaqtda yuz bergan hodisa yozuvlaridir. Strukturali logda matn bilan birga service, level, request_id va user_id kabi maydonlar bo‘ladi. Bu yozuvlarni qidirish va guruhlashni osonlashtiradi. Parol, token va ortiqcha shaxsiy ma’lumot logga kiritilmaydi.
Trace bitta so‘rovning bir nechta xizmat bo‘ylab harakatini ko‘rsatadi. Trace spanlardan tuziladi; har span muayyan operatsiyaning boshlanishi, davomiyligi va holatini saqlaydi. Trace ID loglarga ham yozilsa, sekin so‘rovning batafsil hodisalarini topish mumkin.
Instrumentatsiya va kontekst
Telemetriya ilova kodi, framework agenti, proxy yoki infratuzilma orqali hosil qilinadi. Distributed tizimda trace context HTTP sarlavhasi yoki xabar metadata orqali keyingi xizmatga uzatiladi. Kontekst uzilsa, operatsiyalar alohida trace sifatida ko‘rinadi.
OpenTelemetry telemetriyani yaratish va eksport qilish uchun vendor-neutral API, SDK va protokollarni taqdim etadi. Ma’lumot collector orqali turli kuzatuv omborlariga yuborilishi mumkin. Instrumentatsiya tizimning biznes semantikasini ham ifodalasa, faqat server resursidan ko‘ra aniqroq tahlil beradi.
Signal va o‘lchovlar
Veb-xizmat uchun rate, errors va duration ko‘rsatkichlari ko‘p muammoni dastlab aniqlashga xizmat qiladi. Resurs qatlamida utilization, saturation va error kuzatiladi. O‘rtacha latency yakka sekin so‘rovlarni yashirishi mumkin, shu sababli p50, p95 yoki p99 percentillar ishlatiladi.
Cardinality metrika yorliqlaridagi noyob qiymatlar sonidir. user_idni metric label sifatida ishlatish millionlab vaqt qatorlarini hosil qilib, saqlash va so‘rov narxini keskin oshirishi mumkin. Yuqori cardinality ma’lumoti ko‘proq log yoki tracega mos keladi.
Incidentdagi vazifasi
Ogohlantirish foydalanuvchiga ta’sir qiladigan signal asosida incidentni bildiradi. Mutaxassis dashboarddan umumiy o‘zgarishni ko‘radi, trace orqali sekin komponentni ajratadi va logdan aniq xatoni topadi. Telemetriya vaqt tamg‘alari, servis nomlari va identifikatorlar bilan bog‘langan bo‘lsa, bu o‘tish izchil kechadi.
Observability nosozlikni avtomatik bartaraf etmaydi. Uning sifati ma’lumotning to‘liqligi, semantik aniqligi, saqlash muddati va foydali signalning shovqindan ajratilishiga bog‘liq.
Sampling va saqlash
Har bir so‘rovning to‘liq traceini uzoq muddat saqlash katta trafikda qimmat. Head sampling trace boshlanishida tanlov qiladi, tail sampling esa natija ma’lum bo‘lgach xato yoki sekin tracega ustuvorlik berishi mumkin. Sampling ulushi tahlilda hisobga olinmasa, hodisalar soni noto‘g‘ri talqin qilinadi. Log va metrikalar uchun retention davri ham bir xil bo‘lishi shart emas. Tezkor diagnostika uchun batafsil ma’lumot qisqa muddat, audit yoki trend uchun ixcham agregat uzoqroq saqlanishi mumkin. Telemetriya pipelineining o‘zi ishlamay qolsa, monitoring ko‘r nuqtaga aylanadi; collector queue, drop soni va eksport xatolari ham kuzatiladi.
Telemetriya sxemasidagi service va operation nomlari izchil bo‘lmasa, bir xil amal dashboardda bir nechta qatorga bo‘linadi. Semantik konvensiyalar turli tillarda yozilgan xizmatlar chiqishini umumiy ma’noda birlashtiradi.
Bog‘liq tushunchalar
monitoring, logging, metrics, distributed tracing, OpenTelemetry, SLO, telemetry