TjÀnsten Sentry möjliggör fjÀrrövervakning av buggar i frontend-applikationer som Àr skrivna i JavaScript.

Försöket att ÄtgÀrda problem i frontend-applikationer pÄ JavaScript kan vara en utmanande uppgift, eftersom de uppstÄr i anvÀndarens webblÀsare, som ni ofta inte har tillgÄng till. Men Sentry ger möjlighet till fjÀrrövervakning av buggar.
kan du ladda ner lösningar som diskuterades i denna artikel.
Vad som behövs
Om du vill anvÀnda dessa exempel behöver du:
- : Ett multifunktionellt utvecklingsverktyg som inte Àr en del av applikationen. Vi laddade ner den senaste LTS-versionen (8.12.0)
- Sentry: Antingen ett konto pÄ Sentry (du kan gratis logga upp till 10 000 buggar i mÄnaden) eller en installerad lokal Sentry -
Installation pÄ din server
För att installera Sentry On-Premise pÄ din server kan du gÄ tvÄ vÀgar
Bygga rpm och installera dem -
AnvÀnda den officiella installationsprogrammet:
Installera Docker och docker-compose pÄ servern git clone https://github.com/getsentry/onpremise.git ./install.sh
StandardanvÀndning
För att börja, lĂ€gg till ett nytt projekt för applikationen frĂ„n tjĂ€nstens webbplats. Efter att ha valt rĂ€tt sprĂ„k fĂ„r du motsvarande dokumentation. I vĂ„rt fall valde vi SentryDet första exemplet â standard JavaScript.
. HÀr finns tvÄ knappar: JavaScript«Hello» (Hej) och «Error» (Fel). NÀr du klickar pÄ knappen
, kommer skÀrmen att laddas om, och blocket (Hej) ochupptÀcker och fÄngar buggen. Efter att buggen har blivit "fÄngad" skickas felrapporten manuellt till tjÀnsten försök Knappen «Error» gör det enkelt att upptÀcka buggar. Sentry.
vanilla / index.html
Sentry installeras frÄn CDN och visas som en global variabel
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Vanilla</title>
</head>
<body>
<button id="hello">Hej</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>Noteringar:
- Tidigare körde vi Sentry i vÄr JavaScript
- För att testa detta exempel kan vi anvÀnda en statisk webbserverplattform
http-server. Node.js: Vi gÄr in i mappen dÀr filen finns, och skriver (alternativet stÀnger av caching) följande rad för att öppna i webblÀsaren adressen index.htmlHur fÄngade buggar visas .
Vi klickar först pÄ knappen
Vi har fÄngat en bugg, sÄ den kommer inte att bubbla upp i anropsstacken och dÀrför övervakas den inte i konsolen. Men eftersom vi manuellt skickar in (Hej) och.

felrapporten, kommer vi att se meddelandet om det i vÄrt konto. Sentry Vi kan följa vilken rad (24) buggen dolde sig i

Noteringar:
- Dessutom visar navigeringskedjan de ÄtgÀrder som webblÀsaren vidtog som ledde till felet.
- Hur ouppsnappade buggar visas
Hur ouppsnappade buggar visas
Klicka pÄ knappen «Fel».

Felet dyker upp högre i anropsstacken och dÀrmed visas ett felmeddelande i konsolen. Efter detta övervakar Sentry automatiskt felet utan nÄgra ytterligare ÄtgÀrder.

Noteringar:
- Vi kan se pÄ vilken rad (30) felet gömde sig
- Det finns ingen navigationskedja (jag förstÄr inte riktigt varför)
Hur man sÀkerstÀller projektets sÀkerhet
Du har kanske noterat hur vi kontrollerar sidor som kan skicka felrapporter till vÄrt projekt Sentry; med hjÀlp av dsn plÄtar. Problemet Àr att vem som helst som tittar pÄ din sidas kÀllkod kan se detta.
För att förhindra detta mÄste antalet domÀner som kan logga felrapporter till vÄrt projekt begrÀnsas. I det hÀr exemplet anvÀnde vi localhost (lokal vÀrd). Detta alternativ stÀlls in i instÀllningsfliken Sentry-projektet, Sentry ProjektinstÀllning.

Releaser
Om man tÀnker pÄ hur man ska anvÀnda Sentry i olika varianter av vÄr applikation, sÄ behövs en mekanism som markerar fel med versionsnumret.
Det Àr ju inte sÄ att vi vill att ett fel som vi har rÀttat ska dyka upp igen, och vi tÀnker att det vi fixade inte fungerade. Det kan vara sÄ att anvÀndaren har kört en Àldre, cachad version av applikationen.
För att lösa problemet mÄste vi ange identifieraren lanseringen (versionen) vid starten Sentry.
Sentry installeras frÄn CDN och visas som en global variabel
...
var RELEASE = '0.1.0';
Sentry.init({
dsn: 'https://b5bf359072254626aba8e64368e77b7d@sentry.io/1289664',
release: RELEASE,
});
...Efter detta kommer alla nya fel att markeras som release (0.1.0), det vill sÀga de kommer att kopplas till rÀtt version av koden.

Noteringar:
- Vi har diskuterat ett enkelt sÀtt att anvÀnda versioner
- Sentry tillÄter mer , som Àr tÀtt kopplade till GitHub. Denna funktion möjliggör att spÄra fel före vissa operationer.
P.S. Den andra delen Àr lÀngre, sÄ den kommer att publiceras i ett separat inlÀgg.
P.S Telegramchatten Sentry
P.S. Jag glömde nÀmna att detta Àr en översÀttning av inlÀgget
KĂ€lla: habr.com
