လွယ်လွယ်ပြောရင် Observability ဆိုတာ ကိုယ့် system (website, app, server) ရဲ့ အတွင်းမှာ ဘာဖြစ်နေလဲ ဆိုတာ အပြင်ကနေ မြင်နိုင်၊ တိုင်းတာနိုင်တဲ့ စွမ်းရည်ပါ။ တစ်ခုခု မှားသွားရင် “ဘာဖြစ်တာလဲ” ဆိုတာကို ခန့်မှန်းစရာ မလိုဘဲ တန်းသိနိုင်တာ။

ကားဒက်ရှ်ဘုတ်နဲ့ ဥပမာ ပြောရအောင်။ ကားမောင်းနေတုန်း မျက်စိက လမ်းပေါ်မှာပဲ ရှိပေမယ့် ဒက်ရှ်ဘုတ်ကို တစ်ချက်တစ်ချက် ကြည့်တယ် — speed ဘယ်လောက်၊ ဆီ ဘယ်လောက်ကျန်၊ engine မီးနီလင်းနေလား။ ဒက်ရှ်ဘုတ် မရှိရင် ကားရပ်သွားမှ “ဆီကုန်သွားတာကိုး” လို့ သိရမယ်။ Observability က software အတွက် ဒက်ရှ်ဘုတ်ပဲ — system မကျခင် ပြဿနာကို ကြိုမြင်ရတာ။

အဲဒီ ဒက်ရှ်ဘုတ်ကို တည်ဆောက်ထားတဲ့ တိုင် ၃ ခု ရှိတယ် —

Logs — system ရဲ့ ဒိုင်ယာရီ။ “၁၀:၃၂ မှာ user ၁၂၃၄ login ဝင်တယ်” “၁၀:၃၃ မှာ payment error တက်တယ်” လို ဖြစ်ရပ်တိုင်းကို စာနဲ့ မှတ်ထားတာ။ တစ်ခုခု မှားရင် အရင်ဆုံး log ကို ဖွင့်ကြည့်ရတယ်။

Metrics — ကိန်းဂဏန်း တိုင်းတာချက်တွေ။ တစ်စက္ကန့်မှာ request ဘယ်နှခုဝင်လဲ၊ CPU ဘယ်လောက်သုံးနေလဲ၊ memory ပြည့်တော့မလား။ Grafana dashboard ပေါ်က ဂရပ်ဖ်တွေ ဒါတွေပဲ။ Prometheus ဆိုတဲ့ tool က ဒါတွေ စုပေးတယ်။

Traces — request တစ်ခု system ထဲ ဘယ်လို ခရီးသွားလဲ ဆိုတဲ့ လမ်းကြောင်း။ ဥပမာ user က “ဝယ်မယ်” နှိပ်လိုက်တယ် → web server (50ms) → database (800ms!) → payment API (200ms)။ Trace ကြည့်လိုက်တာနဲ့ database က အချိန်အကြာဆုံး ဆိုတာ တန်းသိတယ် — ပြဿနာ ဘယ်မှာလဲ မခန့်မှန်းရတော့ဘူး။

တကယ့် ဥပမာ ပြောရအောင်။ ကျွန်တော့် site က ရုတ်တရက် နှေးသွားတယ်။ အရင်တုန်းကဆို server ထဲ ဝင်ပြီး ခန့်မှန်းရတယ်။ Observability ရှိတော့ Grafana ဖွင့်ကြည့်လိုက်တယ် — metrics မှာ CPU 95% ပြနေတယ်။ Log မှာ bot တစ်ကောင် တစ်စက္ကန့်ကို request ၅၀၀ ပို့နေတာ တွေ့တယ်။ ၁၀ မိနစ်နဲ့ ပြဿနာ ရှာတွေ့တယ် — rate limit ချလိုက်တော့ ပြီးသွားတယ်။

စတင်ချင်ရင် —

ကိုယ့် app မှာ log ရေးတဲ့ အကျင့် အရင်လုပ်ပါ — error တိုင်းမှာ အချိန်၊ user၊ ဘာလုပ်နေလဲ ပါအောင်
Server တစ်လုံး ရှိရင် Prometheus + Grafana တင်ကြည့်ပါ — CPU, memory, disk ဂရပ်ဖ် ၁၅ မိနစ်နဲ့ ရတယ်
Microservices သုံးရင် trace ID တစ်ခု ထားပါ — request တစ်ခု ဘယ်ဝန်ဆောင်မှုတွေ ဖြတ်သွားလဲ လိုက်လို့ရတယ်
Alert ထားပါ — “CPU 90% ကျော်ရင် Telegram ပို့ပါ” လို စည်းမျဉ်းသေးသေးလေး၊ system ကျမှ သိတာမျိုး မဖြစ်အောင်

Monitoring နဲ့ observability က ဆင်တူပေမယ့် မတူဘူး။ Monitoring က “သိပြီးသား ပြဿနာကို စောင့်ကြည့်တာ” — observability က “မသိသေးတဲ့ ပြဿနာကိုတောင် ရှာတွေ့နိုင်တာ”။ ကားဒက်ရှ်ဘုတ် ကောင်းကောင်း ရှိထားရင် လမ်းမှာ ရပ်မနေရဘူး။ 🙂

Avatar photo
Min SiThu
@itseminsithu

Software Engineer & Tech Content Creator

View all posts