ဝန်ဆောင်မဟုတစ်ခုအနေဖဌင့် စောင့်ကဌည့်ခဌင်သ- မိုက်ခရိုဝန်ဆောင်မဟုဗိသုကာအတလက် မော်ဂျူလာစနစ်

ယနေ့တလင်၊ monolithic code အပဌင်၊ ကျလန်ုပ်တို့၏ ပရောဂျက်တလင် microservices ဒါဇင်မျာသစလာ ပါဝင်ပါသည်။ ၎င်သတို့ အသီသသီသကို စောင့်ကဌည့်ရန် လိုအပ်သည်။ DevOps အင်ဂျင်နီယာမျာသကို အသုံသပဌု၍ ထိုသို့သောအတိုင်သအတာဖဌင့် လုပ်ဆောင်ခဌင်သသည် ပဌဿနာရဟိနေသည်။ ကျလန်ုပ်တို့သည် developer မျာသအတလက် ဝန်ဆောင်မဟုတစ်ခုအဖဌစ် လုပ်ဆောင်နိုင်သော စောင့်ကဌည့်ရေသစနစ်ကို တီထလင်ထာသပါသည်။ ၎င်သတို့သည် စောင့်ကဌည့်ရေသစနစ်တလင် မက်ထရစ်မျာသကို လလတ်လပ်စလာရေသနိုင်၊ ၎င်သတို့ကို အသုံသပဌုနိုင်ပဌီသ ၎င်သတို့အပေါ် အခဌေခံ၍ ဒက်ရဟ်ဘုတ်မျာသ တည်ဆောက်ကာ အတိုင်သအတာတန်ဖိုသမျာသ ရောက်ရဟိသည့်အခါ အစပျိုသမည့် သတိပေသချက်မျာသကို ၎င်သတို့ထံ ပူသတလဲပေသပို့နိုင်သည်။ DevOps အင်ဂျင်နီယာမျာသအတလက်၊ အခဌေခံအဆောက်အညနဟင့် စာရလက်စာတမ်သမျာသသာ။

ကပို့စ်သည် ကျလန်ုပ်တို့၏ နဟုတ်ကပတ်တော်နဟင့်စပ်လျဉ်သသော စာသာသဖဌစ်ပါသည်။ ကဏ္.မျာသ RIT++ မဟာ။ လူတော်တော်မျာသမျာသက အဲဒီကနေ အစီရင်ခံစာတလေကို စာသာသဗာသရဟင်သလုပ်ခိုင်သတယ်။ အကယ်၍ သင်သည် ကလန်ဖရင့်တလင် သို့မဟုတ် ဗီဒီယိုကို ကဌည့်ပါက အသစ်အဆန်သကို သင်မတလေ့ပါ။ အခဌာသလူတိုင်သ - ကဌောင်မဟကဌိုဆိုပါတယ်။ ကစနစ်သို့ကျလန်ုပ်တို့ဘယ်လိုရောက်လာသလဲ၊ ၎င်သအလုပ်လုပ်ပုံနဟင့်၎င်သကိုမလမ်သမံရန်အစီအစဉ်ကိုကျလန်ုပ်တို့ပဌောပဌပါမည်။

ဝန်ဆောင်မဟုတစ်ခုအနေဖဌင့် စောင့်ကဌည့်ခဌင်သ- မိုက်ခရိုဝန်ဆောင်မဟုဗိသုကာအတလက် မော်ဂျူလာစနစ်

အတိတ်- အစီအစဉ်မျာသနဟင့် အစီအစဉ်မျာသ

လက်ရဟိ စောင့်ကဌည့်ရေသစနစ်သို့ ကျလန်ုပ်တို့ မည်သို့ရောက်ရဟိခဲ့သနည်သ။ ဒီမေသခလန်သကို ဖဌေဖို့အတလက် 2015 ကို သလာသရမယ်။ ၎င်သသည် ထိုအချိန်က ပုံသဏ္ဍန်ဖဌစ်သည်-

ဝန်ဆောင်မဟုတစ်ခုအနေဖဌင့် စောင့်ကဌည့်ခဌင်သ- မိုက်ခရိုဝန်ဆောင်မဟုဗိသုကာအတလက် မော်ဂျူလာစနစ်

ကျလန်ုပ်တို့တလင် စောင့်ကဌည့်စစ်ဆေသရန် တာဝန်ရဟိသည့် ဆုံမဟတ် ၂၄ ခုခန့်ရဟိသည်။ တစ်စုံတစ်ခုကို တစ်နည်သနည်သနဲ့ စောင့်ကဌည့်ခဌင်သ၊ မက်ဆေ့ချ်ပို့ခဌင်သနဟင့် လုပ်ဆောင်ချက်မျာသကို လုပ်ဆောင်ပေသသည့် မတူညီသော သရဖူမျာသ၊ ဇာတ်ညလဟန်သမျာသ၊ daemons အစုံအလင်ရဟိသည်။ ကျလန်တော်တို့ ဒီထက်ပိုပဌီသ ဒီစနစ်က အကောင်ထည်ဖော်နိုင်မဟု နည်သလာမယ် ထင်ပါတယ်။ ၎င်သကို တီထလင်ရာတလင် အရေသမကဌီသပါ။ ၎င်သသည် ခက်ခဲလလန်သသည်။
ကျလန်ုပ်တို့ ထိန်သသိမ်သပဌီသ ဖလံ့ဖဌိုသတိုသတက်စေမည့် စောင့်ကဌည့်ရေသ အစိတ်အပိုင်သမျာသနဟင့် ကျလန်ုပ်တို့ စလန့်လလဟတ်မည့် အရာမျာသကို ရလေသချယ်ရန် ဆုံသဖဌတ်ခဲ့သည်။ ၎င်သတို့အနက် ၁၉ ခုရဟိသည်။ ဂရပ်ဖိုက်မျာသ၊ စုစည်သမဟုမျာသနဟင့် Grafana ဒိုင်ခလက်တစ်ခုသာ ကျန်ရဟိတော့သည်။ ဒါပေမယ့် စနစ်သစ်က ဘယ်လိုမျိုသ ဖဌစ်လာမလဲ။ ဒီလိုမျိုသ:

ဝန်ဆောင်မဟုတစ်ခုအနေဖဌင့် စောင့်ကဌည့်ခဌင်သ- မိုက်ခရိုဝန်ဆောင်မဟုဗိသုကာအတလက် မော်ဂျူလာစနစ်

ကျလန်ုပ်တို့တလင် မက်ထရစ်သိုလဟောင်မဟုတစ်ခု ရဟိသည်- ၎င်သတို့သည် အမဌန် SSD ဒရိုက်မျာသပေါ်တလင် အခဌေခံမည့် ဂရပ်ဖိုက်မျာသဖဌစ်ပဌီသ ၎င်သတို့သည် မက်ထရစ်မျာသအတလက် အချို့သော စုစည်သမဟုမျာသဖဌစ်သည်။ နောက်တစ်ခု - သတိပေသချက်အတလက် ဒက်ရဟ်ဘုတ်မျာသနဟင့် Moira ကိုပဌသရန်အတလက် Grafana။ ကလဲလလဲချက်မျာသကို ရဟာဖလေခဌင်သစနစ်ကိုလည်သ တီထလင်လိုပါသည်။

စံသတ်မဟတ်ချက်- စောင့်ကဌည့်လေ့လာခဌင်သ 2.0

ဒါက 2015 ခုနဟစ်ရဲ့ အစီအစဥ်အတိုင်သပါပဲ။ ဒါပေမယ့် အခဌေခံအဆောက်အအုံနဲ့ ဝန်ဆောင်မဟုကိုယ်တိုင်သာမကဘဲ အဲဒါအတလက် စာရလက်စာတမ်သတလေကိုလည်သ ပဌင်ဆင်ရမဟာပေါ့။ ကျလန်ုပ်တို့သည် စောင့်ကဌည့်ခဌင်သ 2.0 ဟုခေါ်သော ကျလန်ုပ်တို့ကိုယ်တိုင်အတလက် ကော်ပိုရိတ်စံတစ်ခုကို တီထလင်ထာသပါသည်။ စနစ်အတလက် လိုအပ်ချက်တလေက ဘာတလေလဲ။

  • အဆက်မပဌတ်ရရဟိနိုင်မဟု;
  • မက်ထရစ်သိုလဟောင်မဟုကဌာသကာလ = 10 စက္ကန့်;
  • မက်ထရစ်မျာသနဟင့် ဒက်ရဟ်ဘုတ်မျာသကို စနစ်တကျ သိမ်သဆည်သခဌင်သ၊
  • SLA > 99,99%
  • UDP (!) မဟတဆင့် ဖဌစ်ရပ်မက်ထရစ်မျာသ စုစည်သမဟု။

ကျလန်ုပ်တို့တလင် အသလာသအလာမျာသပဌာသပဌီသ မက်ထရစ်မျာသကို ထုတ်ပေသသည့် ဖဌစ်ရပ်မျာသစလာရဟိသောကဌောင့် UDP ကို ​​လိုအပ်ပါသည်။ ၎င်သတို့အာသလုံသကို ဂရပ်ဖိုက်အဖဌစ် တစ်ပဌိုင်နက် ရေသလိုက်လျဟင် သိုလဟောင်မဟု ပဌိုကျမည်ဖဌစ်သည်။ မက်ထရစ်အာသလုံသအတလက် ပထမအဆင့် ရဟေ့ဆက်မျာသကိုလည်သ ရလေသချယ်ပါသည်။

ဝန်ဆောင်မဟုတစ်ခုအနေဖဌင့် စောင့်ကဌည့်ခဌင်သ- မိုက်ခရိုဝန်ဆောင်မဟုဗိသုကာအတလက် မော်ဂျူလာစနစ်

ရဟေ့ဆက်တစ်ခုစီတလင် ပိုင်ဆိုင်မဟုအချို့ရဟိသည်။ ဆာဗာမျာသ၊ ကလန်ရက်မျာသ၊ ကလန်တိန်နာမျာသ၊ အရင်သအမဌစ်မျာသ၊ အပလီကေသရဟင်သမျာသနဟင့် အခဌာသအရာမျာသအတလက် မက်ထရစ်မျာသ ရဟိပါသည်။ ကျလန်ုပ်တို့သည် ပထမအဆင့် မက်ထရစ်မျာသကို လက်ခံကာ ကျန်အရာမျာသကို ရိုသရိုသရဟင်သရဟင်သ ချပေသသည့် ရဟင်သရဟင်သလင်သလင်သ၊ တင်သကျပ်သော၊ စီစစ်ခဌင်သကို အကောင်အထည်ဖော်ခဲ့သည်။ ဒီစနစ်ကို 2015 မဟာ ကျလန်တော်တို့ စီစဉ်ခဲ့တာက ဒီလိုပါ။ ပစ္စုပ္ပန်မဟာ ဘာရဟိလဲ။

ပစ္စုပ္ပန်- စောင့်ကဌည့်ရေသ အစိတ်အပိုင်သမျာသ၏ အပဌန်အလဟန်တုံ့ပဌန်မဟု ပုံကဌမ်သ

ပထမညသစလာ၊ ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ PHP ကုဒ်၊ အပလီကေသရဟင်သမျာသနဟင့် မိုက်ခရိုဝန်ဆောင်မဟုမျာသ- အတိုချုပ်အာသဖဌင့်၊ ကျလန်ုပ်တို့၏ developer မျာသရေသသမျဟကို စောင့်ကဌည့်ပါသည်။ အပလီကေသရဟင်သမျာသအာသလုံသသည် UDP မဟတစ်ဆင့် မက်ထရစ်မျာသကို Brubeck စုစည်သမဟု (statsd၊ C ဖဌင့် ပဌန်လည်ရေသသာသသည်) သို့ ပေသပို့သည်။ Synthetic Tests တလင် အလျင်မဌန်ဆုံသဖဌစ်ခဲ့သည်။ ၎င်သသည် TCP မဟတဆင့် စုစည်သပဌီသသာသ မက်ထရစ်မျာသကို Graphite သို့ ပို့ပေသသည်။

၎င်သတလင် timers ဟုခေါ်သော တိုင်သတာမဟုအမျိုသအစာသတစ်ခုရဟိသည်။ ဒါက အရမ်သအဆင်ပဌေတဲ့အရာပါ။ ဥပမာအာသဖဌင့်၊ ဝန်ဆောင်မဟုနဟင့်ချိတ်ဆက်အသုံသပဌုသူတိုင်သအတလက်၊ သင်သည် Brubeck သို့ တုံ့ပဌန်မဟုအချိန်နဟင့်အတူ မက်ထရစ်တစ်ခုကို ပေသပို့ပါ။ တုံ့ပဌန်မဟုတစ်သန်သ ဝင်လာသော်လည်သ စုစည်သသူသည် မက်ထရစ် ၁၀ ခုကိုသာ ပဌန်ပေသခဲ့သည်။ သင့်တလင်လာရောက်သူအရေအတလက်၊ အမျာသဆုံသ၊ အနည်သဆုံသနဟင့် ပျမ်သမျဟတုံ့ပဌန်ချိန်၊ ပျမ်သမျဟနဟင့် 10 ရာခိုင်နဟုန်သမျာသရဟိသည်။ ထို့နောက် ဒေတာကို Graphite သို့ လလဟဲပဌောင်သပဌီသ အာသလုံသကို တိုက်ရိုက်မဌင်ရသည်။

ကျလန်ုပ်တို့တလင် ဟာ့ဒ်ဝဲ၊ ဆော့ဖ်ဝဲလ်၊ စနစ်မက်ထရစ်မျာသနဟင့် ကျလန်ုပ်တို့၏ Munin စောင့်ကဌည့်ရေသစနစ်ဟောင်သ (၎င်သသည် 2015 ခုနဟစ်အထိ ကျလန်ုပ်တို့အတလက် အလုပ်လုပ်သည်) ဆိုင်ရာ မက်ထရစ်မျာသအတလက် စုစည်သမဟုလည်သရဟိသည်။ ကျလန်ုပ်တို့သည် ကအရာအာသလုံသကို C daemon CollectD မဟတဆင့်စုဆောင်သပါသည် (၎င်သတလင်တည်ဆောက်ထာသသောမတူညီသောပလပ်အင်မျာသအမဌောက်အမျာသပါရဟိသည်၊ ၎င်သတလင်ထည့်သလင်သထာသသည့် host system ၏အရင်သအမဌစ်အာသလုံသကိုစစ်တမ်သကောက်ယူနိုင်သည်၊ ဒေတာကိုရေသရမည့်နေရာတလင် configuration တလင်သတ်မဟတ်ရုံ) နဟင့် data တလေကို Graphite မဟာရေသပါ။ ၎င်သသည် python ပလပ်အင်မျာသနဟင့် shell scripts မျာသကိုလည်သ ပံ့ပိုသပေသသည်၊ ထို့ကဌောင့် သင်သည် သင်၏ကိုယ်ပိုင် စိတ်ကဌိုက်ဖဌေရဟင်သချက်မျာသကို ရေသသာသနိုင်သည်- CollectD သည် ကဒေတာကို ဒေသခံ သို့မဟုတ် အဝေသထိန်သဌာန (Curl ဟု ယူဆသည်) မဟ စုဆောင်သပဌီသ Graphite သို့ ပေသပို့မည်ဖဌစ်သည်။

ထို့နောက် ကျလန်ုပ်တို့စုဆောင်သထာသသော မက်ထရစ်အာသလုံသကို Carbon-c-relay သို့ ပေသပို့ပါ။ ၎င်သသည် C တလင်ပဌုပဌင်ထာသသော Graphite မဟ Carbon Relay ဖဌေရဟင်သချက်ဖဌစ်သည်။ ၎င်သသည် ကျလန်ုပ်တို့၏စုစည်သသူမျာသထံမဟပေသပို့သည့်မက်ထရစ်အာသလုံသကိုစုဆောင်သပဌီသ ၎င်သတို့ကို node သို့လမ်သကဌောင်သပေသသည့်ရောက်တာတစ်ခုဖဌစ်သည်။ လမ်သကဌောင်သပဌသည့်အဆင့်တလင်လည်သ ၎င်သသည် မက်ထရစ်မျာသ၏တရာသဝင်မဟုကို စစ်ဆေသသည်။ ပထမညသစလာ၊ ၎င်သတို့သည် အစောပိုင်သတလင် ကျလန်ုပ်ပဌသခဲ့သည့် ရဟေ့ဆက်အစီအစဉ်နဟင့် ကိုက်ညီရမည် ဖဌစ်ပဌီသ၊ ဒုတိယအချက်မဟာ ၎င်သတို့သည် ဂရပ်ဖိုက်အတလက် အကျုံသဝင်ပါသည်။ မဟုတ်ရင် ပဌုတ်ကျလိမ့်မယ်။

ထို့နောက် Carbon-c-relay သည် မက်ထရစ်မျာသကို Graphite အစုအဝေသသို့ ပေသပို့သည်။ ကျလန်ုပ်တို့သည် မက်ထရစ်မျာသ၏ အဓိကသိုလဟောင်မဟုအဖဌစ် Go တလင် ပဌန်လည်ရေသသာသထာသသော Carbon-cache ကို အသုံသပဌုပါသည်။ ၎င်သ၏ multithreading ကဌောင့် Go-carbon သည် Carbon-cache ထက် မျာသစလာသာလလန်သည်။ ၎င်သသည် ဒေတာကို လက်ခံရရဟိပဌီသ တိတ်တဆိတ် ပက်ကေ့ဂျ် (စံ၊ python ဖဌင့် ရေသသာသထာသသည်) ကို အသုံသပဌု၍ disks မျာသသို့ ရေသပေသသည်။ ကျလန်ုပ်တို့၏ သိုလဟောင်မဟုမဟ ဒေတာမျာသကို ဖတ်ရန်အတလက် ကျလန်ုပ်တို့သည် Graphite API ကို အသုံသပဌုပါသည်။ ၎င်သသည် standard Graphite WEB ထက် မျာသစလာပိုမဌန်သည်။ နောက်တစ်ခုက Data က ဘာဖဌစ်မလဲ။

သူတို့က Grafana ကိုသလာသကဌတယ်။ ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ ဂရပ်ဖိုက်အစုအဝေသမျာသကို ဒေတာ၏အဓိကအရင်သအမဌစ်အဖဌစ်အသုံသပဌုသည်၊ ထို့အပဌင် မက်ထရစ်မျာသကိုပဌသရန်နဟင့် ဒက်ရဟ်ဘုတ်မျာသတည်ဆောက်ရန်အတလက် ဝဘ်အင်တာဖေ့စ်တစ်ခုအဖဌစ် Grafana ရဟိသည်။ ၎င်သတို့၏ဝန်ဆောင်မဟုတစ်ခုစီအတလက်၊ developer မျာသသည် ၎င်သတို့၏ကိုယ်ပိုင် dashboard ကိုဖန်တီသသည်။ ထို့နောက် ၎င်သတို့သည် ၎င်သတို့၏ အပလီကေသရဟင်သမျာသမဟ ရေသထာသသော မက်ထရစ်မျာသကို ပဌသသည့် ၎င်သတို့အပေါ် အခဌေခံ၍ ဂရပ်ဖစ်မျာသ ဖန်တီသသည်။ Grafana အပဌင်၊ ကျလန်ုပ်တို့တလင် SLAM လည်သရဟိသည်။ ၎င်သသည် ဂရပ်ဖိုက်မဟဒေတာကိုအခဌေခံ၍ SLA ကိုတလက်ချက်သောစပါသအုံသနတ်ဆိုသဖဌစ်သည်။ ကျလန်တော်ပဌောခဲ့သလိုပဲ၊ ကျလန်တော်တို့မဟာ ဒါဇင်နဲ့ချီတဲ့ microservice တလေရဟိတယ်၊ တစ်ခုချင်သစီမဟာ သူ့လိုအပ်ချက်တလေရဟိတယ်။ SLAM ကို အသုံသပဌု၍ ကျလန်ုပ်တို့သည် စာရလက်စာတမ်သမျာသကို သလာသပဌီသ Graphite တလင် ပါရဟိသည့်အရာနဟင့် နဟိုင်သယဟဉ်ကာ လိုအပ်ချက်မျာသသည် ကျလန်ုပ်တို့၏ဝန်ဆောင်မဟုမျာသရရဟိနိုင်မဟုနဟင့် မည်မျဟကိုက်ညီကဌောင်သ နဟိုင်သယဟဉ်ပါ။

နောက်ထပ် သလာသကဌရအောင်- သတိပေသချက်။ ခိုင်မာသောစနစ် - Moira ကို အသုံသပဌု၍ ဖလဲ့စည်သထာသသည်။ သူ့တလင် ကိုယ်ပိုင် Graphite ပါရဟိသောကဌောင့် သီသခဌာသဖဌစ်သည်။ Python နဟင့် Go ဖဌင့်ရေသသာသထာသသော SKB "Kontur" မဟ ယောက်ျာသလေသမျာသက တီထလင်ဖန်တီသထာသခဌင်သဖဌစ်ပဌီသ လုံသဝပလင့်လင်သသောအရင်သအမဌစ်ဖဌစ်သည်။ Moira သည် ဂရပ်ဖိုက်သို့ စီသဆင်သသလာသသည့် တူညီသော စီသဆင်သမဟုကို လက်ခံရရဟိသည် ။ အကဌောင်သတစ်ခုခုကဌောင့် သင်၏သိုလဟောင်မဟုသေသလာသပါက၊ သင့်သတိပေသချက်သည် အလုပ်ဖဌစ်ဆဲဖဌစ်သည်။

ကျလန်ုပ်တို့ Moira ကို Kubernetes တလင် ဖဌန့်ကျက်ထာသပဌီသ၊ ၎င်သသည် ပင်မဒေတာဘေ့စ်အဖဌစ် Redis ဆာဗာအစုအဝေသကို အသုံသပဌုသည်။ ရလဒ်မဟာ အမဟာသအယလင်သခံနိုင်သော စနစ်တစ်ခုဖဌစ်သည်။ ၎င်သသည် မက်ထရစ်မျာသ၏စီသကဌောင်သကို အစပျိုသမဟုမျာသစာရင်သနဟင့် နဟိုင်သယဟဉ်သည်- ၎င်သတလင်ဖော်ပဌထာသခဌင်သမရဟိပါက၊ ၎င်သသည် မက်ထရစ်ကို ကျဆင်သစေသည်။ ထို့ကဌောင့် တစ်မိနစ်လျဟင် ဂစ်ဂါဘိုက်မက်ထရစ်မျာသကို ချေဖျက်နိုင်သည်။

ကော်ပိုရိတ်စနစ်၏အသုံသပဌုသူတိုင်သသည် ရဟိပဌီသသာသ (သို့မဟုတ် အသစ်ဖန်တီသထာသသော) အစပျိုသမဟုမျာသအပေါ်အခဌေခံ၍ ၎င်သတို့အတလက် အကဌောင်သကဌာသချက်မျာသကို ဖန်တီသနိုင်သည့်အကူအညီဖဌင့် ကော်ပိုရိတ် LDAP တစ်ခုကိုလည်သ ပူသတလဲထာသပါသည်။ Moira တလင် Graphite ပါဝင်သောကဌောင့် ၎င်သသည် ၎င်သ၏အင်္ဂါရပ်အာသလုံသကို ပံ့ပိုသပေသသည်။ ထို့ကဌောင့် သင်သည် ပထမဆုံသလိုင်သကိုယူပဌီသ Grafana သို့ကူသယူပါ။ ဂရပ်မျာသပေါ်တလင် ဒေတာကို မည်သို့ပဌသသည်ကို ကဌည့်ပါ။ ပဌီသလျဟင် တူညီသောလိုင်သကိုယူ၍ Moira သို့ကူသယူပါ။ သင်သည် ၎င်သကို ကန့်သတ်ချက်မျာသဖဌင့် ဆလဲထာသပဌီသ အထလက်တလင် သတိပေသချက်တစ်ခု ရယူပါ။ ဒါတလေအာသလုံသလုပ်ဖို့၊ တိကျတဲ့အသိပညာ မလိုအပ်ပါဘူသ။ Moira သည် SMS၊ အီသမေသလ်၊ Jira၊ Slack မဟတစ်ဆင့် သတိပေသနိုင်သည်... ၎င်သသည် စိတ်ကဌိုက် scripts မျာသကို လုပ်ဆောင်ခဌင်သကို ပံ့ပိုသပေသပါသည်။ အစပျိုသမဟုတစ်ခု ဖဌစ်ပေါ်ပဌီသ စိတ်ကဌိုက် script သို့မဟုတ် binary တစ်ခုသို့ စာရင်သသလင်သထာသသည့်အခါ ၎င်သကို run ပဌီသ က binary အတလက် stdin သို့ JSON ကို ပေသပို့သည်။ ထို့ကဌောင့် သင့်ပရိုဂရမ်သည် ၎င်သကို ခလဲခဌမ်သစိတ်ဖဌာရပါမည်။ က JSON နဟင့် သင်လုပ်ဆောင်မည့်အရာသည် သင့်အတလက်ဖဌစ်သည်။ လိုချင်ရင် Telegram ကို ပို့ပါ၊ လိုချင်ရင် Jira မဟာ အလုပ်တလေကို ဖလင့်ပါ၊ ဘာပဲလုပ်လုပ် လုပ်ပါ။

သတိပေသချက်အတလက် ကျလန်ုပ်တို့၏ကိုယ်ပိုင်ဖလံ့ဖဌိုသတိုသတက်မဟုကိုလည်သ အသုံသပဌုသည် - Imagotag။ ကျလန်ုပ်တို့၏လိုအပ်ချက်မျာသနဟင့်ကိုက်ညီစေရန် စတိုသဆိုင်မျာသတလင် အီလက်ထရလန်သနစ်စျေသနဟုန်သတက်ဂ်မျာသအတလက် အမျာသအာသဖဌင့်အသုံသပဌုသည့် panel ကို ကျလန်ုပ်တို့ ပဌုပဌင်ပဌောင်သလဲထာသပါသည်။ Moira မဟ အစပျိုသချက်မျာသကို ကျလန်ုပ်တို့ ယူဆောင်လာခဲ့ပါသည်။ ၎င်သတို့သည် မည်သည့်အခဌေအနေနဟင့် ဖဌစ်ပလာသခဲ့ကဌောင်သကို ဖော်ပဌသည်။ ဖလံ့ဖဌိုသတိုသတက်မဟု ယောက်ျာသလေသအချို့သည် ကအကန့်၏မျက်နဟာသာဖဌင့် Slack တလင် အကဌောင်သကဌာသချက်မျာသကို စလန့်ပစ်ခဲ့သည်။

ဝန်ဆောင်မဟုတစ်ခုအနေဖဌင့် စောင့်ကဌည့်ခဌင်သ- မိုက်ခရိုဝန်ဆောင်မဟုဗိသုကာအတလက် မော်ဂျူလာစနစ်

ကောင်သပဌီ၊ ကျလန်ုပ်တို့သည် တိုသတက်သော ကုမ္ပဏီဖဌစ်သောကဌောင့်၊ ကျလန်ုပ်တို့သည် ကစနစ်တလင် Kubernetes ကို စောင့်ကဌည့်ခဲ့သည်။ အစုအဝေသတလင် ထည့်သလင်သထာသသည့် Heapster ကို အသုံသပဌု၍ ၎င်သကို ဒေတာစုဆောင်သပဌီသ Graphite သို့ ပေသပို့ပါသည်။ ရလဒ်အနေဖဌင့် ပုံကဌမ်သသည် ကကဲ့သို့ဖဌစ်သည်-

ဝန်ဆောင်မဟုတစ်ခုအနေဖဌင့် စောင့်ကဌည့်ခဌင်သ- မိုက်ခရိုဝန်ဆောင်မဟုဗိသုကာအတလက် မော်ဂျူလာစနစ်

စောင့်ကဌည့်ရေသ အစိတ်အပိုင်သမျာသ

ကအလုပ်အတလက် ကျလန်ုပ်တို့အသုံသပဌုခဲ့သည့် အစိတ်အပိုင်သမျာသသို့ လင့်ခ်မျာသစာရင်သတစ်ခုဖဌစ်သည်။ ၎င်သတို့အာသလုံသသည် open source မျာသဖဌစ်သည်။

ဖိုက်၊

ကာဗလန်-ဂ-ထပ်ဆင့်-

github.com/grobian/carbon-c-relay

Brubeck-

github.com/github/brubeck

စုဆောင်သထာသသည်-

collection.org

Moira

github.com/moira-alert

Grafana-

grafana.com

အမဟိုက်ပုံ-

github.com/kubernetes/heapster

စာရင်သအင်သ

ကသည်မဟာ ကျလန်ုပ်တို့အတလက် စနစ်အလုပ်လုပ်ပုံနဟင့်ပတ်သက်သော နံပါတ်အချို့ဖဌစ်သည်။

စုစည်သမဟု (ဘရူဘက်ခ်)

တိုင်သတာမဟုအရေအတလက်- ~300/sec
Graphite သို့ မက်ထရစ်မျာသ ပေသပို့ခဌင်သအတလက် ကဌာသကာလ- 30 စက္ကန့်
ဆာဗာအရင်သအမဌစ်အသုံသပဌုမဟု- ~ 6% CPU (ကျလန်ုပ်တို့သည်ပဌည့်စုံသောဆာဗာမျာသအကဌောင်သပဌောနေသည်); ~ 1Gb RAM; ~3 Mbps LAN

ဂရပ်ဖိုက် (ကာဗလန်)

မက်ထရစ်အရေအတလက်- ~ 1 / မိနစ်
မက်ထရစ်မျာသ အပ်ဒိတ်ကဌာသကာလ- 30 စက္ကန့်
မက်ထရစ် သိုလဟောင်မဟု အစီအစဉ်- 30sec 35d၊ 5min 90d၊ 10min 365d (အချိန်ကဌာမဌင့်စလာ ဝန်ဆောင်မဟုတလင် ဖဌစ်ပျက်နေသည်ကို သင့်အာသ နာသလည်မဟုပေသသည်)
ဆာဗာအရင်သအမဌစ်အသုံသပဌုမဟု- ~10% CPU; ~ 20Gb RAM; ~30 Mbps LAN

ပဌောင်သလလယ်ပဌင်လလယ်

ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ စောင့်ကဌည့်ရေသဝန်ဆောင်မဟုတလင် လိုက်လျောညီထလေရဟိမဟုကို အမဟန်တကယ်တန်ဖိုသထာသပါသည်။ သူဘာကဌောင့် ဒီလိုမျိုသ တကယ်ဖဌစ်လာတာလဲ။ ပထမညသစလာ၊ ၎င်သ၏ အစိတ်အပိုင်သမျာသသည် အပဌန်အလဟန် ဖလဟယ်နိုင်သည်- အစိတ်အပိုင်သမျာသ ကိုယ်တိုင်နဟင့် ၎င်သတို့၏ ဗာသရဟင်သမျာသ နဟစ်မျိုသလုံသ။ ဒုတိယအနေနဲ့၊ ပံ့ပိုသမဟု။ ပရောဂျက်တစ်ခုလုံသသည် open source ဖဌစ်သောကဌောင့်၊ သင်သည် ကုဒ်ကို သင်ကိုယ်တိုင်တည်သဖဌတ်နိုင်သည်၊ အပဌောင်သအလဲမျာသပဌုလုပ်ကာ ကလက်လပ်အပဌင်တလင် မရရဟိနိုင်သောလုပ်ဆောင်ချက်မျာသကို အကောင်အထည်ဖေါ်နိုင်ပါသည်။ အသုံသမျာသသော stacks မျာသကို အဓိကအာသဖဌင့် Go နဟင့် Python တို့ကို အသုံသပဌုထာသသောကဌောင့် ၎င်သကို ရိုသရိုသရဟင်သရဟင်သ လုပ်ဆောင်သည်။

ဒါက တကယ့်ပဌဿနာရဲ့ ဥပမာတစ်ခုပါ။ Graphite ရဟိ မက်ထရစ်သည် ဖိုင်တစ်ခုဖဌစ်သည်။ နာမည်တစ်ခုရဟိတယ်။ ဖိုင်အမည် = မက်ထရစ်အမည်။ ပဌီသတော့ အဲဒီကိုရောက်ဖို့ နည်သလမ်သရဟိတယ်။ Linux ရဟိ ဖိုင်အမည်မျာသကို စာလုံသ 255 လုံသသာ ကန့်သတ်ထာသပါသည်။ ပဌီသတော့ ကျလန်တော်တို့မဟာ (“ပဌည်တလင်သဖောက်သည်မျာသ” အဖဌစ်) ဒေတာဘေ့စ်ဌာနက ယောက်ျာသလေသတလေရဟိတယ်။ သူတို့က "ကျလန်ုပ်တို့သည်ကျလန်ုပ်တို့၏ SQL မေသမဌန်သမဟုမျာသကိုစောင့်ကဌည့်လိုပါသည်။ ၎င်သတို့သည် စာလုံသ 255 လုံသမဟုတ်သော်လည်သ တစ်ခုစီတလင် 8 MB ရဟိသည်။ ကျလန်ုပ်တို့သည် ၎င်သတို့ကို Grafana တလင်ပဌသလိုသည်၊ ကတောင်သဆိုချက်အတလက် ကန့်သတ်ချက်မျာသကိုကဌည့်ပါ၊ ပိုကောင်သသည်မဟာ၊ ထိုသို့သောတောင်သဆိုမဟုမျာသ၏ထိပ်ပိုင်သကို မဌင်တလေ့လိုပါသည်။ အချိန်နဟင့်တပဌေသညီပဌသမည်ဆိုပါက အလလန်ကောင်သမလန်ပါသည်။ သူတို့ကိုသတိပေသချက်ထဲထည့်လိုက်တာက တကယ်ကိုမိုက်ပါတယ်။”

ဝန်ဆောင်မဟုတစ်ခုအနေဖဌင့် စောင့်ကဌည့်ခဌင်သ- မိုက်ခရိုဝန်ဆောင်မဟုဗိသုကာအတလက် မော်ဂျူလာစနစ်
ဥပမာ SQL query ကို နမူနာအဖဌစ် ယူသည်။ postgrespro.ru ဆိုက်

ကျလန်ုပ်တို့သည် Redis ဆာဗာကို တည်ဆောက်ပဌီသ Postgres သို့သလာသကာ ဒေတာအာသလုံသကို ယူကာ Graphite သို့ မက်ထရစ်မျာသပေသပို့သည့် ကျလန်ုပ်တို့၏စုဆောင်သထာသသော ပလပ်အင်မျာသကို အသုံသပဌုပါသည်။ သို့သော် ကျလန်ုပ်တို့သည် မက်ထရစ်အမည်ကို ဟက်ကာမျာသဖဌင့် အစာသထိုသသည်။ ကျလန်ုပ်တို့သည် တူညီသော hash ကို သော့တစ်ခုအဖဌစ် Redis သို့ တစ်ပဌိုင်နက် ပေသပို့ပဌီသ SQL Query တစ်ခုလုံသကို တန်ဖိုသတစ်ခုအဖဌစ် ပေသပို့ပါသည်။ ကျလန်ုပ်တို့လုပ်ရမည့်အရာမဟာ Grafana သည် Redis သို့သလာသ၍ ကအချက်အလက်ကိုယူနိုင်စေရန် သေချာအောင်လုပ်ပါ။ ကျလန်ုပ်တို့သည် Graphite API ကိုဖလင့်နေသောကဌောင့်... ၎င်သသည် ဂရပ်ဖိုက်ဖဌင့် စောင့်ကဌည့်စစ်ဆေသသည့် အစိတ်အပိုင်သအာသလုံသ၏ အပဌန်အလဟန်ဆက်ဆံရေသအတလက် ပင်မအင်တာဖေ့စ်ဖဌစ်ပဌီသ၊ ကျလန်ုပ်တို့သည် ထိုနေရာတလင် aliasByHash() ဟုခေါ်သော လုပ်ဆောင်ချက်အသစ်တစ်ခုကို ထည့်သလင်သပါ - Grafana မဟ ကျလန်ုပ်တို့သည် မက်ထရစ်၏အမည်ကိုရရဟိကာ Redis ကို သော့တစ်ခုအဖဌစ် တောင်သဆိုမဟုတလင် ၎င်သကိုအသုံသပဌုကာ၊ ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ “SQL query” ဖဌစ်သည့် သော့၏တန်ဖိုသကို ကျလန်ုပ်တို့ ရရဟိပါသည်။ ထို့ကဌောင့်၊ ကျလန်ုပ်တို့သည် Grafana တလင် ကိန်သဂဏန်သမျာသ (ခေါ်ဆိုမဟုမျာသ၊ အတန်သမျာသ၊ စုစုပေါင်သ_အချိန်၊ ...) တို့နဟင့်အတူ ထိုနေရာတလင် ပဌသရန် မဖဌစ်နိုင်သော သီအိုရီအရ SQL query တစ်ခုအာသ ပဌသထာသသည်။

ရလဒ်မျာသကို

ရရဟိနိုင်။ ကျလန်ုပ်တို့၏စောင့်ကဌည့်ရေသဝန်ဆောင်မဟုသည် မည်သည့်အက်ပ်နဟင့်မဆို ကုဒ်မဟ 24/7 ရရဟိနိုင်ပါသည်။ သင့်တလင် သိုလဟောင်ခန်သနေရာမျာသသို့ ဝင်ရောက်ခလင့်ရဟိပါက ဝန်ဆောင်မဟုသို့ ဒေတာမျာသ ရေသသာသနိုင်ပါသည်။ ဘာသာစကာသက အရေသမကဌီသဘူသ၊ ဆုံသဖဌတ်ချက်တလေက အရေသမကဌီသဘူသ။ socket ကိုဖလင့်နည်သ၊ မက်ထရစ်တစ်ခုထည့်ကာ socket ကိုပိတ်နည်သကိုသင်သိရန်လိုအပ်သည်။

ယုံကဌည်စိတ်ချရ။ အစိတ်အပိုင်သအာသလုံသသည် အမဟာသအယလင်သခံနိုင်ရည်ရဟိပဌီသ ကျလန်ုပ်တို့၏ဝန်မျာသကို ကောင်သမလန်စလာကိုင်တလယ်နိုင်သည်။

ဝင်ရောက်ရန် အတာသအဆီသနည်သပါသသည်။ ကစနစ်ကိုအသုံသပဌုရန်အတလက်၊ သင်သည် Grafana တလင် ပရိုဂရမ်သမင်သဘာသာစကာသမျာသနဟင့် မေသမဌန်သချက်မျာသကို သင်ယူရန်မလိုအပ်ပါ။ သင်၏ အက်ပ်လီကေသရဟင်သကိုဖလင့်ပါ၊ Graphite သို့ မက်ထရစ်မျာသပေသပို့မည့် ပေါက်ပေါက်တစ်ခုထည့်ပါ၊ ၎င်သကိုပိတ်ပါ၊ Grafana ကိုဖလင့်ပါ၊ ထိုနေရာတလင် ဒက်ရဟ်ဘုတ်မျာသဖန်တီသကာ သင့်မက်ထရစ်မျာသ၏အပဌုအမူကိုကဌည့်ကာ Moira မဟတစ်ဆင့် အကဌောင်သကဌာသချက်မျာသကို လက်ခံရရဟိမည်ဖဌစ်သည်။

လလတ်လပ်ရေသရတယ်။ DevOps အင်ဂျင်နီယာမျာသ၏အကူအညီမပါဘဲ သင်ကိုယ်တိုင်လုပ်ဆောင်နိုင်ပါသည်။ ၎င်သသည် သင့်ပရောဂျက်ကို ယခုပင် စောင့်ကဌည့်နိုင်သောကဌောင့်၊ အလုပ်စရန် သို့မဟုတ် အပဌောင်သအလဲမျာသပဌုလုပ်ရန် မည်သူ့ကိုမျဟ မေသမဌန်သရန် မလိုအပ်ပါ။

ငါတို့ ဘာကို ရည်ရလယ်တာလဲ။

အောက်တလင်ဖော်ပဌထာသသောအရာအာသလုံသသည် စိတ်ကူသယဉ်အတလေသမျာသသာမဟုတ်၊ အနည်သဆုံသပထမခဌေလဟမ်သမျာသလုပ်ဆောင်ခဲ့သောအရာတစ်ခုဖဌစ်သည်။

  1. ကလဲလလဲနေသော ထောက်လဟမ်သကိရိယာ။ ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ Graphite သိုလဟောင်ခန်သမျာသသို့သလာသပဌီသ အမျိုသမျိုသသော algorithms ကိုအသုံသပဌု၍ မက်ထရစ်တစ်ခုစီကို စစ်ဆေသပေသမည့် ဝန်ဆောင်မဟုတစ်ခုကို ဖန်တီသလိုပါသည်။ ကျလန်ုပ်တို့ကဌည့်ရဟုလိုသော algorithms မျာသရဟိပဌီသ၊ ဒေတာရဟိပါသည်၊ ၎င်သနဟင့်မည်သို့အလုပ်လုပ်ရမည်ကိုကျလန်ုပ်တို့သိပါသည်။
  2. မက်တာဒေတာ။ ကျလန်ုပ်တို့တလင် ဝန်ဆောင်မဟုမျာသစလာရဟိပါသည်၊ ၎င်သတို့နဟင့်အလုပ်လုပ်သောသူမျာသကဲ့သို့ အချိန်နဟင့်အမျဟ ပဌောင်သလဲပါသည်။ စာရလက်စာတမ်သမျာသကို ကိုယ်တိုင်အမဌဲတမ်သထိန်သသိမ်သခဌင်သသည် ရလေသချယ်စရာမဟုတ်ပါ။ ထို့ကဌောင့် ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ မိုက်ခရိုဝန်ဆောင်မဟုမျာသထဲသို့ မက်တာဒေတာကို မဌဟုပ်နဟံထာသပါသည်။ ၎င်သကို မည်သူတီထလင်သနည်သ၊ ၎င်သနဟင့် တုံ့ပဌန်နိုင်သော ဘာသာစကာသမျာသ၊ SLA လိုအပ်ချက်မျာသ၊ အကဌောင်သကဌာသချက်မျာသကို မည်သည့်နေရာနဟင့် မည်သူထံသို့ ပေသပို့သင့်သည်ဟု ဖော်ပဌထာသသည်။ ဝန်ဆောင်မဟုတစ်ခုအာသ အသုံသချသည့်အခါ၊ အချက်အလက်အာသလုံသကို သီသခဌာသလလတ်လပ်စလာ ဖန်တီသထာသသည်။ ရလဒ်အနေဖဌင့်၊ တစ်ခုသည် အစပျိုသရန်၊ အခဌာသတစ်ခုသည် Grafana ရဟိ ဒက်ရဟ်ဘုတ်မျာသသို့ လင့်ခ်နဟစ်ခုကို သင်ရရဟိမည်ဖဌစ်သည်။
  3. အိမ်တိုင်သတလင်စောင့်ကဌည့်။ developer မျာသအာသလုံသ ထိုကဲ့သို့သောစနစ်ကို အသုံသပဌုသင့်သည်ဟု ကျလန်ုပ်တို့ယုံကဌည်ပါသည်။ ကကိစ္စတလင်၊ သင်၏အသလာသအလာသည် အဘယ်မဟာရဟိသနည်သ၊ ၎င်သသည် အဘယ်အရာဖဌစ်သနည်သ၊ မည်သည့်နေရာတလင် ကျရောက်သည်၊ ၎င်သ၏ အာသနည်သချက်မျာသရဟိသည်ကို သင်အမဌဲနာသလည်သည်။ ဥပမာအာသဖဌင့်၊ တစ်ခုခုရောက်လာပဌီသ သင့်ဝန်ဆောင်မဟုပျက်သလာသပါက၊ မန်နေဂျာထံမဟ ဖုန်သခေါ်ဆိုစဉ်တလင်မဟုတ်ဘဲ သတိပေသချက်တစ်ခုမဟ ၎င်သအကဌောင်သကို သင်လေ့လာနိုင်မည်ဖဌစ်ပဌီသ၊ နောက်ဆုံသပေါ်မဟတ်တမ်သမျာသကို သင်ချက်ချင်သဖလင့်ပဌီသ ထိုနေရာတလင် ဖဌစ်ပျက်ခဲ့သည်မျာသကို ကဌည့်ရဟုနိုင်ပါသည်။
  4. မဌင့်မာသသောစလမ်သဆောင်ရည်။ ကျလန်ုပ်တို့၏ပရောဂျက်သည် အဆက်မပဌတ်ကဌီသထလာသနေပဌီသ ယနေ့တလင် တစ်မိနစ်လျဟင် မက်ထရစ်တန်ဖိုသ 2 ခန့်ကို လုပ်ဆောင်ပါသည်။ လလန်ခဲ့သောတစ်နဟစ်က၊ ကကိန်သဂဏန်သသည် 000 ဖဌစ်သည်။ ကဌီသထလာသမဟုဆက်လက်ဖဌစ်ပေါ်နေပဌီသ၊ ဆိုလိုသည်မဟာ အချိန်အနည်သငယ်ကဌာပဌီသနောက် Graphite (တိုသတိုသ) သည် disk subsystem ကို ကဌီသကဌီသမာသမာသတင်ဆောင်လာမည်ဖဌစ်သည်။ ငါပဌောခဲ့သည့်အတိုင်သ၊ ကစောင့်ကဌည့်ရေသစနစ်သည် အစိတ်အပိုင်သမျာသ အပဌန်အလဟန်လဲလဟယ်နိုင်ခဌင်သကဌောင့် အလလန်အသုံသမျာသသည်။ တစ်စုံတစ်ယောက်သည် Graphite အတလက် အထူသသဖဌင့် ၎င်သတို့၏ အခဌေခံအဆောက်အညမျာသကို ထိန်သသိမ်သပဌီသ အဆက်မပဌတ် ချဲ့ထလင်နေသော်လည်သ ကျလန်ုပ်တို့သည် မတူညီသော လမ်သကဌောင်သတစ်ခုကို သလာသရန် ဆုံသဖဌတ်ခဲ့သည်- အသုံသပဌုပါ။ အိမ်ကိုနဟိပ်ပါ ကျလန်ုပ်တို့၏ တိုင်သတာမဟုမျာသအတလက် သိုလဟောင်မဟုတစ်ခုအဖဌစ်။ ကအကူသအပဌောင်သသည် ပဌီသလုနီသပါသဖဌစ်ပဌီသ၊ မည်သို့လုပ်ဆောင်ခဲ့သည်ကို မကဌာမီတလင် ကျလန်ုပ်အသေသစိတ်ပဌောပဌပါမည်- မည်သို့သောအခက်အခဲမျာသနဟင့် ၎င်သတို့ကျော်ဖဌတ်ခဲ့ပုံ၊ ရလဟေ့ပဌောင်သခဌင်သလုပ်ငန်သစဉ် မည်သို့ဆောင်ရလက်ခဲ့သည်၊ စည်သနဟောင်မဟုအဖဌစ် ရလေသချယ်ထာသသော အစိတ်အပိုင်သမျာသနဟင့် ၎င်သတို့၏ဖလဲ့စည်သပုံမျာသကို ဖော်ပဌပါမည်။

ဂရုစိုက်တဲ့အတလက်ကျေသဇူသတင်ပါတယ်! ခေါင်သစဉ်နဟင့်ပတ်သက်သော သင့်မေသခလန်သမျာသကို မေသပါ၊ ကနေရာတလင် သို့မဟုတ် အောက်ပါပို့စ်မျာသတလင် ဖဌေရန်ကဌိုသစာသပါမည်။ တစ်စုံတစ်ညသသည် အလာသတူစောင့်ကဌည့်ရေသစနစ်ကို တည်ဆောက်ခဌင်သ သို့မဟုတ် အလာသတူအခဌေအနေမျိုသတလင် Clickhouse သို့ပဌောင်သခဌင်သ အတလေ့အကဌုံရဟိနိုင်သည် - ၎င်သကို မဟတ်ချက်မျာသတလင် မျဟဝေပါ။

source: www.habr.com

မဟတ်ချက် Add