JavaScript-də yazılmış Front-End Proqramlarda Sentry ilə Monitorinq Səhvləri: 1-ci Hissə

Xidmət Sentry yazılmış ön proqramlardakı səhvləri uzaqdan izləməyə imkan verir JavaScript.

JavaScript-də yazılmış Front-End Proqramlarda Sentry ilə Monitorinq Səhvləri: 1-ci Hissə

Ön uç proqramlardakı problemləri həll etməyə çalışırıq JavaScript çətin ola bilər, çünki onlar istifadəçinin brauzerində yaranır və sizin tez-tez istifadə edə bilmirsiniz. Bununla belə, Sentry səhvlərə uzaqdan nəzarət etməyə imkan verir.

Burada Bu məqalədə müzakirə olunan həlləri yükləyə bilərsiniz.

Nə lazımdır

Bu nümunələrdən istifadə etmək istəyirsinizsə, sizə lazım olacaq:

  • Node.js: Tətbiqin bir hissəsi olmayan xüsusiyyətlərlə zəngin inkişaf aləti. Ən son LTS versiyasını (8.12.0) endirdik
  • Sentry: Ya Sentry xidmətində Hesab (siz ayda 10 minə qədər səhvi pulsuz qeyd edə bilərsiniz) və ya quraşdırılmış yerli Sentry - https://github.com/getsentry/onpremise

Serverinizdə quraşdırma

Serverinizdə Sentry On-Premise quraşdırmaq üçün 2 yolla gedə bilərsiniz

  1. rpm qurun və onları quraşdırın - https://habr.com/ru/post/500632/

  2. Rəsmi quraşdırıcıdan istifadə edin:

    Установить на сервер docker и docker-compose
    git clone https://github.com/getsentry/onpremise.git
    ./install.sh

Standart İstifadə

Başlamaq üçün xidmət saytından yenisini əlavə edin Sentry- tətbiq üçün layihə. İstədiyiniz dili seçdikdən sonra müvafiq sənədləri alacaqsınız. Bizim vəziyyətimizdə seçdik JavaScript.

Birinci nümunə standartdır JavaScript. Burada iki düymə var: "Salam" (Salam) və "Səhv" (Səhv).

Düyməni basdıqdan sonra "Salam", ekran yenidən başlayacaq və bloklanacaq cəhd səhvi aşkar edəcək və tutacaq. Səhv "tutulduqdan" sonra səhv hesabatı əl ilə xidmətə göndərilir Sentry.

"Xəta" düyməsi bir səhvi asanlıqla aşkar etməyə imkan verir.

vanil/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>

Qeydlər:

  • Sentry CDN-dən quraşdırılıb və qlobal dəyişən kimi ifşa olunur
  • Bir az əvvəl biz JavaScript-də Sentry-ni işə saldıq

Bu nümunəni yoxlamaq üçün statik veb server platformasından istifadə edə bilərik Node.js: http server. Faylın saxlandığı qovluğa gedin index.html, və brauzerdə ünvanı açmaq üçün aşağıdakı sətri daxil edin (keşləməni söndürən seçim). http://localhost:8080.

Tutulan səhvlər necə göstərilir

Əvvəlcə düyməni basın "Salam".

JavaScript-də yazılmış Front-End Proqramlarda Sentry ilə Monitorinq Səhvləri: 1-ci Hissə

Biz bir səhv tutduq, ona görə də zəng yığını açılmayacaq və buna görə də konsolda izlənilmir. Ancaq göndərdiyimiz gündən bəri Sentry səhvi əl ilə bildirsəniz, hesabınızda bu barədə bir mesaj görəcəyik.

JavaScript-də yazılmış Front-End Proqramlarda Sentry ilə Monitorinq Səhvləri: 1-ci Hissə

Qeydlər:

  • Hansı sətirdə (24) səhvin olduğunu izləyə bilərik
  • Bundan əlavə, çörək qırıntıları izi səhvə səbəb olan brauzer hərəkətlərini göstərir.

Tutulmamış səhvlər necə göstərilir

Düyməni klikləməklə "Səhv".

JavaScript-də yazılmış Front-End Proqramlarda Sentry ilə Monitorinq Səhvləri: 1-ci Hissə

Səhv zəng yığınını artırır və beləliklə, konsolda səhv mesajı göstərilir. Bundan sonra Sentry heç bir əlavə hərəkət etmədən səhvi avtomatik izləyir.

JavaScript-də yazılmış Front-End Proqramlarda Sentry ilə Monitorinq Səhvləri: 1-ci Hissə

Qeydlər:

  • Hansı sətirdə (30) səhvin itdiyini görə bilərik
  • Çörək qırıntısı cığırı yoxdur (niyəsini tam başa düşmürəm)

Layihənin təhlükəsizliyini necə təmin etmək olar

Hansı səhifələrin layihəmizə səhvlər barədə məlumat verə biləcəyinə nəzarət etməyimizə diqqət yetirmiş ola bilərsiniz Sentry; köməyi ilə dsn qeydlər. Problem ondadır ki, giriş səhifənizin mənbə koduna baxan hər kəs tərəfindən görülə bilər.

Bunun qarşısını almaq üçün layihəmizə səhv hesabatları təqdim edə biləcək domenlərin sayını məhdudlaşdırmalıyıq. Bu nümunədə istifadə etdik localhost (yerli ev sahibi). Bu seçim parametrlər sekmesinde konfiqurasiya edilmişdir Sentry- layihə, Sentry Layihə Parametrləri.

JavaScript-də yazılmış Front-End Proqramlarda Sentry ilə Monitorinq Səhvləri: 1-ci Hissə

Buraxılışlar

Necə istifadə edəcəyinizi düşünsəniz Sentry tətbiqimizin müxtəlif varyasyonlarında, o zaman səhvləri versiya nömrəsi ilə qeyd edəcək bir növ mexanizmə ehtiyacımız var.

Axı, biz düzəltdiyimiz səhvin yenidən görünməsini istəmirik və düzəltdiyimiz şeyin işləmədiyini düşünürük. O da ola bilər ki, istifadəçi tətbiqin köhnə, keşlənmiş versiyasını işə salıb.

Problemi həll etmək üçün identifikatoru daxil etməlisiniz buraxmaq (versiyalar) başlanğıcda Sentry.

vanil/index.html

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

Bundan sonra bütün yeni səhvlər kimi qeyd olunacaq buraxılış (0.1.0), yəni kodun düzgün versiyasına bağlanacaqlar.

JavaScript-də yazılmış Front-End Proqramlarda Sentry ilə Monitorinq Səhvləri: 1-ci Hissə

Qeydlər:

  • Relizlərdən istifadə etməyin sadə yolunu tapdıq
  • Sentry daha çox istifadə etməyə imkan verir kompleks onların istifadəilə sıx əlaqəlidir Github. Bu funksiya müəyyən əməliyyatları yerinə yetirməzdən əvvəl səhvləri izləməyə imkan verir.

P.S. İkinci hissə daha uzun olduğu üçün ayrıca postda olacaq.

PS Telegram söhbəti Sentry https://t.me/sentry_ru

PS Bu yazının tərcüməsi olduğunu qeyd etməyi unutmuşam https://codeburst.io/sentry-error-reporting-by-example-part-1-999b2df11556

Mənbə: www.habr.com

Добавить комментарий