αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž€αŸ†αž αž»αžŸαž‡αžΆαž˜αž½αž™ Sentry αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Front-End αžŸαžšαžŸαŸαžšαž€αŸ’αž“αž»αž„ JavaScriptαŸ– αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 1

RЎRΞΌSΠ‚RΠ†RΡ‘SΠƒ αž†αŸ’αž˜αžΆαŸ†αŸ” αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž–αžΈαž…αž˜αŸ’αž„αžΆαž™αž“αžΌαžœαž€αŸ†αž αž»αžŸαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαž•αŸ’αž“αŸ‚αž€αžαžΆαž„αž˜αž»αžαžŠαŸ‚αž›αž”αžΆαž“αžŸαžšαžŸαŸαžšαž“αŸ…αž€αŸ’αž“αž»αž„ JavaScript.

αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž€αŸ†αž αž»αžŸαž‡αžΆαž˜αž½αž™ Sentry αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Front-End αžŸαžšαžŸαŸαžšαž€αŸ’αž“αž»αž„ JavaScriptαŸ– αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 1

αž€αŸ†αž–αž»αž„αž–αŸ’αž™αžΆαž™αžΆαž˜αžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžαžΆαž„αž˜αž»αžαžŠαŸ‚αž›αž”αžΎαž€ JavaScript αž’αžΆαž…αž‡αžΆαžšαžΏαž„αž–αž·αž”αžΆαž€ αž–αžΈαž–αŸ’αžšαŸ„αŸ‡αž–αž½αž€αžœαžΆαž˜αžΆαž“αž”αŸ’αžšαž—αž–αž…αŸαž‰αž–αžΈαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αžαžΆαž˜αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αžαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αž”αŸ’αžšαžΎ αžŠαŸ‚αž›αž‡αžΆαžšαžΏαž™αŸ—αž’αŸ’αž“αž€αž˜αž·αž“αž˜αžΆαž“αžŸαž·αž‘αŸ’αž’αž·αž…αžΌαž›αž”αŸ’αžšαžΎαŸ” αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™ αž†αŸ’αž˜αžΆαŸ†αŸ” αž’αŸ’αžœαžΎαž±αŸ’αž™αžœαžΆαž’αžΆαž…αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž€αŸ†αž αž»αžŸαž–αžΈαž…αž˜αŸ’αž„αžΆαž™αŸ”

αžœαžΆαž‚αžΊαž‡αžΆαž€αžΆαžš αž’αŸ’αž“αž€αž’αžΆαž…αž‘αžΆαž‰αž™αž€αžŠαŸ†αžŽαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αžŠαŸ‚αž›αž”αžΆαž“αž–αž·αž—αžΆαž€αŸ’αžŸαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž’αžαŸ’αžαž”αž‘αž“αŸαŸ‡αŸ”

αž’αŸ’αžœαžΈαžŠαŸ‚αž›αž…αžΆαŸ†αž”αžΆαž…αŸ‹

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž…αž„αŸ‹αž”αŸ’αžšαžΎαž§αž‘αžΆαž αžšαžŽαŸαž‘αžΆαŸ†αž„αž“αŸαŸ‡ αž’αŸ’αž“αž€αž“αžΉαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαŸ–

  • Node.jsαŸ– αž§αž”αž€αžšαžŽαŸαž’αž—αž·αžœαžŒαŸ’αžαž“αŸαžŠαŸ‚αž›αžŸαŸ†αž”αžΌαžšαž‘αŸ…αžŠαŸ„αž™αž›αž€αŸ’αžαžŽαŸˆαž–αž·αžŸαŸαžŸαžŠαŸ‚αž›αž˜αž·αž“αž˜αŸ‚αž“αž‡αžΆαž•αŸ’αž“αŸ‚αž€αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ” αž™αžΎαž„αž”αžΆαž“αž‘αžΆαž‰αž™αž€αž€αŸ†αžŽαŸ‚ 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. αž˜αžΆαž“αž”αŸŠαžΌαžαž»αž„αž–αžΈαžšαž“αŸ…αž‘αžΈαž“αŸαŸ‡αŸ– "αžŸαž½αžŸαŸ’αžαžΈ" (αž‡αŸ†αžšαžΆαž”αžŸαž½αžš) αž“αž·αž„ "αž€αŸ†αž αž»αžŸ" (αž€αŸ†αž αž»αžŸ)αŸ”

αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž’αŸ’αž“αž€αž…αž»αž…αž”αŸŠαžΌαžαž»αž„ "αžŸαž½αžŸαŸ’αžαžΈ"αž’αŸαž€αŸ’αžšαž„αŸ‹αž“αžΉαž„αž…αžΆαž”αŸ‹αž•αŸ’αžŠαžΎαž˜αž‘αžΎαž„αžœαž·αž‰ αž αžΎαž™αž”αŸ’αž›αž»αž€ αž–αŸ’αž™αžΆαž™αžΆαž˜ αž“αžΉαž„αžšαž€αžƒαžΎαž‰ αž“αž·αž„αž…αžΆαž”αŸ‹αž€αŸ†αž αž»αžŸαŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž€αŸ†αž αž»αžŸαžαŸ’αžšαžΌαžœαž”αžΆαž“ "αž…αžΆαž”αŸ‹" αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž€αŸ†αž αž»αžŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž•αŸ’αž‰αžΎαž‘αŸ…αžŸαŸαžœαžΆαž€αž˜αŸ’αž˜αžŠαŸ„αž™αžŠαŸƒ αž†αŸ’αž˜αžΆαŸ†αŸ”.

αž”αŸŠαžΌαžαž»αž„ "αž€αŸ†αž αž»αžŸ" αž’αž“αž»αž‰αŸ’αž‰αžΆαžαž±αŸ’αž™αž’αŸ’αž“αž€αžšαž€αžƒαžΎαž‰αž€αŸ†αž αž»αžŸαž”αžΆαž“αž™αŸ‰αžΆαž„αž„αžΆαž™αžŸαŸ’αžšαž½αž›αŸ”

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 αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαžŸαžΆαž€αž›αŸ’αž”αž„αž§αž‘αžΆαž αžšαžŽαŸαž“αŸαŸ‡ αž™αžΎαž„αž’αžΆαž…αž”αŸ’αžšαžΎαžœαŸαž‘αž·αž€αžΆαž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸαž”αžŽαŸ’αžαžΆαž‰αž‹αž·αžαž·αžœαž“αŸ’αž Node.js: αž˜αŸ‰αžΆαžŸαŸŠαžΈαž“αž˜αŸ http. αž…αžΌαž›αž‘αŸ…αž€αžΆαž“αŸ‹αžαžαžŠαŸ‚αž›αž―αž€αžŸαžΆαžšαžαŸ’αžšαžΌαžœαž”αžΆαž“αžšαž€αŸ’αžŸαžΆαž‘αž»αž€ index.htmlαž αžΎαž™αž”αž‰αŸ’αž…αžΌαž› (αž‡αž˜αŸ’αžšαžΎαžŸαž”αž·αž‘αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹) αž”αž“αŸ’αž‘αžΆαžαŸ‹αžαžΆαž„αž€αŸ’αžšαŸ„αž˜αžŠαžΎαž˜αŸ’αž”αžΈαž”αžΎαž€αž’αžΆαžŸαž™αžŠαŸ’αž‹αžΆαž“αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€ http://localhost:8080.

αžšαž”αŸ€αž”αž…αžΆαž”αŸ‹αž€αŸ†αž αž»αžŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰

αžŠαŸ†αž”αžΌαž„αž…αž»αž…αž”αŸŠαžΌαžαž»αž„ "αžŸαž½αžŸαŸ’αžαžΈ".

αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž€αŸ†αž αž»αžŸαž‡αžΆαž˜αž½αž™ Sentry αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Front-End αžŸαžšαžŸαŸαžšαž€αŸ’αž“αž»αž„ JavaScriptαŸ– αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 1

αž™αžΎαž„αž…αžΆαž”αŸ‹αž”αžΆαž“αž€αŸ†αž αž»αžŸ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αžœαžΆαž“αžΉαž„αž˜αž·αž“αž›αŸαž…αž‘αžΎαž„αž‡αž„αŸ‹αž€αžΆαžšαž αŸ…αž‘αŸ αžŠαžΌαž…αŸ’αž“αŸαŸ‡αž αžΎαž™αž˜αž·αž“αžαŸ’αžšαžΌαžœαž”αžΆαž“αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž»αž„αžŸαžΌαž›αž‘αŸαŸ” αž‘αŸ„αŸ‡αž™αŸ‰αžΆαž„αžŽαžΆαž€αŸαžŠαŸ„αž™αž…αžΆαž”αŸ‹αžαžΆαŸ†αž„αž–αžΈαž™αžΎαž„αž•αŸ’αž‰αžΎαž‘αŸ… αž†αŸ’αž˜αžΆαŸ†αŸ” αžšαžΆαž™αž€αžΆαžšαžŽαŸαž’αŸ†αž–αžΈαž”αž‰αŸ’αž αžΆαžŠαŸ„αž™αžŠαŸƒ αž™αžΎαž„αž“αžΉαž„αžƒαžΎαž‰αžŸαžΆαžšαž’αŸ†αž–αžΈαžœαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž‚αžŽαž“αžΈαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”

αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž€αŸ†αž αž»αžŸαž‡αžΆαž˜αž½αž™ Sentry αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Front-End αžŸαžšαžŸαŸαžšαž€αŸ’αž“αž»αž„ JavaScriptαŸ– αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 1

αž…αŸ†αžŽαžΆαŸ†:

  • αž™αžΎαž„β€‹αž’αžΆαž…β€‹αžαžΆαž˜β€‹αžŠαžΆαž“β€‹αž˜αž½αž™β€‹αž”αž“αŸ’αž‘αžΆαžαŸ‹ (24) αžŠαŸ‚αž›β€‹αž˜αžΆαž“β€‹αž€αŸ†αž αž»αžŸ
  • αž›αžΎαžŸαž–αžΈαž“αŸαŸ‡αž‘αŸ€αž αž•αŸ’αž›αžΌαžœαž›αŸ† breadcrumb αž”αž„αŸ’αž αžΆαž‰αžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αžšαž”αžŸαŸ‹αž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž»αž€αžšαž€αžαžΆαž˜αž’αŸŠαžΈαž“αž’αžΊαžŽαž·αžαžŠαŸ‚αž›αž“αžΆαŸ†αž±αŸ’αž™αž˜αžΆαž“αž€αŸ†αž αž»αžŸαŸ”

αžšαž”αŸ€αž”αžŠαŸ‚αž›αž€αŸ†αž αž»αžŸαžŠαŸ‚αž›αž˜αž·αž“αž”αžΆαž“αž…αžΆαž”αŸ‹αžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αž„αŸ’αž αžΆαž‰

αž…αž»αž…αž”αŸŠαžΌαžαž»αž„ "αž€αŸ†αž αž»αžŸ" αŸ”

αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž€αŸ†αž αž»αžŸαž‡αžΆαž˜αž½αž™ Sentry αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Front-End αžŸαžšαžŸαŸαžšαž€αŸ’αž“αž»αž„ JavaScriptαŸ– αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 1

αž€αŸ†αž αž»αžŸβ€‹αž”αž„αŸ’αž€β€‹αž–αž–αž»αŸ‡β€‹αž‘αžΎαž„β€‹αž›αžΎβ€‹αž€αžΆαžšβ€‹αž αŸ…β€‹αž‘αžΌαžšαžŸαž–αŸ’αž‘ αž αžΎαž™β€‹αžŠαžΌαž…αŸ’αž“αŸαŸ‡β€‹αžŸαžΆαžšβ€‹αž€αŸ†αž αž»αžŸβ€‹αžαŸ’αžšαžΌαžœβ€‹αž”αžΆαž“β€‹αž”αž„αŸ’αž αžΆαž‰β€‹αž“αŸ…β€‹αž›αžΎβ€‹αž€αž»αž„αžŸαžΌαž›β€‹αŸ” αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž–αžΈαž“αŸαŸ‡ Sentry αžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž€αŸ†αž αž»αžŸαžŠαŸ„αž™αžŸαŸ’αžœαŸαž™αž”αŸ’αžšαžœαžαŸ’αžαž· αžŠαŸ„αž™αž‚αŸ’αž˜αžΆαž“αžŸαž€αž˜αŸ’αž˜αž—αžΆαž–αž”αž“αŸ’αžαŸ‚αž˜αžŽαžΆαž˜αž½αž™αž‘αžΎαž™αŸ”

αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž€αŸ†αž αž»αžŸαž‡αžΆαž˜αž½αž™ Sentry αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Front-End αžŸαžšαžŸαŸαžšαž€αŸ’αž“αž»αž„ JavaScriptαŸ– αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 1

αž…αŸ†αžŽαžΆαŸ†:

  • αž™αžΎαž„αž’αžΆαž…αž˜αžΎαž›αžƒαžΎαž‰αžαžΆαž“αŸ…αž€αŸ’αž“αž»αž„αž”αž“αŸ’αž‘αžΆαžαŸ‹ (30) αž€αŸ†αž αž»αžŸαžαŸ’αžšαžΌαžœαž”αžΆαž“αž”αžΆαžαŸ‹αž”αž„αŸ‹
  • αž˜αž·αž“αž˜αžΆαž“αž•αŸ’αž›αžΌαžœαž›αŸ†αž αŸ‚αžšαž‘αŸ (αžαŸ’αž‰αž»αŸ†αž˜αž·αž“αž™αž›αŸ‹αž…αŸ’αž”αžΆαžŸαŸ‹αž‘αŸαžαžΆαž αŸαžαž»αž’αŸ’αžœαžΈ)

αžšαž”αŸ€αž”αž’αžΆαž“αžΆαžŸαž»αžœαžαŸ’αžαž·αž—αžΆαž–αž‚αž˜αŸ’αžšαŸ„αž„

αž’αŸ’αž“αž€αž”αŸ’αžšαž αŸ‚αž›αž‡αžΆαž”αžΆαž“αž€αžαŸ‹αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αžƒαžΎαž‰αž–αžΈαžšαž”αŸ€αž”αžŠαŸ‚αž›αž™αžΎαž„αž‚αŸ’αžšαž”αŸ‹αž‚αŸ’αžšαž„αž‘αŸ†αž–αŸαžšαžŽαžΆαž˜αž½αž™αžŠαŸ‚αž›αž’αžΆαž…αžšαžΆαž™αž€αžΆαžšαžŽαŸαž€αŸ†αž αž»αžŸαž‘αŸ…αž‚αž˜αŸ’αžšαŸ„αž„αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ” αž†αŸ’αž˜αžΆαŸ†αŸ”; αžŠαŸ„αž™αž˜αžΆαž“αž‡αŸ†αž“αž½αž™ dsn αž€αŸ†αžŽαžαŸ‹αžαŸ’αžšαžΆαŸ” αž”αž‰αŸ’αž αžΆαž‚αžΊαžαžΆαž€αžΆαžšαž”αž‰αŸ’αž…αžΌαž›αž’αžΆαž…αžαŸ’αžšαžΌαžœαž”αžΆαž“αž‚αŸαž˜αžΎαž›αžƒαžΎαž‰αžŠαŸ„αž™αž“αžšαžŽαžΆαž˜αŸ’αž“αžΆαž€αŸ‹αžŠαŸ‚αž›αž˜αžΎαž›αž€αžΌαžŠαž”αŸ’αžšαž—αž–αž“αŸƒαž‘αŸ†αž–αŸαžšαžšαž”αžŸαŸ‹αž’αŸ’αž“αž€αŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαž‡αŸ€αžŸαžœαžΆαž„αž”αž‰αŸ’αž αžΆαž“αŸαŸ‡ αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αŸ†αžŽαžαŸ‹αž…αŸ†αž“αž½αž“αžŠαŸ‚αž“αžŠαŸ‚αž›αž’αžΆαž…αž”αž‰αŸ’αž‡αžΌαž“αžšαž”αžΆαž™αž€αžΆαžšαžŽαŸαž€αŸ†αž αž»αžŸαž‘αŸ…αž‚αž˜αŸ’αžšαŸ„αž„αžšαž”αžŸαŸ‹αž™αžΎαž„αŸ” αž€αŸ’αž“αž»αž„αž§αž‘αžΆαž αžšαžŽαŸαž“αŸαŸ‡αž™αžΎαž„αž”αžΆαž“αž”αŸ’αžšαžΎ localhost (αž˜αŸ’αž…αžΆαžŸαŸ‹αž•αŸ’αž‘αŸ‡αž€αŸ’αž“αž»αž„αžŸαŸ’αžšαž»αž€) αŸ” αž‡αž˜αŸ’αžšαžΎαžŸαž“αŸαŸ‡αžαŸ’αžšαžΌαžœαž”αžΆαž“αž€αŸ†αžŽαžαŸ‹αžšαž…αž“αžΆαžŸαž˜αŸ’αž–αŸαž“αŸ’αž’αž“αŸ…αž€αŸ’αž“αž»αž„αž•αŸ’αž‘αžΆαŸ†αž„αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹ αž†αŸ’αž˜αžΆαŸ†αŸ”- αž‚αž˜αŸ’αžšαŸ„αž„ αž€αžΆαžšαž€αŸ†αžŽαžαŸ‹αž‚αž˜αŸ’αžšαŸ„αž„ Sentry.

αž€αžΆαžšαžαŸ’αžšαž½αžαž–αž·αž“αž·αžαŸ’αž™αž€αŸ†αž αž»αžŸαž‡αžΆαž˜αž½αž™ Sentry αž“αŸ…αž€αŸ’αž“αž»αž„αž€αž˜αŸ’αž˜αžœαž·αž’αžΈ Front-End αžŸαžšαžŸαŸαžšαž€αŸ’αž“αž»αž„ JavaScriptαŸ– αž•αŸ’αž“αŸ‚αž€αž‘αžΈ 1

αž€αžΆαžšαž…αŸαž‰αž•αŸ’αžŸαžΆαž™

αž”αŸ’αžšαžŸαž·αž“αž”αžΎαž’αŸ’αž“αž€αž‚αž·αžαž–αžΈαžšαž”αŸ€αž”αž”αŸ’αžšαžΎ αž†αŸ’αž˜αžΆαŸ†αŸ” αž“αŸ…αž€αŸ’αž“αž»αž„αž€αŸ†αžŽαŸ‚αž•αŸ’αžŸαŸαž„αŸ—αž‚αŸ’αž“αžΆαž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαžšαž”αžŸαŸ‹αž™αžΎαž„ αž”αž“αŸ’αž‘αžΆαž”αŸ‹αž˜αž€αž™αžΎαž„αžαŸ’αžšαžΌαžœαž€αžΆαžšαž™αž“αŸ’αžαž€αžΆαžšαž˜αž½αž™αž…αŸ†αž“αž½αž“αžŠαŸ‚αž›αž“αžΉαž„αžŸαž˜αŸ’αž‚αžΆαž›αŸ‹αž€αŸ†αž αž»αžŸαž‡αžΆαž˜αž½αž™αž“αžΉαž„αž›αŸαžαž€αŸ†αžŽαŸ‚αŸ”

αž™αŸ‰αžΆαž„αžŽαžΆαž˜αž·αž‰ αž™αžΎαž„β€‹αž˜αž·αž“β€‹αž…αž„αŸ‹β€‹αž±αŸ’αž™β€‹αž€αŸ†αž αž»αžŸβ€‹αžŠαŸ‚αž›β€‹αž™αžΎαž„β€‹αž”αžΆαž“β€‹αž‡αž½αžŸαž‡αž»αž›β€‹αž›αŸαž…β€‹αž‘αžΎαž„β€‹αž˜αŸ’αžŠαž„β€‹αž‘αŸ€αžβ€‹αž‘αŸ αž αžΎαž™β€‹αž™αžΎαž„β€‹αž‚αž·αžβ€‹αžαžΆβ€‹αž’αŸ’αžœαžΈβ€‹αžŠαŸ‚αž›β€‹αž™αžΎαž„β€‹αž”αžΆαž“β€‹αž‡αž½αžŸαž‡αž»αž›β€‹αž˜αž·αž“β€‹αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαŸ” αžœαžΆαž€αŸαž’αžΆαž…αžαžΆαž’αŸ’αž“αž€αž”αŸ’αžšαžΎαž”αŸ’αžšαžΆαžŸαŸ‹αž”αžΆαž“αž”αžΎαž€αžŠαŸ†αžŽαžΎαžšαž€αžΆαžšαž€αŸ†αžŽαŸ‚αž…αžΆαžŸαŸ‹αžŠαŸ‚αž›αž˜αžΆαž“αžƒαŸ’αž›αžΆαŸ†αž„αžŸαž˜αŸ’αž„αžΆαžαŸ‹αž“αŸƒαž€αž˜αŸ’αž˜αžœαž·αž’αžΈαŸ”

αžŠαžΎαž˜αŸ’αž”αžΈαžŠαŸ„αŸ‡αžŸαŸ’αžšαžΆαž™αž”αž‰αŸ’αž αžΆαž’αŸ’αž“αž€αžαŸ’αžšαžΌαžœαž”αž‰αŸ’αž…αžΌαž›αž§αž”αž€αžšαžŽαŸαž€αŸ†αžŽαžαŸ‹αž’αžαŸ’αžαžŸαž‰αŸ’αž‰αžΆαžŽ αž€αžΆαžšαžŠαŸ„αŸ‡αž›αŸ‚αž„ (αž€αŸ†αžŽαŸ‚) αž“αŸ…αž–αŸαž›αž…αžΆαž”αŸ‹αž•αŸ’αžαžΎαž˜ αž†αŸ’αž˜αžΆαŸ†αŸ”.

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

αž”αž“αŸ’αžαŸ‚αž˜αž˜αžαž·αž™αŸ„αž”αž›αŸ‹