Metric — tizim yoki jarayon xususiyatini sonli qiymat sifatida vaqt bo‘yicha o‘lchaydigan telemetry signalidir. Requestlar soni, CPU utilization, active connection va latency taqsimoti metric bilan ifodalanadi. Metric ko‘p hodisani agregat ko‘rinishda saqlaydi; bitta foydalanuvchi requestining batafsil matni uchun log yoki trace mosroq.
Metric modeli
Metric nomi o‘lchanayotgan xususiyatni, label yoki attribute esa cheklangan dimensionlarni bildiradi. Timestamp va sample qiymati bir time series nuqtasini hosil qiladi. Birlik nom yoki metadata orqali aniq bo‘ladi: sekund, byte, ratio yoki total count aralashtirilmaydi.
Label to‘plamining har noyob kombinatsiyasi yangi seriesdir. Service va status kabi bounded qiymat foydali, request ID yoki user ID esa cardinalityni keskin oshiradi. Dimension query va alertda zarur bo‘lmasa qo‘shilmaydi.
Counter
Counter monoton o‘suvchi yig‘ma qiymatdir. Process restartida nolga qaytishi mumkin. HTTP request total, processed bytes yoki error count misol bo‘ladi. Joriy totaldan ko‘ra rate va increase vaqt oralig‘idagi o‘zgarishni ko‘rsatadi.
Counter qiymatini qo‘lda kamaytirish semantikani buzadi. Active connection kabi ko‘tarilib-pasayadigan holat gauge bilan o‘lchanadi. Resetni query engine tanishi uchun sample tartibi va scrape interval muhim.
Gauge
Gauge istalgan yo‘nalishda o‘zgaradigan joriy qiymatdir: temperature, queue depth, memory usage yoki active worker. Gauge har scrape da snapshot beradi. Scrape oralig‘idagi qisqa peak ko‘rinmasligi mumkin.
Bir nechta instance gauge ini sum, max yoki average qilish ma’noga bog‘liq. Memory usage sum bo‘lishi mumkin, queue lag max bilan baholanishi mumkin. Aggregation operation metric ta’rifining qismidir.
Histogram va summary
Histogram kuzatuvlarni cumulative bucketlar, sum va countga yig‘adi. Server tomonida bir nechta instance bucketlari qo‘shilib, quantile taxmin qilinishi mumkin. Bucket chegaralari real SLO va taqsimotga mos tanlanadi.
Summary client tomonida quantile hisoblash imkonini beradi, lekin turli instancelarning quantile qiymatlarini oddiy agregatsiya qilib bo‘lmaydi. Qaysi tur ishlatilishi markaziy aggregation, accuracy va xarajatga bog‘liq.
Collection va temporality
Prometheus pull modelida target endpoint scrape qilinadi. OpenTelemetry push pipeline delta yoki cumulative temporality ishlatishi mumkin. Backend bir modelni boshqasiga aylantirganda process restarti va state saqlanishini hisobga oladi.
Scrape failure no data hosil qiladi, zero emas. up va ingestion health target mavjudligini ko‘rsatadi. Stale series deploymentdan keyin ma’lum muddat queryda ko‘rinishi mumkin.
Alert va SLO
Metric alert threshold, anomaly yoki burn-rate qoidalariga manba bo‘ladi. Alert qisqa spikega sezgir bo‘lmasligi uchun evaluation window va for muddati ishlatilishi mumkin. Juda uzoq window haqiqiy incidentni kech bildiradi.
SLO good va total eventlardan ratio hisoblaydi. Numerator bilan denominator bir xil scope va labelga ega bo‘lishi kerak. Recording rule qimmat hisobni oldindan saqlaydi, ammo uning nomi va aggregation semantikasi hujjatlashtiriladi.
Metric naming
Nom texnologik implementationdan ko‘ra o‘lchanayotgan hodisani bildiradi. Prometheus conventionida counter ko‘pincha _total, birlik esa _seconds yoki _bytes suffixiga ega. latency_ms_seconds kabi ikki birlikli nom xato. Renaming tarixiy seriesni avtomatik ko‘chirmaydi.
Help matni metric ma’nosi, increment nuqtasi va label scopeini tushuntiradi. Bir xil nomli metric turli targetda boshqa type yoki label semantikasiga ega bo‘lsa query chalkashadi. Registry duplicate definitionni startupda rad etishi mumkin.
Bog‘liq tushunchalar
Counter, Gauge, Histogram, Summary, Time series, Prometheus, Service level objective