Monitoraggio degli errori con Sentry in applicazioni frontend scritte in JavaScript: Parte 1

Servizio Sentry consente di monitorare da remoto i bug nelle applicazioni frontend scritte in JavaScript.

Monitoraggio degli errori con Sentry in applicazioni frontend scritte in JavaScript: Parte 1

Cercare di risolvere i problemi nelle applicazioni frontend può rivelarsi una sfida, poiché si verificano nel browser dell'utente, al quale spesso non si ha accesso. Tuttavia, JavaScript permette di monitorare da remoto i bug. Sentry è possibile scaricare le soluzioni discusse in questo articolo.

Qui Cosa serve

Se desideri utilizzare questi esempi, avrai bisogno di:

: Uno strumento multifunzionale per lo sviluppo che non fa parte dell'applicazione. Abbiamo scaricato l'ultima versione LTS (8.12.0)

Per installare Sentry On-Premise sul tuo server, puoi seguire due strade

Compilare il pacchetto rpm e installarlo —

  1. Utilizzare l'installer ufficiale: https://habr.com/ru/post/500632/

  2. Installare Docker e docker-compose sul server git clone https://github.com/getsentry/onpremise.git ./install.sh

    Utilizzo standard

Per iniziare, aggiungi un nuovo

Per iniziare, aggiungi un nuovo sito dal servizio Sentry-progetto per l'applicazione. Dopo aver selezionato la lingua desiderata, riceverai la relativa documentazione. In questo caso abbiamo scelto JavaScript.

Il primo esempio è un standard JavaScript. Qui ci sono due pulsanti: «Hello» (Ciao) e «Error» (Errore).

Dopo aver cliccato sul pulsante «Hello», lo schermo verrà ricaricato e il blocco try scoprirà e catturerà il bug. Una volta che il bug è «catturato», il report dell'errore viene inviato manualmente al servizio Sentry.

Il pulsante «Error» consente semplicemente di rilevare il bug.

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

Note:

  • Sentry è installato dal CDN e viene visualizzato come variabile globale
  • Poco fa abbiamo avviato Sentry nel nostro JavaScript

Per testare questo esempio, possiamo utilizzare una piattaforma server web statica Node.js: server http. Entriamo nella cartella dove si trova il file index.html, e digitiamo (l'opzione con disabilitare la cache) la seguente stringa per aprire nel browser l'indirizzo http://localhost:8080.

Come vengono visualizzati i bug catturati

Per prima cosa clicchiamo sul pulsante «Hello».

Monitoraggio degli errori con Sentry in applicazioni frontend scritte in JavaScript: Parte 1

Abbiamo catturato un bug, quindi non salirà nella stack di chiamate, e quindi non viene monitorato nella console. Tuttavia, poiché inviamo il Sentry report sul bug manualmente, vedremo un messaggio al riguardo nel nostro account.

Monitoraggio degli errori con Sentry in applicazioni frontend scritte in JavaScript: Parte 1

Note:

  • Possiamo seguire in quale linea (24) si è nascosto il bug
  • Inoltre, il breadcrumb mostra le azioni del browser che hanno portato all'errore.

Come vengono visualizzati i bug non catturati

Clicchiamo sul pulsante «Errore».

Monitoraggio degli errori con Sentry in applicazioni frontend scritte in JavaScript: Parte 1

Il bug risale nello stack delle chiamate e, di conseguenza, apparirà un messaggio di errore nella console. Dopo di che, Sentry monitora automaticamente il bug, senza ulteriori azioni.

Monitoraggio degli errori con Sentry in applicazioni frontend scritte in JavaScript: Parte 1

Note:

  • Possiamo vedere in quale riga (30) si è perso il bug
  • Non è prevista una breadcrumb (non capisco bene il motivo)

Come garantire la sicurezza del progetto

Potresti aver notato il modo in cui controlliamo le pagine che possono inviare segnalazioni di errore al nostro progetto Sentry; tramite dsn record. Il problema è che chiunque possa visualizzare il codice sorgente della tua pagina può vedere l'accesso.

Per evitare ciò, bisogna limitare il numero di domini che possono inviare segnalazioni di errore al nostro progetto. In questo esempio abbiamo usato localhost (localhost). Questa opzione è configurabile nella scheda delle impostazioni Sentry-del progetto, Sentry Project Setting.

Monitoraggio degli errori con Sentry in applicazioni frontend scritte in JavaScript: Parte 1

Release

Se si pensa a come utilizzare Sentry in diverse varianti della nostra applicazione, è necessaria una sorta di meccanismo che contrassegni gli errori con un numero di versione.

Non vogliamo che un bug che abbiamo corretto ricompaia, mentre pensiamo che ciò che abbiamo sistemato non abbia funzionato. Potrebbe anche succedere che l'utente avvii una versione più vecchia e memorizzata della app.

Per risolvere il problema, è necessario inserire l'identificativo alla versione (versione) all'avvio Sentry.

vanilla / index.html

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

Dopo di che, tutti i nuovi errori saranno contrassegnati come release (0.1.0), ovvero saranno associati alla corretta versione del codice.

Monitoraggio degli errori con Sentry in applicazioni frontend scritte in JavaScript: Parte 1

Note:

  • Abbiamo esaminato un metodo semplice per utilizzare le release
  • Sentry permette di applicare approcci più complessi essere l'uso, che è strettamente legato a GitHub. Questa funzione consente di monitorare i bug prima di effettuare determinate operazioni.

P.S. La seconda parte è più lunga, quindi sarà in un post separato.

P.S. Chat di Telegram Sentry https://t.me/sentry_ru

P.S. Ho dimenticato di specificare che si tratta di una traduzione del post https://codeburst.io/sentry-error-reporting-by-example-part-1-999b2df11556

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster