Klaidų stebėjimas naudojant „Sentry“ priekinėse programose, parašytose „JavaScript“: 1 dalis
Tarnyba Sargybinis leidžia nuotoliniu būdu stebėti įvestų priekinių programų klaidas JavaScript.
Bandoma išspręsti įjungtų priekinių programų problemas JavaScript gali būti sudėtinga, nes jie kilę iš vartotojo naršyklės, prie kurios jūs dažnai neturite prieigos. Tačiau Sargybinis leidžia nuotoliniu būdu stebėti klaidas.
Čia Galite atsisiųsti šiame straipsnyje aptartus sprendimus.
Kas yra būtina
Jei norite naudoti šiuos pavyzdžius, jums reikės:
Node.js: daug funkcijų turintis kūrimo įrankis, kuris nėra programos dalis. Atsisiuntėme naujausią LTS versiją (8.12.0)
Sargybinis: arba paskyra „Sentry“ paslaugoje (galite nemokamai įrašyti iki 10 tūkst. klaidų per mėnesį) arba įdiegta vietinė „Sentry“ - https://github.com/getsentry/onpremise
Diegimas jūsų serveryje
Norėdami įdiegti „Sentry On-Premise“ savo serveryje, galite atlikti du būdus
Установить на сервер docker и docker-compose
git clone https://github.com/getsentry/onpremise.git
./install.sh
Standartinis naudojimas
Norėdami pradėti, pridėkite naują iš paslaugos svetainės Sargybinis- paraiškos projektas. Pasirinkę norimą kalbą gausite atitinkamą dokumentaciją. Mūsų atveju pasirinkome JavaScript.
Pirmasis pavyzdys yra standartinis JavaScript. Čia yra du mygtukai: "Sveiki" (Sveiki) ir "Klaida" (Klaida).
Spustelėjus mygtuką "Sveiki", ekranas bus paleistas iš naujo ir blokuojamas pabandyti aptiks ir pagaus klaidą. „Pagavus“ klaidą, klaidos ataskaita rankiniu būdu siunčiama tarnybai Sargybinis.
Sentry įdiegiamas iš CDN ir rodomas kaip visuotinis kintamasis
Šiek tiek anksčiau paleidome „Sentry“ savo „JavaScript“.
Norėdami išbandyti šį pavyzdį, galime naudoti statinę žiniatinklio serverio platformą Node.js: http serveris. Eikite į aplanką, kuriame saugomas failas index.html, ir įveskite (parinktis, kai išjungiamas kaupimas talpykloje) šią eilutę, kad atidarytumėte adresą naršyklėje http://localhost:8080.
Kaip rodomos sugautos klaidos
Pirmiausia spustelėkite mygtuką "Sveiki".
Mes užfiksavome klaidą, todėl ji nebus rodoma skambučių krūvoje, todėl konsolėje nėra stebima. Tačiau kadangi mes siunčiame į Sargybinis praneškite apie klaidą rankiniu būdu, jūsų paskyroje matysime pranešimą apie tai.
Pastabos:
Galime atsekti, kurioje eilutėje (24) yra klaida
Be to, naršymo kelyje rodomi naršyklės veiksmai, dėl kurių įvyko klaida.
Kaip rodomos nepagautos klaidos
Spustelėjus mygtuką "Klaida".
Klaida pakyla į skambučių krūvą, todėl konsolėje rodomas klaidos pranešimas. Po to Sentry automatiškai stebi klaidą be jokių papildomų veiksmų.
Pastabos:
Matome, kurioje eilutėje (30) klaida pamesta
Nėra džiūvėsėlių tako (nelabai suprantu kodėl)
Kaip užtikrinti projekto saugumą
Galbūt pastebėjote, kaip mes kontroliuojame, kurie puslapiai gali pranešti apie mūsų projekto klaidas Sargybinis; su pagalba DSN įrašų. Problema ta, kad įvestį gali matyti visi, kurie peržiūri jūsų puslapio šaltinio kodą.
Norėdami to išvengti, turime apriboti domenų, galinčių pateikti mūsų projektui klaidų ataskaitas, skaičių. Šiame pavyzdyje mes naudojome localhost (vietinis šeimininkas). Ši parinktis sukonfigūruota nustatymų skirtuke Sargybinis- projektas, Sentry projekto nustatymas.
Išleidimai
Jei galvojate, kaip naudoti Sargybinis skirtinguose mūsų programos variantuose, tada mums reikia kažkokio mechanizmo, kuris pažymėtų klaidas versijos numeriu.
Juk nenorime, kad klaida, kurią ištaisėme, vėl pasirodytų, ir manome, kad tai, ką ištaisėme, neveikė. Taip pat gali būti, kad vartotojas paleido senesnę talpykloje saugomą programos versiją.
Norėdami išspręsti problemą, turite įvesti identifikatorių paleisti (versijos) paleidžiant Sargybinis.
Po to visos naujos klaidos bus pažymėtos kaip leidimas (0.1.0), tai yra, jie bus susieti su teisinga kodo versija.
Pastabos:
Mes sugalvojome paprastą leidimų naudojimo būdą
Sentry leidžia naudoti daugiau kompleksas jų использование, kuris yra glaudžiai susijęs su GitHub. Ši funkcija leidžia sekti klaidas prieš atliekant tam tikras operacijas.
PS Antroji dalis ilgesnė, tad bus atskirame įraše.