GoDasturchi
Metrics & Observability: Concepts (Part 1)

Metrics & Observability: Concepts (Part 1)

Metrikalar va kuzatuvchanlik: tushunchalar (1-qism)

Mashina panelini tasavvur qiling: tezlik, yoqilg'i darajasi, dvigatel harorati — bularning barchasi doimiy ravishda o'lchanadi va ko'rsatiladi, shunda haydovchi muammoni sodir bo'lishidan OLDIN sezishi mumkin. Metrika (metric) — dastur uchun aynan shunday "panel ko'rsatkichi": vaqt bo'yicha o'zgarib boradigan sonli qiymat.

Uchta asosiy metrika turi

  • Counter (hisoblagich) — faqat OSHADI, hech qachon kamaymaydi (masalan "jami so'rovlar soni"). "Data Structures in Go" kursidagi atomic.AddInt64 bilan hisoblagichga o'xshaydi.
  • Gauge (o'lchagich) — ko'tarilishi HAM, tushishi HAM mumkin (masalan "hozirgi faol ulanishlar soni", "xotira ishlatilishi").
  • Histogram — qiymatlarning taqsimotini o'lchaydi (masalan "so'rovlarning necha foizi 100ms dan tez, necha foizi sekin javob berdi").

Nega buning ahamiyati katta? Chunki loglar ("Structured Logging for Cloud" darsida ko'rgan) sizga "aynan NIMA sodir bo'ldi" haqida batafsil ma'lumot beradi, lekin ular ko'p va qidirish qiyin bo'lishi mumkin. Metrikalar esa "umumiy holat QANDAY" degan savolga bir zumda, grafik ko'rinishida javob beradi — masalan "so'nggi bir soatda xatolar foizi oshdimi?" degan savolga minglab log qatorini o'qish o'rniga, bitta grafikka qarab javob berish mumkin.

Haqiqiy loyihalarda metrikalar odatda Prometheus (metrikalarni yig'ib turadigan tizim) va Grafana (ularni chiroyli grafiklarga aylantiradigan vosita) bilan ishlatiladi. Bizning interaktiv o'quv muhitimiz bunday tashqi tizimlarga ulanolmaydi, shuning uchun keyingi darsda metrikalarning asosiy g'oyasini — sonlarni hisoblab, saqlab borishni — sof Go kodida, soddalashtirilgan tarzda amalga oshiramiz.

Key Takeaway

Key Takeaway:

Counter (faqat oshadi), Gauge (o'zgaruvchan) va Histogram (taqsimot) — metrikalarning uchta asosiy turi; ular loglardan farqli, tizimning UMUMIY holatini bir zumda ko'rish imkonini beradi.

NEXT UP

Metrics & Observability: Implementation (Part 2)

Metrics & Observability: Concepts (Part 1)

Metrikalar va kuzatuvchanlik: tushunchalar (1-qism)

Mashina panelini tasavvur qiling: tezlik, yoqilg'i darajasi, dvigatel harorati — bularning barchasi doimiy ravishda o'lchanadi va ko'rsatiladi, shunda haydovchi muammoni sodir bo'lishidan OLDIN sezishi mumkin. Metrika (metric) — dastur uchun aynan shunday "panel ko'rsatkichi": vaqt bo'yicha o'zgarib boradigan sonli qiymat.

Uchta asosiy metrika turi

  • Counter (hisoblagich) — faqat OSHADI, hech qachon kamaymaydi (masalan "jami so'rovlar soni"). "Data Structures in Go" kursidagi atomic.AddInt64 bilan hisoblagichga o'xshaydi.
  • Gauge (o'lchagich) — ko'tarilishi HAM, tushishi HAM mumkin (masalan "hozirgi faol ulanishlar soni", "xotira ishlatilishi").
  • Histogram — qiymatlarning taqsimotini o'lchaydi (masalan "so'rovlarning necha foizi 100ms dan tez, necha foizi sekin javob berdi").

Nega buning ahamiyati katta? Chunki loglar ("Structured Logging for Cloud" darsida ko'rgan) sizga "aynan NIMA sodir bo'ldi" haqida batafsil ma'lumot beradi, lekin ular ko'p va qidirish qiyin bo'lishi mumkin. Metrikalar esa "umumiy holat QANDAY" degan savolga bir zumda, grafik ko'rinishida javob beradi — masalan "so'nggi bir soatda xatolar foizi oshdimi?" degan savolga minglab log qatorini o'qish o'rniga, bitta grafikka qarab javob berish mumkin.

Haqiqiy loyihalarda metrikalar odatda Prometheus (metrikalarni yig'ib turadigan tizim) va Grafana (ularni chiroyli grafiklarga aylantiradigan vosita) bilan ishlatiladi. Bizning interaktiv o'quv muhitimiz bunday tashqi tizimlarga ulanolmaydi, shuning uchun keyingi darsda metrikalarning asosiy g'oyasini — sonlarni hisoblab, saqlab borishni — sof Go kodida, soddalashtirilgan tarzda amalga oshiramiz.

Key Takeaway

Key Takeaway:

Counter (faqat oshadi), Gauge (o'zgaruvchan) va Histogram (taqsimot) — metrikalarning uchta asosiy turi; ular loglardan farqli, tizimning UMUMIY holatini bir zumda ko'rish imkonini beradi.

NEXT UP

Metrics & Observability: Implementation (Part 2)