Teenuse Sentry vÔimaldab kaugelt jÀlgida vigu frontend-rakendustes, mis on kirjutatud JavaScript.

Katse lahendada probleeme frontend-rakendustes JavaScript vÔib osutuda keeruliseks, kuna need tekivad kasutaja brauseris, millele teil tihti juurdepÀÀsu pole. Siiski, Sentry pakub vÔimalust kaugelt jÀlgida vigu.
on vÔimalik alla laadida lahendused, mida kÀsitleti selles artiklis.
Mida on vaja
Kui soovite neid nÀiteid kasutada, siis vajate:
- : Multifunktsionaalne arendustööriist, mis ei ole rakenduse osa. Me laadisime alla viiend versiooni (8.12.0)
- Sentry: Kas Sentry teenuse konto (saate tasuta registreerida kuni 10 tuhat viga kuus) vĂ”i kohapeal paigaldatud Sentry â
Paigaldamine oma serverisse
Sentry On-Premise paigaldamiseks oma serverisse on kaks vÔimalust
Koguda rpm ja paigaldada need â
Kasutada ametlikku installerit:
Paigaldada serverisse docker ja docker-compose git clone https://github.com/getsentry/onpremise.git ./install.sh
Tavakasutus
Alustamiseks lisage teenuse lehelt uus Sentry-rakendusprojekti jaoks. PĂ€rast vajaliku keele valimist saate vastava dokumentatsiooni. Meie puhul valisime JavaScript.
Esimene nĂ€ide â standardne JavaScript. Siin on kaks nuppu: «Hello» (Tere) ja «Error» (Viga).
PĂ€rast nupu vajutamist «Hello», ekraan laaditakse uuesti ja blokk try tuvastab ja pĂŒĂŒab vea. PĂ€rast vea «pĂŒĂŒdmist» saadetakse veateade kĂ€sitsi teenusele Sentry.
Nupp «Error» vÔimaldab lihtsalt vea tuvastada.
vanilla / index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Vanilla</title>
</head>
<body>
<button id="hello">Tere</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>MĂ€rkused:
- Sentry installeeritakse CDN-ist ja kuvatakse globaalse muutujana
- Veidi varem kÀivitasime Sentry meie JavaScriptis
KĂ€esoleva nĂ€ite testimiseks vĂ”ime kasutada staatilist veebiserveri platvormi Node.js: http-serveri. Siseneme kausta, kus fail asub, ja sisestame (valik, mis keelab vahemĂ€ cache) jĂ€rgmise rea, et avada brauseris aadress index.htmlKuidas tuvastatakse pĂŒĂŒtud vead .
Esiteks klÔpsame nuppu
Me pĂŒĂŒdsime vea, seetĂ”ttu ei tĂ”use see ĂŒles kutsumise virnas ja ei jĂ€lgita seda konsoolis. Kuid kuna me saadame «Hello».

veateate kÀsitsi, nÀeme selle kohta teadet oma kontol. Sentry Saame jÀlgida, millisel real (24) viga tekkis

MĂ€rkused:
- Saame jÀlgida, millises reaas (24) veake seisis
- Lisaks nÀitab navigeerimise ketti brauseri tegevusi, mis on viinud veani.
Kuidas kuvatakse pĂŒĂŒdmata vead
Kliki nuppu âErrorâ.

Viga tĂ”useb ĂŒles kutsumisjĂ€rjekorras ja seetĂ”ttu kuvatakse veateade konsoolis. PĂ€rast seda jĂ€lgib Sentry automaatselt viga, ilma igasuguste tĂ€iendavate toiminguteta.

MĂ€rkused:
- Saame nÀha, millises reas (30) viga kadus
- Navigeerimisketi puudumine (ma ei saa pÀris aru, miks)
Kuidas tagada projekti turvalisus
Olete vĂ”ib-olla pannud tĂ€hele, kuidas me jĂ€lgime lehti, mis vĂ”ivad saata veateateid meie projekti Sentry; kasutades dsn kirjeid. Probleem on selles, et siseneda saab igaĂŒks, kes vaatab teie lehe allika koodi.
Selle vÀltimiseks tuleb piirata domeenide arvu, mis saavad saata meie projekti veateateid. Selles nÀites kasutasime localhost (kohalik host). See valik on seadistatud projekti seadetel Sentry-projekt, Sentry Project Setting.

VĂ€ljalasked
Kui mÔelda, kuidas kasutada Sentry meie rakenduse erinevates variatsioonides on vajalik mehhanism, mis markeerib vead versiooninumbriga.
Ei ole ju soovitav, et meie parandatud viga ilmuks uuesti, samas kui me arvame, et see, mida me fikseerisime, ei töötanud. On ka vÔimalik, et kasutaja kÀivitas vanema, vahemÀlus oleva versiooni rakendusest.
Probleemi lahendamiseks on vajalik identifikaatori kirjutamine vÀljalaske (versiooni) kÀivitamisel Sentry.
vanilla / index.html
...
var RELEASE = '0.1.0';
Sentry.init({
dsn: 'https://b5bf359072254626aba8e64368e77b7d@sentry.io/1289664',
release: RELEASE,
});
...PÀrast seda mÀrgitakse kÔik uued vead kui vÀljalase (0.1.0), mis tÀhendab, et need seotakse Ôige koodiversiooniga.

MĂ€rkused:
- Oleme kÀsitlenud lihtsat viisi, kuidas kasutada vÀljalaskeid
- Sentry vÔimaldab rakendada keerukamat . See funktsioon vÔimaldab jÀlgida vigu enne teatud toimingute tegemist. GitHubP.S. Teine osa on pikem, seega tuleb see eraldi postitusse.
P.S. Sentry Telegrami kanal
P.S. Unustasin mainida, et see on postituse tÔlge
P.S. Unustasin mainida, et see on postituse tÔlge
Allikas: habr.com
