Monitorimi i gabimeve me Sentry në aplikacionet frontend të shkruara në JavaScript: Pjesa 1

Shërbimi Sentry lejon që të monitoroni të dhënat për probleme në aplikacionet frontend të shkruara në JavaScript.

Monitorimi i gabimeve me Sentry në aplikacionet frontend të shkruara në JavaScript: Pjesa 1

përpjekja për të zgjidhur problemet në aplikacionet frontend JavaScript mund të jetë një detyrë e vështirë, pasi ato ndodhin në shfletuesin e përdoruesit, për të cilin shpesh nuk keni qasje. Megjithatë, Sentry ofron mundësinë për të monitoruar të dhënat për problemet nga larg.

Këtu mund të shkarkoni zgjidhjet që u diskutuan në këtë artikull.

ÇfarĂ« nevojitet

Nëse dëshironi të përdorni këto shembuj, do t'ju nevojiten:

  • Node.js: NjĂ« mjet shumĂ«funksional pĂ«r zhvillim, i cili nuk Ă«shtĂ« pjesĂ« e aplikacionit. Ne shkarkuam versionin mĂ« tĂ« fundit LTS (8.12.0)
  • Sentry: Ose njĂ« llogari nĂ« shĂ«rbimin Sentry (mund tĂ« regjistroni deri nĂ« 10 mijĂ« probleme nĂ« muaj falas) ose njĂ« Sentry tĂ« instaluar lokalisht — https://github.com/getsentry/onpremise

Instalimi në serverin tuaj

Për të instaluar Sentry On-Premise në serverin tuaj, mund të zgjidhni 2 rrugë

  1. TĂ« mbledhni rpm dhe t’i instaloni ato — https://habr.com/ru/post/500632/

  2. Të përdorni instaluesin zyrtar:

    Instaloni docker dhe docker-compose në server
    git clone https://github.com/getsentry/onpremise.git
    ./install.sh

Përdorimi Standard

Për të filluar, shtoni një Sentry-projekt të ri për aplikacionin. Pas zgjedhjes së gjuhës përkatëse, do të merrni dokumentacionin përkatës. Në rastin tonë, ne zgjodhëm JavaScript.

Shembulli i parĂ« — standardi JavaScript. KĂ«tu ka dy butona: «Hello» (PĂ«rshĂ«ndetje) dhe «Error» (Gabim).

Pas klikuar butonin «Hello», ekrani do të rinovohet, dhe blloku përpiqem do të identifikojë dhe kapë gabimin. Pasi gabimi të «kapet», raporti për gabimin dërgohet manualisht në shërbimin Sentry.

Butoni «Error» lejon thjesht të identifikoni gabimin.

vanilla / index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Vanilë</title>
</head>
<body>
  <button id="hello">Përshëndetje</button>
  <button id="error">Gabim</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>

Vërejtje:

  • Sentry instalohet nga CDN dhe shfaqet si njĂ« variabĂ«l globale
  • Pak mĂ« parĂ« ne aktivizuam Sentry nĂ« JavaScript tonĂ«

Për të testuar këtë shembull, mund të përdorim një platformë statike të shërbimit të uebit Node.js: server http. Hyjmë në dosjen ku ndodhet skedari index.html, dhe shkruajmë (opsioni zgjidh ndalon memorien) vijën e mëposhtme për të hapur në shfletues adresën http://localhost:8080.

Si shfaqen gabimet e kapura

Fillimisht klikojmë butonin «Hello».

Monitorimi i gabimeve me Sentry në aplikacionet frontend të shkruara në JavaScript: Pjesa 1

Ne kapëm një gabim, prandaj ai nuk do të ngjitet lart në stakën e thirrjeve, kështu që nuk monitorohet në konsolë. Megjithatë, pasi të dërgojmë Sentry raportin për gabimin manualisht, do ta shohim mesazhin për të në llogarinë tonë.

Monitorimi i gabimeve me Sentry në aplikacionet frontend të shkruara në JavaScript: Pjesa 1

Vërejtje:

  • Mund tĂ« ndjekim se nĂ« cilin rresht (24) Ă«shtĂ« furrikuar gabimi
  • PĂ«r mĂ« tepĂ«r, zinxhiri i navigimit tregon veprimet e shfletuesit qĂ« çuan nĂ« gabim.

Si shfaqen gabimet e pa kapura

Klikoni butonin «Gabim».

Monitorimi i gabimeve me Sentry në aplikacionet frontend të shkruara në JavaScript: Pjesa 1

Buga shfaqet lart në grumbullin e thirrjeve dhe kështu mesazhi i gabimit shfaqet në konsolë. Pas kësaj, Sentry monitoron automatikisht bugun, pa asnjë veprim të mëtejshëm.

Monitorimi i gabimeve me Sentry në aplikacionet frontend të shkruara në JavaScript: Pjesa 1

Vërejtje:

  • Mund tĂ« shohim se nĂ« cilin rresht (30) Ă«shtĂ« humbur bug-u
  • Nuk Ă«shtĂ« parashikuar njĂ« zinxhir navigimi (nuk e kuptoj shumĂ« pse)

Si të sigurojmë projektin

Mund të keni vënë re mënyrën se si ne kontrollojmë faqet që mund të dërgojnë raporte gabimesh në projektin tonë Sentry; me anë të dsn shkresave. Problemi është se hyrja mund të shihet nga çdo kush që shikon kodin burimor të faqes suaj.

Për të shmangur këtë, duhet të kufizojmë numrin e domain-eve që mund të dërgojnë raporte gabimesh në projektin tonë. Në këtë shembull ne përdorëm localhost (localhost). Kjo mundësi konfigurohet në skedën e cilësimeve Sentry-të projektit, Cilësimi i Projektit Sentry.

Monitorimi i gabimeve me Sentry në aplikacionet frontend të shkruara në JavaScript: Pjesa 1

Lëshimet

Nëse mendojmë se si të përdorim Sentry në variacione të ndryshme të aplikacionit tonë, është e nevojshme një mekanizëm që do të shënojë gabimet me numrin e versionit.

Nuk Ă«shtĂ« e nevojshme qĂ« njĂ« bug i rregulluar nga ne tĂ« shfaqet pĂ«rsĂ«ri, ndĂ«rsa ne mendojmĂ« se ajo qĂ« kemi rregulluar nuk ka funksionuar. ËshtĂ« e mundur qĂ« pĂ«rdoruesi tĂ« ketĂ« hapur njĂ« version mĂ« tĂ« vjetĂ«r, tĂ« ruajtur nĂ« cache tĂ« aplikacionit.

Për të zgjidhur problemin, duhet të shënoni identifikuesin lëshimit (versionit) kur filloni Sentry.

vanilla / index.html

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

Pas kësaj, të gjitha gabimet e reja do të shënohen si lëshim (0.1.0), pra do të lidhen me versionin e duhur të kodit.

Monitorimi i gabimeve me Sentry në aplikacionet frontend të shkruara në JavaScript: Pjesa 1

Vërejtje:

  • Kemi shqyrtuar njĂ« mĂ«nyrĂ« tĂ« thjeshtĂ« se si tĂ« pĂ«rdorim lĂ«shimet
  • Sentry lejon aplikimin e mĂ« shumĂ« komplekse tĂ« tyre pĂ«rdorimin, e cila Ă«shtĂ« ngushtĂ«sisht e lidhur me GitHub. Kjo funksionalitet ofron mundĂ«sinĂ« pĂ«r tĂ« ndjekur buga deri nĂ« kryerjen e operacioneve tĂ« caktuara.

P.S. Pjesa e dytë është më e gjatë, prandaj do të jetë në një postim të veçantë.

P.S Telegram grup Sentry https://t.me/sentry_ru

P.S. Harrova të përmend që kjo është një përkthim i postimit https://codeburst.io/sentry-error-reporting-by-example-part-1-999b2df11556

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster