เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบเบฑเบš Sentry เปƒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Front-End เบ—เบตเปˆเบ‚เบฝเบ™เปƒเบ™ JavaScript: เบžเบฒเบเบ—เบต 1

เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™ เบ—เบฐเบซเบฒเบ™เป€เบฎเบทเบญ เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เปƒเบซเป‰โ€‹เบ—เปˆเบฒเบ™โ€‹เบซเปˆเบฒเบ‡โ€‹เป„เบโ€‹เบชเบญเบโ€‹เบซเบผเบตเบโ€‹เบ•เบดเบ”โ€‹เบ•เบฒเบก bug เปƒเบ™โ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹เบ—เบฒเบ‡โ€‹เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เบ‚เบฝเบ™โ€‹เป„เบงเป‰โ€‹เปƒเบ™โ€‹ JavaScript.

เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบเบฑเบš Sentry เปƒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Front-End เบ—เบตเปˆเบ‚เบฝเบ™เปƒเบ™ JavaScript: เบžเบฒเบเบ—เบต 1

เบžเบฐเบเบฒเบเบฒเบกเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเปƒเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบฒเบ‡เบซเบ™เป‰เบฒ JavaScript เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เป€เบฅเบทเปˆเบญเบ‡เบเบฒเบเป€เบžเบฒเบฐเบงเปˆเบฒเบžเบงเบเบกเบฑเบ™เบกเบฒเบˆเบฒเบเบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบšเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰, เบ—เบตเปˆเบ—เปˆเบฒเบ™เบกเบฑเบเบˆเบฐเบšเปเปˆเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡. เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก, เบ—เบฐเบซเบฒเบ™เป€เบฎเบทเบญ เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบกเบฑเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เป„เบ›โ€‹เป„เบ”เป‰โ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบ•เบดเบ”โ€‹เบ•เบฒเบกโ€‹เบเบงเบ”โ€‹เบเบฒโ€‹เบซเปˆเบฒเบ‡โ€‹เป„เบโ€‹เบชเบญเบโ€‹เบซเบผเบตเบโ€‹เบšเบฑเบโ€‹.

เบกเบฑเบ™เป€เบ›เบฑเบ™ เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ”เบฒเบงเป‚เบซเบฅเบ”เบงเบดเบ—เบตเปเบเป‰เป„เบ‚เบ—เบตเปˆเป„เบ”เป‰เบชเบปเบ™เบ—เบฐเบ™เบฒเปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰.

เบชเบดเปˆเบ‡เบ—เบตเปˆ เบˆเบณ เป€เบ›เบฑเบ™

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบŠเป‰เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰, เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡:

  • Nodejs: เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบžเบฑเบ”เบ—เบฐเบ™เบฒเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบญเบธเบ”เบปเบกเบชเบปเบกเบšเบนเบ™เบ—เบตเปˆเบšเปเปˆเปเบกเปˆเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ”เบฒเบงเป‚เบซเบผเบ” LTS เป€เบงเบตเบŠเบฑเบ™เบซเบผเป‰เบฒเบชเบธเบ” (8.12.0)
  • เบ—เบฐเบซเบฒเบ™เป€เบฎเบทเบญ: เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™เบšเบฑเบ™เบŠเบตเบขเบนเปˆเปƒเบ™เบšเปเบฅเบดเบเบฒเบ™ Sentry (เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบšเบฑเบ™เบ—เบถเบเป€เบ–เบดเบ‡ 10 เบžเบฑเบ™เปเบกเบ‡เป„เบกเป‰เบ•เปเปˆเป€เบ”เบทเบญเบ™เป„เบ”เป‰เบŸเบฃเบต) เบซเบผเบท Sentry เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ—เบตเปˆเบ•เบดเบ”เบ•เบฑเป‰เบ‡ - https://github.com/getsentry/onpremise

เบเบฒเบ™เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™

เป€เบžเบทเปˆเบญเบ•เบดเบ”เบ•เบฑเป‰เบ‡ Sentry On-Premise เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป„เบ›เป„เบ”เป‰ 2 เบงเบดเบ—เบต

  1. เบชเป‰เบฒเบ‡ rpm เปเบฅเบฐเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบžเบงเบเบกเบฑเบ™ - https://habr.com/ru/post/500632/

  2. เปƒเบŠเป‰เบ•เบปเบงเบ•เบดเบ”เบ•เบฑเป‰เบ‡เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™:

    ะฃัั‚ะฐะฝะพะฒะธั‚ัŒ ะฝะฐ ัะตั€ะฒะตั€ docker ะธ docker-compose
    git clone https://github.com/getsentry/onpremise.git
    ./install.sh

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™

เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เปƒเบซเป‰เป€เบžเบตเปˆเบกเบญเบฑเบ™เปƒเปเปˆเบˆเบฒเบเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบšเปเบฅเบดเบเบฒเบ™ เบ—เบฐเบซเบฒเบ™เป€เบฎเบทเบญ- เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบ„เปเบฒโ€‹เบฎเป‰เบญเบ‡โ€‹เบชเบฐโ€‹เบซเบกเบฑเบโ€‹. เบซเบผเบฑเบ‡เบˆเบฒเบเป€เบฅเบทเบญเบเบžเบฒเบชเบฒเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™, เบ—เปˆเบฒเบ™เบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเป€เบญเบเบฐเบชเบฒเบ™เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบทเบญเบ JavaScript.

เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เปเบฒเบญเบดเบ”เปเบกเปˆเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ JavaScript. เบกเบตเบชเบญเบ‡เบ›เบธเปˆเบกเบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰: "เบชเบฐเบšเบฒเบเบ”เบต" (เบชเบฐเบšเบฒเบเบ”เบต) เปเบฅเบฐ "เบœเบดเบ”เบžเบฒเบ”" (เบœเบดเบ”เบžเบฒเบ”).

เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ—เบตเปˆโ€‹เบ—เปˆเบฒเบ™โ€‹เบ„เบฅเบดเบโ€‹เปƒเบชเปˆโ€‹เบ›เบธเปˆเบกโ€‹ "เบชเบฐเบšเบฒเบเบ”เบต", เบซเบ™เป‰เบฒเบˆเปเบˆเบฐ reboot เปเบฅเบฐเบ•เบฑเบ™ เบžเบฐเบเบฒเบเบฒเบก เบˆเบฐเบเบงเบ”เบžเบปเบšเปเบฅเบฐเบˆเบฑเบšเปเบกเบ‡เป„เบกเป‰. เบซเบผเบฑเบ‡เบˆเบฒเบเปเบกเบ‡เป„เบกเป‰เบ–เบทเบ "เบˆเบฑเบšเป„เบ”เป‰", เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบšเปเบฅเบดเบเบฒเบ™เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡ เบ—เบฐเบซเบฒเบ™เป€เบฎเบทเบญ.

เบ›เบธเปˆเบก "เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”" เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเบงเบ”เบžเบปเบšเบ‚เปเป‰เบšเบปเบเบžเปˆเบญเบ‡เป„เบ”เป‰เบขเปˆเบฒเบ‡เบ‡เปˆเบฒเบเบ”เบฒเบ.

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 เปเบฅเบฐเป€เบ›เบตเบ”เป€เบœเบตเบเป€เบ›เบฑเบ™เบ•เบปเบงเปเบ›เบ—เบปเปˆเบงเป‚เบฅเบ
  • เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบ›เบตเบ”เบ•เบปเบง Sentry เปƒเบ™ JavaScript เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ

เป€เบžเบทเปˆเบญเบ—เบปเบ”เบชเบญเบšเบ•เบปเบงเบขเปˆเบฒเบ‡เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเป€เบŠเบตเบŸเป€เบงเบตเป€เบงเบฑเบšเปเบšเบšเบ„เบปเบ‡เบ—เบตเปˆ Nodejs: http server. เป„เบ›เบ—เบตเปˆเป‚เบŸเบ™เป€เบ”เบตเบ—เบตเปˆเป„เบŸเบฅเปŒเบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰ index.html, เปเบฅเบฐเปƒเบชเปˆ (เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เบดเบ”เบเบฒเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™) เปเบ–เบงเบ•เปเปˆเป„เบ›เบ™เบตเป‰เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบš http://localhost:8080.

เบงเบดเบ—เบตเบเบฒเบ™เบˆเบฑเบšเปเบกเบ‡เป„เบกเป‰เบ–เบทเบเบชเบฐเปเบ”เบ‡

เบ—เปเบฒเบญเบดเบ”เปƒเบซเป‰เบ„เบฅเบดเบเปƒเบชเปˆเบ›เบธเปˆเบก "เบชเบฐเบšเบฒเบเบ”เบต".

เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบเบฑเบš Sentry เปƒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Front-End เบ—เบตเปˆเบ‚เบฝเบ™เปƒเบ™ JavaScript: เบžเบฒเบเบ—เบต 1

เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป„เบ”เป‰โ€‹เบ•เบดเบ”โ€‹เบ•เบฑเป‰เบ‡โ€‹เบ‚เปเป‰โ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เป„เบ”เป‰โ€‹, เบชเบฐโ€‹เบ™เบฑเป‰เบ™โ€‹เบกเบฑเบ™โ€‹เบˆเบฐโ€‹เบšเปเปˆโ€‹เบ‚เบถเป‰เบ™โ€‹เป€เบ–เบดเบ‡ stack เบเบฒเบ™โ€‹เป‚เบ—โ€‹, เปเบฅเบฐโ€‹เบ”เบฑเปˆเบ‡โ€‹เบ™เบฑเป‰เบ™โ€‹เบˆเบถเปˆเบ‡โ€‹เบšเปเปˆโ€‹เป„เบ”เป‰โ€‹เบ•เบดเบ”โ€‹เบ•เบฒเบกโ€‹เบเบงเบ”โ€‹เบเบฒโ€‹เปƒเบ™ console เป„เบ”เป‰โ€‹. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบชเบปเปˆเบ‡เป„เบ› เบ—เบฐเบซเบฒเบ™เป€เบฎเบทเบญ เบฅเบฒเบเบ‡เบฒเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบซเบฑเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบเปˆเบฝเบงเบเบฑเบšเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบšเบฑเบ™เบŠเบตเบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบเบฑเบš Sentry เปƒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Front-End เบ—เบตเปˆเบ‚เบฝเบ™เปƒเบ™ JavaScript: เบžเบฒเบเบ—เบต 1

เบซเบกเบฒเบเป€เบซเบ”:

  • เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ•เบดเบ”โ€‹เบ•เบฒเบกโ€‹เบ—เบตเปˆโ€‹เป€เบชเบฑเป‰เบ™ (24โ€‹) เบกเบต bug เป„เบ”เป‰โ€‹
  • เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ breadcrumb เบชเบฐเปเบ”เบ‡เบเบฒเบ™เบเบฐเบ—เปเบฒเบ‚เบญเบ‡เบ•เบปเบงเบ—เปˆเบญเบ‡เป€เบงเบฑเบšเบ—เบตเปˆเบ™เปเบฒเป„เบ›เบชเบนเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”.

เปเบกเบ‡เป„เบกเป‰เบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบˆเบฑเบšเป„เบ”เป‰เบˆเบฐเบชเบฐเปเบ”เบ‡เปเบ™เบงเปƒเบ”

เบเบฒเบ™เบ„เบฅเบดเบเปƒเบชเปˆเบ›เบธเปˆเบก "เบœเบดเบ”เบžเบฒเบ”".

เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบเบฑเบš Sentry เปƒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Front-End เบ—เบตเปˆเบ‚เบฝเบ™เปƒเบ™ JavaScript: เบžเบฒเบเบ—เบต 1

bug bugs เป€เบ–เบดเบ‡ stack เบเบฒเบ™เป‚เบ—เบซเบฒเปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบกเบตเบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฐเปเบ”เบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปƒเบ™ console เป„เบ”เป‰. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบตเป‰, Sentry เบˆเบฐเบเบงเบ”เบชเบญเบšเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปƒเบ”เป†.

เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบเบฑเบš Sentry เปƒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Front-End เบ—เบตเปˆเบ‚เบฝเบ™เปƒเบ™ JavaScript: เบžเบฒเบเบ—เบต 1

เบซเบกเบฒเบเป€เบซเบ”:

  • เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบšเบดเปˆเบ‡โ€‹เบงเปˆเบฒโ€‹เปƒเบ™โ€‹เป€เบชเบฑเป‰เบ™ (30โ€‹) bug เป„เบ”เป‰โ€‹เบชเบนเบ™โ€‹เป€เบชเบโ€‹เป„เบ›โ€‹
  • เบšเปเปˆเบกเบตเป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡ breadcrumb (เบ‚เป‰เบญเบเบšเปเปˆเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒเป€เบ›เบฑเบ™เบซเบเบฑเบ‡)

เบงเบดเบ—เบตเบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™

เบ—เปˆเบฒเบ™เบญเบฒเบ”เบˆเบฐเป„เบ”เป‰เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ„เบงเบšเบ„เบธเบกเบงเปˆเบฒเบซเบ™เป‰เบฒเป€เบงเบฑเบšเปƒเบ”เบชเบฒเบกเบฒเบ”เบฅเบฒเบเบ‡เบฒเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เบเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ เบ—เบฐเบซเบฒเบ™เป€เบฎเบทเบญ; เบ”เป‰เบงเบเบ„เบงเบฒเบกเบŠเปˆเบงเบเป€เบซเบผเบทเบญ dsn เบšเบฑเบ™เบ—เบถเบ. เบšเบฑเบ™เบซเบฒเปเบกเปˆเบ™เบงเปˆเบฒเบเบฒเบ™เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰เป‚เบ”เบเบ—เบธเบเบ„เบปเบ™เบ—เบตเปˆเป€เบšเบดเปˆเบ‡เบฅเบฐเบซเบฑเบ”เปเบซเบผเปˆเบ‡เบ‚เบญเบ‡เบซเบ™เป‰เบฒเบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบˆเปเบฒเบเบฑเบ”เบˆเปเบฒเบ™เบงเบ™เป‚เบ”เป€เบกเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบฅเบฒเบเบ‡เบฒเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปƒเบซเป‰เบเบฑเบšเป‚เบ„เบ‡เบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. เปƒเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เปƒเบŠเป‰ localhost (เป€เบˆเบปเป‰เบฒเบžเบฒเบšเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™). เบ•เบปเบงเป€เบฅเบทเบญเบเบ™เบตเป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบ™เปเบ–เบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ เบ—เบฐเบซเบฒเบ™เป€เบฎเบทเบญ- เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹, เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป‚เบ„เบ‡เบเบฒเบ™ Sentry.

เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบเบฑเบš Sentry เปƒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Front-End เบ—เบตเปˆเบ‚เบฝเบ™เปƒเบ™ JavaScript: เบžเบฒเบเบ—เบต 1

เบเบฒเบ™เบ›เปˆเบญเบ

เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ„เบดเบ”เบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ เบ—เบฐเบซเบฒเบ™เป€เบฎเบทเบญ เปƒเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบปเบ™เป„เบเบ—เบตเปˆเบˆเบฐเบซเบกเบฒเบเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ—เบตเปˆเบกเบตเบˆเปเบฒเบ™เบงเบ™เบชเบฐเบšเบฑเบš.

เบซเบผเบฑเบ‡เบˆเบฒเบเบ—เบตเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”, เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ bug เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเปเบเป‰เป„เบ‚เบ›เบฒเบเบปเบ”เบ‚เบถเป‰เบ™เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡, เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบ„เบดเบ”เบงเปˆเบฒเบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเปเบเป‰เป„เบ‚เบšเปเปˆเป„เบ”เป‰เบœเบปเบ™. เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เป€เบ›เบตเบ”เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเป€เบเบปเปˆเบฒเบเบงเปˆเบฒ, เบขเบนเปˆเปƒเบ™เบ–เบฒเบ™เบ„เบงเบฒเบกเบˆเปเบฒ.

เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒ, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบชเปˆเบ•เบปเบงเบฅเบฐเบšเบธ เบ›เปˆเบญเบเบ•เบปเบง (เบฎเบธเปˆเบ™) เปƒเบ™เบ•เบญเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ เบ—เบฐเบซเบฒเบ™เป€เบฎเบทเบญ.

vanilla/index.html

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

เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบตเป‰, เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เปƒเบซเบกเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฐเบ–เบทเบเบซเบกเบฒเบเป€เบ›เบฑเบ™ เบ›เปˆเบญเบ (0.1.0), เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบžเบงเบเป€เบ‚เบปเบฒเบˆเบฐเบ–เบทเบเบœเบนเบเบกเบฑเบ”เบเบฑเบšเบชเบฐเบšเบฑเบšเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”.

เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบเบฑเบš Sentry เปƒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Front-End เบ—เบตเปˆเบ‚เบฝเบ™เปƒเบ™ JavaScript: เบžเบฒเบเบ—เบต 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

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™