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

Shërbimi Sentry lejon i të monitoroni problema 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 në JavaScript mund të jetë një sfidë e vështirë, pasi ato ndodhin në shfletuesin e përdoruesit, për të cilin shpeshherë nuk keni qasje. Megjithatë, Sentry ofron mundësinë për të monitoruar probleme nga larg.

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

ÇfarĂ« nevojitet

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

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

Instalimi në serverin tuaj

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

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

  2. Të përdorni installer-in zyrtar:

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

Përdorimi standard

Për të filluar, shtoni një të re nga faqja e shërbimit Sentry-projekti për aplikacionin. Pas zgjedhjes së gjuhës së dëshiruar, do të merrni dokumentacionin përkatës. Në rastin tonë, kemi zgjedhur JavaScript.

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

Pas klikimit mbi butonin «Hello», ekrani do të rifreskohet, dhe blloku provo do të zbulojë dhe kapë gabimin. Pas kapjes së gabimit, raporti i gabimit dërgohet manualisht në shërbimin Sentry.

Butoni «Error» lejon thjesht të zbulohet gabimi.

vanilla / index.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Vanilla</title>
</head>
<body>
  <button id="hello">Hello</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>

Shënime:

  • Sentry instalohet nga CDN dhe shfaqet si njĂ« variabĂ«l globale
  • Pak mĂ« parĂ« ne e lançuam Sentry nĂ« JavaScript-in tonĂ«

Për të testuar këtë shembull, mund të shfrytëzojmë një platformë serveri web statike Node.js: server http. Shkëmbejmë në dosjen ku mbahet skedari index.html, dhe shkruajmë (opsioni me ndalimin e caching) rreshtin e mëposhtëm për të hapur në shfletues adresën http://localhost:8080.

Si shfaqen gabimet e kapura

Së pari klikojmë mbi 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ë grackën e thirrjeve, duke mos u monitoruar në konsolë. Megjithatë, pasi e dërgojmë në Sentry raportin e gabimit manualisht, do ta shohim mesazhin e tij në llogarinë tonë.

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

Shënime:

  • Mund tĂ« ndjekim se nĂ« cilin rresht (24) u pĂ«rfshi gabimi
  • PĂ«r mĂ« tepĂ«r, sinnja e navigimit tregon veprimet e shfletuesit qĂ« çuan nĂ« gabim.

Si shfaqen gabimet e pa kapura

Klikojmë butonin «Gabim».

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

Gabimi ngjitet në majë të stack-ut të thirrjeve dhe, kështu, shfaqet një mesazh gabimi në konsolë. Pas kësaj, Sentry monitoron automatikisht gabimin pa asnjë veprim shtesë.

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

Shënime:

  • Mund tĂ« shohim se nĂ« cilĂ«n rresht (30) humbi gabimi
  • Nuk Ă«shtĂ« parashikuar sinnja e navigimit (nuk e kuptoj plotĂ«sisht pse)

Si të sigurojmë projektin

Ndoshta keni vënë re se si kontrollojmë faqet që mund të dërgojnë raporte gabimesh në projektin tonë Sentry; përmes dsn shënimeve. Problemi është se çdo kush që shikon kodin burimor të faqes tuaj mund ta shohë hyrjen.

Që të mos ndodhë kjo, duhet të kufizoni 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 opsion konfigurimi është në seksionin 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ë, ne kemi nevojë për një mekanizëm që do të shënojë gabimet me numrin e versionit.

Nuk duhet qĂ« njĂ« bug tĂ« korrigjuar prej nesh tĂ« dalĂ« pĂ«rsĂ«ri, ndĂ«rsa ne tĂ« mendojmĂ« se nuk funksionoi ajo qĂ« e kemi rregulluar. Mund tĂ« ndodhĂ« qĂ« pĂ«rdoruesi tĂ« ketĂ« nisur njĂ« version mĂ« tĂ« vjetĂ«r, tĂ« ĐșДшuar tĂ« aplikacionit.

Për të zgjidhur problemin, duhet të shkruani identifikuesin e rrethit (versionit) në fillim 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ënoheshin si version (0.1.0), që do të thotë se do të lidhen me versionin e duhur të kodit.

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

Shënime:

  • Ne shqyrtuam njĂ« mĂ«nyrĂ« tĂ« thjeshtĂ« se si tĂ« pĂ«rdorim rrethin
  • Sentry lejon tĂ« aplikojmĂ« mĂ« tĂ« ndĂ«rlikuar tĂ« tyre pĂ«rdorimit, e cila Ă«shtĂ« e lidhur ngushtĂ« me GitHub. Ky funksion ofron mundĂ«sinĂ« pĂ«r tĂ« ndjekur gabimet 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 Grupi Telegram Sentry https://t.me/sentry_ru

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

Burimi: habr.com

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster