Żbalji ta' Monitoraġġ ma' Sentry f'Applikazzjonijiet Front-End Miktub f'JavaScript: Parti 1

Servizz sentry jippermettilek tissorvelja mill-bogħod bugs f'applikazzjonijiet front-end miktuba fihom JavaScript.

Żbalji ta' Monitoraġġ ma' Sentry f'Applikazzjonijiet Front-End Miktub f'JavaScript: Parti 1

Jipprova jirranġa problemi fl-applikazzjonijiet front-end fuq JavaScript jistgħu jkunu delikati minħabba li joriġinaw fil-browser tal-utent, li ħafna drabi ma jkollokx aċċess għalih. Madankollu, sentry jagħmilha possibbli li l-bugs jiġu mmonitorjati mill-bogħod.

Hawnhekk Tista 'tniżżel is-soluzzjonijiet diskussi f'dan l-artikolu.

Dak li hu meħtieġ

Jekk trid tuża dawn l-eżempji, ser ikollok bżonn:

  • Node.js: Għodda ta 'żvilupp b'ħafna karatteristiċi li mhix parti mill-applikazzjoni. Niżżilna l-aħħar verżjoni LTS (8.12.0)
  • sentry: Jew Kont fis-servizz Sentry (tista 'tirreġistra sa 10 elf bug kull xahar b'xejn) jew Sentry lokali installat - https://github.com/getsentry/onpremise

Installazzjoni fuq is-server tiegħek

Biex tinstalla Sentry On-Premise fuq is-server tiegħek tista' tmur b'2 ​​modi

  1. Ibni rpm u installahom - https://habr.com/ru/post/500632/

  2. Uża l-installatur uffiċjali:

    Установить на сервер docker и docker-compose
    git clone https://github.com/getsentry/onpremise.git
    ./install.sh

Użu Standard

Biex tibda, żid waħda ġdida mill-websajt tas-servizz sentry-proġett għall-applikazzjoni. Wara li tagħżel il-lingwa mixtieqa, tirċievi d-dokumentazzjoni korrispondenti. Fil-każ tagħna għażilna JavaScript.

L-ewwel eżempju huwa standard JavaScript. Hemm żewġ buttuni hawn: "Bongu" (Bonġu) u "Żball" (Żball).

Wara li tikklikkja l-buttuna "Bongu", l-iskrin jerġa 'jibda u l-blokk jippruvaw se jiskopri u jaqbad il-bug. Wara li l-bug jiġi "maqbud", ir-rapport tal-iżball jintbagħat manwalment lis-servizz sentry.

Il-buttuna "Żball" tippermettilek faċilment tiskopri bug.

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>

Noti:

  • Sentry huwa installat minn CDN u espost bħala varjabbli globali
  • Ftit qabel nedejna Sentry fil-JavaScript tagħna

Biex nittestjaw dan l-eżempju, nistgħu nużaw pjattaforma statika ta 'web server Node.js: server http. Mur fil-folder fejn il-fajl huwa maħżun index.html, u daħħal (għażla b'disables caching) il-linja li ġejja biex tiftaħ l-indirizz fil-browser http://localhost:8080.

Kif jintwerew bugs maqbuda

L-ewwel ikklikkja l-buttuna "Bongu".

Żbalji ta' Monitoraġġ ma' Sentry f'Applikazzjonijiet Front-End Miktub f'JavaScript: Parti 1

Aħna maqbuda bug, għalhekk mhux se jitfaċċa l-munzell ta 'sejħa, u għalhekk mhux sorveljat fil-console. Madankollu, peress li nibagħtu lil sentry tirrapporta bug manwalment, naraw messaġġ dwaru fil-kont tiegħek.

Żbalji ta' Monitoraġġ ma' Sentry f'Applikazzjonijiet Front-End Miktub f'JavaScript: Parti 1

Noti:

  • Nistgħu ntraċċaw liema linja (24) fiha l-bug
  • Barra minn hekk, it-traċċa tal-breadcrumb turi l-azzjonijiet tal-browser li wasslu għall-iżball.

Kif jintwerew bugs mhux maqbuda

Ikklikkja l-buttuna "Żball".

Żbalji ta' Monitoraġġ ma' Sentry f'Applikazzjonijiet Front-End Miktub f'JavaScript: Parti 1

Il-bużżieqa tal-bug jitfa 'l-munzell tas-sejħiet u għalhekk messaġġ ta' żball jintwera fuq il-console. Wara dan, Sentry awtomatikament jimmonitorja l-bug, mingħajr ebda azzjonijiet addizzjonali.

Żbalji ta' Monitoraġġ ma' Sentry f'Applikazzjonijiet Front-End Miktub f'JavaScript: Parti 1

Noti:

  • Nistgħu naraw f'liema linja (30) tintilef il-bug
  • M'hemm l-ebda traċċa tal-ħobż (ma tantx nifhem għaliex)

Kif tiżgura s-sigurtà tal-proġett

Forsi ndunajt il-mod kif nikkontrollaw liema paġni jistgħu jirrappurtaw żbalji lill-proġett tagħna sentry; bl-għajnuna dsn rekords. Il-problema hija li l-input jista 'jidher minn kull min jara l-kodiċi tas-sors tal-paġna tiegħek.

Biex nevitaw dan, irridu nillimitaw in-numru ta 'dominji li jistgħu jissottomettu rapporti ta' żbalji lill-proġett tagħna. F'dan l-eżempju użajna localhost (host lokali). Din l-għażla hija kkonfigurata fit-tab tas-settings sentry-proġett, Setting tal-Proġett Sentry.

Żbalji ta' Monitoraġġ ma' Sentry f'Applikazzjonijiet Front-End Miktub f'JavaScript: Parti 1

Rilaxxi

Jekk taħseb dwar kif tuża sentry f'varjazzjonijiet differenti tal-applikazzjoni tagħna, allura għandna bżonn xi tip ta 'mekkaniżmu li jimmarka l-iżbalji b'numru tal-verżjoni.

Wara kollox, ma rridux li l-bug li rranġajna jerġa’ jitfaċċa, u naħsbu li dak li rranġajna ma ħadimx. Jista 'jkun ukoll li l-utent nieda verżjoni eqdem, cache ta' l-applikazzjoni.

Biex issolvi l-problema, trid iddaħħal l-identifikatur jeħilsu (verżjonijiet) fl-istartjar sentry.

vanilla/index.html

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

Wara dan, l-iżbalji l-ġodda kollha se jiġu mmarkati bħala rilaxx (0.1.0), jiġifieri, se jkunu marbuta mal-verżjoni korretta tal-kodiċi.

Żbalji ta' Monitoraġġ ma' Sentry f'Applikazzjonijiet Front-End Miktub f'JavaScript: Parti 1

Noti:

  • Aħna dehret mod sempliċi biex nużaw ir-rilaxxi
  • Sentry jippermettilek tuża aktar kumpless tagħhom l-użu ta ', li hija relatata mill-qrib ma' GitHub. Din il-funzjoni tagħmilha possibbli li jintraċċaw bugs qabel ma twettaq ċerti operazzjonijiet.

PS It-tieni parti hija itwal, għalhekk se tkun f'post separat.

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

PS Insejt nindika li din hija traduzzjoni tal-post https://codeburst.io/sentry-error-reporting-by-example-part-1-999b2df11556

Sors: www.habr.com

Żid kumment