Monitorowanie błędów za pomocą Sentry w aplikacjach front-end napisanych w JavaScript: część 1

Platforma Wartownik umożliwia zdalne monitorowanie błędów w aplikacjach front-end napisanych w JAVASCRIPT.

Monitorowanie błędów za pomocą Sentry w aplikacjach front-end napisanych w JavaScript: część 1

Próbuję rozwiązać problemy w aplikacjach front-endowych JAVASCRIPT może być trudnym zadaniem, ponieważ mają miejsce w przeglądarce użytkownika, do której często nie masz dostępu. Jednakże, Wartownik umożliwia zdalne monitorowanie błędów.

Tutaj Możesz pobrać rozwiązania omówione w tym artykule.

Co jest konieczne

Jeśli chcesz skorzystać z tych przykładów, będziesz potrzebować:

  • node.js:Wielofunkcyjne narzędzie programistyczne, które nie jest częścią aplikacji. Pobraliśmy najnowszą wersję LTS (8.12.0)
  • Wartownik: Albo konto w usłudze Sentry (możesz bezpłatnie rejestrować do 10 tysięcy błędów miesięcznie), albo lokalnie zainstalowany Sentry — https://github.com/getsentry/onpremise

Instalacja na Twoim serwerze

Aby zainstalować Sentry On-Premise na swoim serwerze, możesz skorzystać z 2 sposobów

  1. Zbuduj rpm i zainstaluj je - https://habr.com/ru/post/500632/

  2. Użyj oficjalnego instalatora:

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

Standardowe zastosowanie

Aby rozpocząć, dodaj nowy ze strony internetowej usługi Wartownik-projekt aplikacji. Po wybraniu języka otrzymasz odpowiednią dokumentację. W naszym przypadku wybraliśmy JAVASCRIPT.

Pierwszy przykład jest standardowy. JAVASCRIPT. Znajdują się tutaj dwa przyciski: "Cześć" (Cześć) i "Błąd" (Błąd).

Po kliknięciu przycisku "Cześć", ekran uruchomi się ponownie i zablokuje próbować wykryje i złapie błąd. Po wykryciu błędu raport o błędzie jest ręcznie przesyłany do usługi Wartownik.

Przycisk „Błąd” ułatwia wykrycie błędu.

wanilia/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://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>

Uwagi:

  • Sentry jest instalowany z CDN i udostępniany jako zmienna globalna
  • Wcześniej uruchomiliśmy Sentry w naszym JavaScript

Aby przetestować ten przykład, możemy użyć statycznej platformy serwera WWW node.js: serwer http. Przejdź do folderu, w którym znajduje się plik index.htmli wprowadź (opcja z wyłącza buforowanie) następujący wiersz, aby otworzyć adres w przeglądarce http://localhost:8080.

W jaki sposób wyświetlane są złapane błędy?

Najpierw kliknij przycisk "Cześć".

Monitorowanie błędów za pomocą Sentry w aplikacjach front-end napisanych w JavaScript: część 1

Wykryliśmy błąd, więc nie będzie on umieszczany w stosie wywołań i w związku z tym nie będzie monitorowany w konsoli. Ponieważ jednak wysyłamy Wartownik Jeśli ręcznie zgłosisz błąd, na Twoim koncie pojawi się komunikat informujący o tym fakcie.

Monitorowanie błędów za pomocą Sentry w aplikacjach front-end napisanych w JavaScript: część 1

Uwagi:

  • Możemy prześledzić, w którym wierszu (24) wkradł się błąd
  • Ponadto ścieżka nawigacyjna wyświetla działania przeglądarki, które doprowadziły do ​​błędu.

Jak wyświetlane są niezauważone błędy

Kliknij przycisk "Błąd".

Monitorowanie błędów za pomocą Sentry w aplikacjach front-end napisanych w JavaScript: część 1

Błąd jest wykrywany w stosie wywołań, a na konsoli wyświetlany jest komunikat o błędzie. Następnie Sentry automatycznie monitoruje błąd bez konieczności podejmowania dodatkowych działań.

Monitorowanie błędów za pomocą Sentry w aplikacjach front-end napisanych w JavaScript: część 1

Uwagi:

  • Możemy zobaczyć, w którym wierszu (30) ukryty jest błąd
  • Nie ma śladu (nie do końca rozumiem dlaczego)

Jak zapewnić bezpieczeństwo projektu

Być może zauważyłeś/aś sposób, w jaki kontrolujemy, które strony mogą przesyłać raporty o błędach do naszego projektu. Wartownik; z pomocą DSN dokumentacja. Problem polega na tym, że wprowadzone dane może zobaczyć każdy, kto przegląda kod źródłowy Twojej strony.

Aby temu zapobiec, musimy ograniczyć liczbę domen, które mogą przesyłać raporty o błędach do naszego projektu. W tym przykładzie użyliśmy localhost (lokalny gospodarz). Opcję tę można skonfigurować w zakładce ustawień. Wartownik-projekt, Ustawienia projektu Sentry.

Monitorowanie błędów za pomocą Sentry w aplikacjach front-end napisanych w JavaScript: część 1

Wydania

Jeśli myślisz o tym, jak używać Wartownik w różnych wariantach naszej aplikacji potrzebny jest tutaj jakiś mechanizm, który będzie oznaczał błędy numerem wersji.

Nie chcemy, aby naprawiony przez nas błąd pojawił się ponownie i uznaliśmy, że to, co naprawiliśmy, nie zadziałało. Możliwe również, że użytkownik uruchomił starszą, zapisaną w pamięci podręcznej wersję aplikacji.

Aby rozwiązać problem należy wprowadzić identyfikator wydanie (wersje) przy uruchomieniu Wartownik.

wanilia/index.html

...
var RELEASE = '0.1.0';
Sentry.init({
  dsn: 'https://b5bf359072254626aba8e64368e77b7d@sentry.io/1289664',
  release: RELEASE,
});
...

Po tym wszystkie nowe błędy będą oznaczane jako uwolnienie (0.1.0), czyli będą powiązane z poprawną wersją kodu.

Monitorowanie błędów za pomocą Sentry w aplikacjach front-end napisanych w JavaScript: część 1

Uwagi:

  • Omówiliśmy prosty sposób korzystania z wydań.
  • Sentry pozwala na korzystanie z większej ilości złożony ich wykorzystanie, który jest ściśle powiązany z GitHub. Funkcja ta umożliwia śledzenie błędów przed wykonaniem pewnych operacji.

PS. Część druga jest dłuższa, więc będzie w osobnym poście.

PS. Czat telegramowy Sentry https://t.me/sentry_ru

PS. Zapomniałem dodać, że to tłumaczenie posta https://codeburst.io/sentry-error-reporting-by-example-part-1-999b2df11556

Źródło: www.habr.com

Kup niezawodny hosting dla stron z ochroną DDoS, serwery VPS VDS 🔥 Kup niezawodny hosting stron internetowych z ochroną DDoS, serwery VPS VDS | ProHoster