ProHoster > Log > administrasjon > Overvåking av feil med Sentry i front-end-applikasjoner skrevet i JavaScript: Del 1
Overvåking av feil med Sentry i front-end-applikasjoner skrevet i JavaScript: Del 1
Verktøy Sentry lar deg fjernovervåke feil i front-end-applikasjoner skrevet inn Javascript.
Prøver å fikse problemer i front-end-applikasjoner på Javascript kan være vanskelige fordi de kommer fra brukerens nettleser, som du ofte ikke har tilgang til. Derimot, Sentry gjør det mulig å fjernovervåke feil.
Her Du kan laste ned løsningene som er omtalt i denne artikkelen.
Hva er nødvendig
Hvis du vil bruke disse eksemplene, trenger du:
node.js: Et funksjonsrikt utviklingsverktøy som ikke er en del av applikasjonen. Vi lastet ned den siste LTS-versjonen (8.12.0)
Sentry: Enten en konto i Sentry-tjenesten (du kan registrere opptil 10 tusen feil per måned gratis) eller en installert lokal Sentry - https://github.com/getsentry/onpremise
Installasjon på serveren din
For å installere Sentry On-Premise på serveren din kan du gå på 2 måter
Установить на сервер docker и docker-compose
git clone https://github.com/getsentry/onpremise.git
./install.sh
Standard bruk
For å komme i gang, legg til en ny fra tjenestenettstedet Sentry-prosjekt for søknaden. Etter å ha valgt ønsket språk vil du motta den tilhørende dokumentasjonen. I vårt tilfelle valgte vi Javascript.
Det første eksemplet er standard Javascript. Det er to knapper her: "Hallo" (Hei) og "Feil" (Feil).
Etter at du har klikket på knappen "Hallo", vil skjermen starte på nytt og blokkeringen prøve vil oppdage og fange feilen. Etter at feilen er "fanget", sendes feilrapporten manuelt til tjenesten Sentry.
Sentry er installert fra et CDN og eksponert som en global variabel
Litt tidligere lanserte vi Sentry i JavaScript
For å teste dette eksemplet kan vi bruke en statisk webserverplattform node.js: http-server. Gå til mappen der filen er lagret index.html, og skriv inn (alternativet med deaktiverer caching) følgende linje for å åpne adressen i nettleseren http://localhost:8080.
Hvordan fangede feil vises
Klikk først på knappen "Hallo".
Vi fanget en feil, så den vil ikke dukke opp anropsstakken, og blir derfor ikke overvåket i konsollen. Men siden vi sender til Sentry rapporter en feil manuelt, vil vi se en melding om det på kontoen din.
Merknader:
Vi kan spore hvilken linje (24) som inneholder feilen
I tillegg viser brødsmulesporet nettleserhandlingene som førte til feilen.
Hvordan ufangede feil vises
Klikk på knappen "Feil".
Feilen bobler opp anropsstakken og dermed vises en feilmelding på konsollen. Etter dette overvåker Sentry automatisk feilen, uten ytterligere handlinger.
Merknader:
Vi kan se i hvilken linje (30) feilen er tapt
Det er ingen brødsmulesti (jeg forstår ikke helt hvorfor)
Hvordan sikre prosjektsikkerhet
Du har kanskje lagt merke til måten vi kontrollerer hvilke sider som kan rapportere feil til prosjektet vårt Sentry; med hjelp DSN poster. Problemet er at inndataene kan sees av alle som ser på kildekoden til siden din.
For å unngå dette må vi begrense antall domener som kan sende inn feilrapporter til prosjektet vårt. I dette eksemplet brukte vi localhost (lokal vert). Dette alternativet er konfigurert i innstillingsfanen Sentry-prosjekt, Sentry-prosjektinnstilling.
Utgivelser
Hvis du tenker på hvordan du bruker Sentry i forskjellige varianter av applikasjonen vår, trenger vi en slags mekanisme som markerer feil med et versjonsnummer.
Tross alt vil vi ikke at feilen vi fikset skal dukke opp igjen, og vi tror at det vi fikset ikke fungerte. Det kan også være at brukeren har lansert en eldre, bufret versjon av applikasjonen.
For å løse problemet må du angi identifikatoren utgivelse (versjoner) ved oppstart Sentry.
Etter dette vil alle nye feil bli merket som utgivelse (0.1.0), det vil si at de vil være knyttet til riktig versjon av koden.
Merknader:
Vi har funnet ut en enkel måte å bruke utgivelser på
Sentry lar deg bruke mer komplekse deres bruk av, som er nært knyttet til GitHub. Denne funksjonen gjør det mulig å spore feil før du utfører visse operasjoner.
PS Den andre delen er lengre, så den kommer i et eget innlegg.