Memantau bug dengan Sentry di aplikasi frontend JavaScript: Bagian 1

Layanan Sentry memungkinkan Anda untuk memonitor bug dari jarak jauh di aplikasi front-end yang ditulis dalam JavaScript .





Mencoba untuk memperbaiki masalah di aplikasi JavaScript front-end bisa menjadi tugas yang menakutkan, karena muncul di browser pengguna, yang, seringkali, Anda tidak memiliki akses. Namun, Sentry memungkinkan Anda untuk memonitor bug dari jarak jauh.



Di sini Anda dapat mengunduh solusi yang dibahas dalam artikel ini.



Apa yang perlu



Jika Anda ingin menggunakan contoh-contoh ini, maka Anda perlu:



  • Node.js : Alat pengembangan multifungsi yang bukan bagian dari aplikasi. Kami mengunduh versi LTS terbaru (8.12.0)
  • Sentry : Entah Akun di layanan Sentry (Anda dapat merekam hingga 10 ribu bug per bulan gratis) atau Sentry lokal yang diinstal - https://github.com/getsentry/onpremise


Instalasi di server Anda



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






, Sentry- . . JavaScript.



JavaScript. : «Hello» () «Error» ().



, «Hello», , try . , «», Sentry.



«Error» .



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://b5bf359072254626aba8e64368e77b7d@sentry.io/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.





«Hello».





, , . , Sentry , .





:



  • , (24)
  • , , .




«Error».





, , . Sentry , - .





:



  • , (30)
  • ( , )




, , , , Sentry; dsn . , , .



, , . localhost ( ). Sentry-, Sentry Project Setting.







, Sentry , , .



, , , , . , , .



, () Sentry.



vanilla / index.html



...
var RELEASE = '0.1.0';
Sentry.init({
  dsn: 'https://b5bf359072254626aba8e64368e77b7d@sentry.io/1289664',
  release: RELEASE,
});
...


release (0.1.0), .





:



  • Sentry memungkinkan penggunaan yang lebih kompleks mereka gunakan , yang terkait erat dengan GitHub . Fitur ini memungkinkan untuk melacak bug sebelum melakukan operasi tertentu.


PS Bagian kedua lebih panjang, sehingga akan di pos terpisah.



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



PS Saya lupa menunjukkan bahwa ini adalah terjemahan dari pos https://codeburst.io/sentry-error-reporting-by-example-part-1-999b2df11556




All Articles