Hitilafu ya Ufuatiliaji na Mtumaji katika Programu za Mwisho za mbele za JavaScript: Sehemu ya 1

Huduma Sentry hukuruhusu kufuatilia hitilafu kwa mbali katika programu za mbele zilizoandikwa JavaScript.

Hitilafu ya Ufuatiliaji na Mtumaji katika Programu za Mwisho za mbele za JavaScript: Sehemu ya 1

Kujaribu kurekebisha matatizo katika programu za mbele-mwisho JavaScript inaweza kuwa gumu kwa sababu zinatoka kwenye kivinjari cha mtumiaji, ambacho mara nyingi huna ufikiaji. Hata hivyo, Sentry hukuruhusu kufuatilia mende kwa mbali.

Hapa Unaweza kupakua suluhisho zilizojadiliwa katika nakala hii.

Kinachohitajika

Ikiwa unataka kutumia mifano hii, utahitaji:

  • node.js: Zana ya ukuzaji yenye kazi nyingi ambayo si sehemu ya programu. Tulipakua toleo la hivi punde la LTS (8.12.0)
  • Sentry: Ama Akaunti katika huduma ya Sentry (unaweza kurekodi hadi mende elfu 10 kwa mwezi bila malipo) au Sentry ya ndani iliyosakinishwa - https://github.com/getsentry/onpremise

Ufungaji kwenye seva yako

Kuna njia 2 za kusakinisha Sentry On-Premise kwenye seva zako

  1. Jenga rpm na usakinishe - https://habr.com/ru/post/500632/

  2. Tumia kisakinishi rasmi:

    Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½Π° сСрвСр docker ΠΈ docker-compose
    git clone https://github.com/getsentry/onpremise.git
    ./install.sh

Matumizi ya kawaida

Ili kuanza, ongeza mpya kutoka kwa tovuti ya huduma Sentry- mradi wa maombi. Baada ya kuchagua lugha inayotakiwa, utapokea nyaraka zinazofaa. Kwa upande wetu, tulichagua JavaScript.

Mfano wa kwanza ni wa kawaida JavaScript. Kuna vifungo viwili hapa: "Halo" (habari) na "Kosa" (Hitilafu).

Baada ya kubofya kitufe "Halo", skrini itapakia upya, na kizuizi kujaribu tafuta na ushike mdudu. Baada ya mdudu "kukamatwa", ripoti ya makosa hutumwa kwa huduma kwa mikono Sentry.

Kitufe cha "Hitilafu" hukuruhusu kupata hitilafu kwa urahisi.

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>

Notes:

  • Sentry imesakinishwa kutoka kwa CDN na kufichuliwa kama kigezo cha kimataifa
  • Mapema kidogo, tulizindua Sentry katika JavaScript yetu.

Ili kujaribu mfano huu, tunaweza kutumia mfumo tuli wa seva ya wavuti node.js: seva ya http. Nenda kwenye folda ambapo faili imehifadhiwa index.html, na ingiza (chaguo na kulemaza caching) mstari ufuatao ili kufungua anwani kwenye kivinjari http://localhost:8080.

Jinsi mende zilizonaswa huonyeshwa

Kwanza bonyeza kitufe "Halo".

Hitilafu ya Ufuatiliaji na Mtumaji katika Programu za Mwisho za mbele za JavaScript: Sehemu ya 1

Tumepata hitilafu, kwa hivyo haitaelea kwenye safu ya simu, na kwa hivyo haifuatiliwi kwenye kiweko. Walakini, kwa kuwa tunasafirisha kwenda Sentry ripoti hitilafu wewe mwenyewe, utaona ujumbe kuihusu katika akaunti yako.

Hitilafu ya Ufuatiliaji na Mtumaji katika Programu za Mwisho za mbele za JavaScript: Sehemu ya 1

Notes:

  • Tunaweza kufuatilia ni mstari gani (24) mdudu yuko
  • Kwa kuongeza, mkate wa mkate unaonyesha vitendo vya kivinjari vilivyosababisha kosa.

Jinsi mende ambazo hazijashughulikiwa huonyeshwa

Kubofya kitufe "Kosa".

Hitilafu ya Ufuatiliaji na Mtumaji katika Programu za Mwisho za mbele za JavaScript: Sehemu ya 1

Mdudu huelea juu ya safu ya simu na kwa hivyo ujumbe wa makosa huonyeshwa kwenye koni. Baada ya hapo, Sentry hufuatilia mdudu kiotomatiki, bila vitendo vyovyote vya ziada.

Hitilafu ya Ufuatiliaji na Mtumaji katika Programu za Mwisho za mbele za JavaScript: Sehemu ya 1

Notes:

  • Tunaweza kuona ni mstari gani (30) mdudu amepotea
  • Makombo ya mkate hayajatolewa (sielewi kwanini)

Jinsi ya kuhakikisha usalama wa mradi

Huenda umeona jinsi tunavyodhibiti ni kurasa zipi zinaweza kuripoti makosa kwa mradi wetu. Sentry; kwa msaada dsn kumbukumbu. Shida ni kwamba ingizo linaweza kuonekana na mtu yeyote anayetazama msimbo wa chanzo wa ukurasa wako.

Ili kuepuka hili, tunahitaji kupunguza idadi ya vikoa vinavyoweza kuwasilisha ripoti za makosa kwa mradi wetu. Katika mfano huu tulitumia lochost (mwenyeji wa ndani). Chaguo hili limeundwa kwenye kichupo cha mipangilio. Sentry- mradi, Mpangilio wa Mradi wa Sentry.

Hitilafu ya Ufuatiliaji na Mtumaji katika Programu za Mwisho za mbele za JavaScript: Sehemu ya 1

Matoleo

Ikiwa unafikiria jinsi ya kutumia Sentry katika tofauti tofauti za programu yetu, basi utaratibu unahitajika hapa ambao utaashiria makosa na nambari ya toleo.

Baada ya yote, sio lazima kwa mdudu tuliorekebisha kuonekana tena, na tulifikiria kuwa kile tulichorekebisha hakikufanya kazi. Huenda pia kuwa mtumiaji anaendesha toleo la zamani, lililoakibishwa la programu.

Ili kutatua tatizo, unahitaji kuingiza kitambulisho kutolewa (matoleo) wakati wa kuanza Sentry.

vanilla/index.html

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

Baada ya hapo, makosa yote mapya yatawekwa alama kama kutolewa (0.1.0), yaani, wataunganishwa na toleo sahihi la kanuni.

Hitilafu ya Ufuatiliaji na Mtumaji katika Programu za Mwisho za mbele za JavaScript: Sehemu ya 1

Notes:

  • Tumeshughulikia njia rahisi ya kutumia matoleo.
  • Sentry hukuruhusu kutuma ombi zaidi changamano zao matumizi ya, ambayo inahusiana kwa karibu na GitHub. Kipengele hiki hufanya iwezekanavyo kufuatilia hitilafu kabla ya kufanya shughuli fulani.

PS Sehemu ya pili ni ndefu, hivyo itakuwa katika chapisho tofauti.

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

PS Nilisahau kuashiria kuwa hii ni tafsiri ya chapisho https://codeburst.io/sentry-error-reporting-by-example-part-1-999b2df11556

Chanzo: mapenzi.com

Kuongeza maoni