JavaScript ဖဌင့်ရေသသာသထာသသော Front-End အပလီကေသရဟင်သမျာသတလင် Sentry ဖဌင့် အမဟာသမျာသကို စောင့်ကဌည့်ခဌင်သ- အပိုင်သ 1

ဝန်ဆောင်မဟု ကင်သစောင့် ရေသထာသတဲ့ front-end applications တလေမဟာ bug တလေကို အဝေသကနေ စောင့်ကဌည့်နိုင်စေတယ်။ JavaScript ကို.

JavaScript ဖဌင့်ရေသသာသထာသသော Front-End အပလီကေသရဟင်သမျာသတလင် Sentry ဖဌင့် အမဟာသမျာသကို စောင့်ကဌည့်ခဌင်သ- အပိုင်သ 1

Front-end အပလီကေသရဟင်သမျာသတလင် ပဌဿနာမျာသကို ဖဌေရဟင်သရန် ကဌိုသစာသနေပါသည်။ JavaScript ကို သင်မကဌာခဏဝင်ရောက်ခလင့်မရဟိသောအသုံသပဌုသူ၏ဘရောက်ဆာမဟအစပဌုသောကဌောင့်ရဟုပ်ထလေသနိုင်သည်။ သို့သော်၊ ကင်သစောင့် bug မျာသကို အဝေသမဟ စောင့်ကဌည့်ရန် ဖဌစ်နိုင်သည်။

ဒါဟာဖဌစ်ပါတယ် ကဆောင်သပါသတလင် ဆလေသနလေသထာသသော ဖဌေရဟင်သချက်မျာသကို သင်ဒေါင်သလုဒ်လုပ်နိုင်ပါသည်။

ဘာလိုအပ်တယ်

ကဥပမာမျာသကိုအသုံသပဌုလိုပါက၊ သင်လိုအပ်လိမ့်မည်-

  • Node.js: အပလီကေသရဟင်သ၏အစိတ်အပိုင်သမဟုတ်သော အင်္ဂါရပ်ကဌလယ်ဝသော ဖလံ့ဖဌိုသတိုသတက်ရေသတူသလ်။ ကျလန်ုပ်တို့သည် နောက်ဆုံသထလက် LTS ဗာသရဟင်သ (8.12.0) ကို ဒေါင်သလုဒ်လုပ်ထာသပါသည်။
  • ကင်သစောင့်- Sentry ဝန်ဆောင်မဟုတလင် အကောင့်တစ်ခု (သင် တစ်လလျဟင် ချို့ယလင်သချက် 10 အထိ အခမဲ့ မဟတ်တမ်သတင်နိုင်သည်) သို့မဟုတ် ထည့်သလင်သထာသသော ဒေသဆိုင်ရာ Sentry - https://github.com/getsentry/onpremise

သင်၏ဆာဗာတလင်ထည့်သလင်သခဌင်သ။

Sentry On-Premise ကို သင့်ဆာဗာတလင် ထည့်သလင်သရန် နည်သလမ်သ ၂ သလယ်ဖဌင့် သလာသနိုင်သည်။

  1. rpm ကိုတည်ဆောက်ပဌီသ၎င်သတို့ကိုထည့်သလင်သပါ - https://habr.com/ru/post/500632/

  2. တရာသဝင်ထည့်သလင်သမဟုကို အသုံသပဌုပါ-

    УстаМПвОть Ма сервер docker О docker-compose
    git clone https://github.com/getsentry/onpremise.git
    ./install.sh

စံချိန်မီအသုံသပဌုမဟု

စတင်ရန် ဝန်ဆောင်မဟုဝဘ်ဆိုဒ်မဟ အသစ်တစ်ခုကို ထည့်ပါ။ ကင်သစောင့်- လျဟောက်လလဟာအတလက်စီမံကိန်သ။ လိုချင်သောဘာသာစကာသကို ရလေသချယ်ပဌီသနောက်၊ သက်ဆိုင်သောစာရလက်စာတမ်သမျာသကို သင်ရရဟိမည်ဖဌစ်သည်။ ငါတို့ကိစ္စမဟာ ငါတို့ရလေသတယ်။ JavaScript ကို.

ပထမဥပမာက စံပါ။ JavaScript ကို. ကနေရာတလင် ခလုတ်နဟစ်ခုရဟိသည်။ "ဟယ်လို" (မင်္ဂလာပါ) နဟင့် "အမဟာသ" (အမဟာသ)။

ခလုတ်ကိုနဟိပ်ပဌီသနောက် "ဟယ်လို"မျက်နဟာပဌင်သည် ပဌန်လည်စတင်လာပဌီသ ပိတ်ဆို့သလာသမည်ဖဌစ်သည်။ ကဌိုသစာသ bug ကိုရဟာဖလေပဌီသဖမ်သပါလိမ့်မယ်။ ချလတ်ယလင်သချက်ကို "ဖမ်သမိ" ပဌီသနောက်၊ အမဟာသအယလင်သအစီရင်ခံစာကို ဝန်ဆောင်မဟုသို့ ကိုယ်တိုင်ပေသပို့သည်။ ကင်သစောင့်.

“Error” ခလုတ်သည် သင့်အာသ bug တစ်ခုကို အလလယ်တကူ ရဟာဖလေနိုင်စေပါသည်။

vanilla/index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Vanilla</title>
</head>
<body>
  <button id="hello">Hello</button>
  <button id="error">Error</button>
  <div id="output"></div>
  <script src="https://browser.sentry-cdn.com/4.0.5/bundle.min.js" crossorigin="anonymous"></script>
  <script>
    (function () {
      'use strict';
      Sentry.init({ dsn: 'https://[email protected]/1289664' });
      var helloEl = document.getElementById('hello');
      var errorEl = document.getElementById('error');
      var outputEl = document.getElementById('output');
      helloEl.addEventListener('click', handleHelloClick);
      errorEl.addEventListener('click', handleErrorClick);
      function handleHelloClick() {
        outputEl.innerHTML = 'Hello World';
        try {
          throw new Error('Caught');
        } catch (err) {
          Sentry.captureException(err);
        }
      }
      function handleErrorClick() {
        throw new Error('Uncaught');
      }
    })();
  </script>
</body>
</html>

မဟတ်ချက်တလေ:

  • Sentry ကို CDN တစ်ခုမဟ တပ်ဆင်ပဌီသ global variable အဖဌစ် ဖော်ထုတ်ထာသသည်။
  • အစောပိုင်သက ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ JavaScript တလင် Sentry ကို စတင်ခဲ့သည်။

ကဥပမာကို စမ်သသပ်ရန်၊ ကျလန်ုပ်တို့သည် တည်ငဌိမ်သော ဝဘ်ဆာဗာ ပလပ်ဖောင်သကို အသုံသပဌုနိုင်သည်။ Node.js: http server. ဖိုင်သိမ်သထာသသည့် ဖိုဒါသို့သလာသပါ။ index.htmlနဟင့် ဘရောက်ဆာတလင် လိပ်စာကိုဖလင့်ရန် အောက်ပါစာကဌောင်သကို (option with disables caching) ရိုက်ထည့်ပါ။ http://localhost:8080.

မည်ကဲ့သို့ ပိုသကောင်မျာသ ဖမ်သမိသည်ကို ဖော်ပဌသည်။

ပထမဆုံသ ခလုတ်ကိုနဟိပ်ပါ။ "ဟယ်လို".

JavaScript ဖဌင့်ရေသသာသထာသသော Front-End အပလီကေသရဟင်သမျာသတလင် Sentry ဖဌင့် အမဟာသမျာသကို စောင့်ကဌည့်ခဌင်သ- အပိုင်သ 1

ကျလန်ုပ်တို့သည် ချလတ်ယလင်သချက်တစ်ခုကို ဖမ်သမိသောကဌောင့် ၎င်သသည် ခေါ်ဆိုမဟုအစုအဝေသတလင် ပေါ်လာမည်မဟုတ်သောကဌောင့် ကလန်ဆိုသလ်တလင် စောင့်ကဌည့်မနေပါ။ ဒါပေမယ့် ကျနော်တို့က စပဌီသ ပေသလိုက်တာ။ ကင်သစောင့် ချို့ယလင်သချက်တစ်ခုကို ကိုယ်တိုင်သတင်သပို့ပါ၊ သင့်အကောင့်တလင် ၎င်သနဟင့်ပတ်သက်သည့် မက်ဆေ့ချ်တစ်ခုကို ကျလန်ုပ်တို့တလေ့ရပါမည်။

JavaScript ဖဌင့်ရေသသာသထာသသော Front-End အပလီကေသရဟင်သမျာသတလင် Sentry ဖဌင့် အမဟာသမျာသကို စောင့်ကဌည့်ခဌင်သ- အပိုင်သ 1

မဟတ်ချက်တလေ:

  • ဘယ်စာကဌောင်သ (24) မဟာ bug ပါတယ်ဆိုတာကို ခဌေရာခံနိုင်ပါတယ်။
  • ထို့အပဌင်၊ breadcrumb trail သည် error ဖဌစ်စေသော browser လုပ်ဆောင်ချက်မျာသကို ပဌသသည်။

ဖမ်သမမိသော ပိုသကောင်မျာသကို မည်သို့ပဌသမည်နည်သ။

ခလုတ်ကိုနဟိပ်ပါ။ "အမဟာသ"

JavaScript ဖဌင့်ရေသသာသထာသသော Front-End အပလီကေသရဟင်သမျာသတလင် Sentry ဖဌင့် အမဟာသမျာသကို စောင့်ကဌည့်ခဌင်သ- အပိုင်သ 1

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

JavaScript ဖဌင့်ရေသသာသထာသသော Front-End အပလီကေသရဟင်သမျာသတလင် Sentry ဖဌင့် အမဟာသမျာသကို စောင့်ကဌည့်ခဌင်သ- အပိုင်သ 1

မဟတ်ချက်တလေ:

  • ဘယ်စာကဌောင်သ (30) မဟာ bug ပျောက်သလာသတာကို တလေ့နိုင်တယ်။
  • ပေါင်မုန့်အတက်အဆင်သလမ်သ မရဟိဘူသ (ဘာလို့လဲ နာသမလည်ဘူသ)

ပရောဂျက်လုံခဌုံရေသကို ဘယ်လိုအာမခံမလဲ။

ကျလန်ုပ်တို့၏ပရောဂျက်အတလက် အမဟာသအယလင်သမျာသကို သတင်သပို့နိုင်သည့် စာမျက်နဟာမျာသကို ထိန်သချုပ်နည်သကို သင်သတိပဌုမိပေမည်။ ကင်သစောင့်; အကူအညီဖဌင့် dsn မဟတ်တမ်သမျာသ ပဌဿနာမဟာ သင့်စာမျက်နဟာ၏ အရင်သအမဌစ်ကုဒ်ကို ကဌည့်ရဟုသူတိုင်သက ထည့်သလင်သမဟုကို မဌင်နိုင်သောကဌောင့် ဖဌစ်သည်။

ယင်သကိုရဟောင်ရဟာသရန်၊ ကျလန်ုပ်တို့၏ပရောဂျက်သို့ အမဟာသအယလင်သအစီရင်ခံချက်မျာသကို တင်သလင်သနိုင်သည့် ဒိုမိန်သအရေအတလက်ကို ကန့်သတ်ရန် လိုအပ်သည်။ ကဥပမာတလင်ကျလန်ုပ်တို့အသုံသပဌုခဲ့သည်။ localhost (ပဌည်တလင်သအိမ်ရဟင်)။ ကရလေသချယ်မဟုကို ဆက်တင်မျာသတက်ဘ်တလင် စီစဉ်သတ်မဟတ်ထာသသည်။ ကင်သစောင့်- ပရောဂျက်၊ Sentry Project Setting.

JavaScript ဖဌင့်ရေသသာသထာသသော Front-End အပလီကေသရဟင်သမျာသတလင် Sentry ဖဌင့် အမဟာသမျာသကို စောင့်ကဌည့်ခဌင်သ- အပိုင်သ 1

ထုတ်ဝေသည်။

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

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

ပဌဿနာကိုဖဌေရဟင်သရန်၊ သင်သည် identifier ကိုထည့်သလင်သရန်လိုအပ်သည်။ လလဟတ်ပေသ စတင်ချိန်တလင် (ဗာသရဟင်သမျာသ) ကင်သစောင့်.

vanilla/index.html

...
var RELEASE = '0.1.0';
Sentry.init({
  dsn: 'https://[email protected]/1289664',
  release: RELEASE,
});
...

၎င်သပဌီသနောက်၊ အမဟာသအယလင်သအာသလုံသကို အသစ်အဖဌစ် အမဟတ်အသာသပဌုပါမည်။ ထုတ်ဝေမဟု (0.1.0)ဆိုလိုသည်မဟာ၊ ၎င်သတို့သည် ကုဒ်၏ မဟန်ကန်သောဗာသရဟင်သနဟင့် ချိတ်ဆက်မည်ဖဌစ်သည်။

JavaScript ဖဌင့်ရေသသာသထာသသော Front-End အပလီကေသရဟင်သမျာသတလင် Sentry ဖဌင့် အမဟာသမျာသကို စောင့်ကဌည့်ခဌင်သ- အပိုင်သ 1

မဟတ်ချက်တလေ:

  • ထုတ်ဝေမဟုမျာသကို အသုံသပဌုရန် ရိုသရဟင်သသောနည်သလမ်သကို ကျလန်ုပ်တို့ ရဟာဖလေတလေ့ရဟိထာသပါသည်။
  • Sentry က သင့်ကို ပိုသုံသနိုင်စေတယ်။ ရဟုပ်ထလေသသည်။ သူတို့၏ ၏အသုံသပဌုမဟုနဟင့် နီသကပ်စလာဆက်စပ်နေပါသည်။ GitHub. ကလုပ်ဆောင်ချက်သည် အချို့သောလုပ်ဆောင်ချက်မျာသကို မလုပ်ဆောင်မီ ချလတ်ယလင်သချက်မျာသကို ခဌေရာခံရန် ဖဌစ်နိုင်ချေရဟိသည်။

PS ဒုတိယအပိုင်သက ပိုရဟည်တာမို့ သီသခဌာသပို့စ်မဟာ ရေသပါမယ်။

PS Telegram chat Sentry https://t.me/sentry_ru

PS ဒီပို့စ်ကို ဘာသာပဌန်ထာသတာ ညလဟန်ဖို့ မေ့သလာသတယ်။ https://codeburst.io/sentry-error-reporting-by-example-part-1-999b2df11556

source: www.habr.com

မဟတ်ချက် Add