Breadcrumb di Sentry: la traccia prima di un errore
Breadcrumb di Sentry
Breadcrumb di Sentry: addBreadcrumb, filtri e limiti | We.Inc
Come funzionano i breadcrumb di Sentry nell'SDK JavaScript: breadcrumb automatici e manuali, filtro con beforeBreadcrumb, il valore predefinito di maxBreadcrumbs a 100 e la pulizia dei dati.
In Sentry i breadcrumb sono piccoli record di ciò che è successo poco prima di un errore: clic, richieste di rete, messaggi della console e cambi di pagina. L'SDK ne raccoglie molti in automatico, tu aggiungi i tuoi con Sentry.addBreadcrumb(), e vengono allegati al successivo evento di errore. Per impostazione predefinita l'SDK JavaScript conserva gli ultimi 100.
Le impostazioni dei breadcrumb in sintesi
Impostazione o chiamata
Cosa fa
Predefinito
maxBreadcrumbs
Quanti breadcrumb vengono conservati
beforeBreadcrumb
Modifica o scarta ogni breadcrumb prima che venga salvato
Non impostato
Sentry.addBreadcrumb()
Registra un tuo breadcrumb
Non applicabile
fatal, error, warning, log, info o debug
Non impostato
Quando un cliente incontra un errore sul tuo sito, lo stack trace dice dove si è rotto il codice ma non cosa ha fatto prima. I breadcrumb colmano quel vuoto. Questa guida riguarda l'SDK JavaScript per browser; gli altri SDK di Sentry seguono la stessa idea con i propri valori predefiniti.
L'SDK ascolta clic e pressioni di tasti, richieste fetch e XHR, chiamate alla console e cambi di indirizzo, e trasforma ciascuno in un breadcrumb.
Il tuo codice può aggiungerne altri con Sentry.addBreadcrumb(), ad esempio dopo un accesso o l'applicazione di un coupon.
Ogni nuovo breadcrumb passa prima per beforeBreadcrumb, se lo hai impostato. Restituire null lo scarta.
La traccia conservata ha un tetto pari a maxBreadcrumbs; l'SDK elimina i più vecchi quando l'elenco supera il limite.
Quando viene catturato un errore, la traccia corrente viene allegata a quell'evento e mostrata nella pagina dell'issue.
Usa una categoria breve e stabile come auth, cart o payment, così puoi filtrare la traccia nella pagina dell'issue.
Metti i dettagli in data, non nel messaggio, così compaiono come campi.
Non mettere mai password, numeri di carta o indirizzi completi in un breadcrumb. Le indicazioni stesse di Sentry dicono di non registrare dati personali quando i log della console diventano breadcrumb.
Se la console è rumorosa, scarta i breadcrumb della console in beforeBreadcrumb invece di abbassare maxBreadcrumbs per tutto.
Impostare maxBreadcrumbs a 0 disattiva i breadcrumb; l'SDK esce subito per valori pari a 0 o inferiori.
Domande frequenti
Qual è il valore predefinito di maxBreadcrumbs?
100. La documentazione di Sentry indica un valore predefinito di 100 per l'SDK JavaScript, e il codice sorgente dell'SDK usa lo stesso numero quando l'opzione non è impostata.
Quali breadcrumb vengono registrati in automatico?
Nell'SDK per browser: clic e pressioni di tasti sugli elementi DOM, richieste XHR e fetch, chiamate all'API della console e tutti i cambi di indirizzo.
Quali chiavi può avere un breadcrumb?
type, category, message, level, timestamp e data. La documentazione dice che le altre chiavi vengono scartate durante l'elaborazione.
Come impedisco che un breadcrumb venga registrato?
Imposta beforeBreadcrumb in Sentry.init. Riceve ogni breadcrumb e un hint facoltativo, e può restituire un breadcrumb modificato oppure null per scartarlo.
I breadcrumb vengono inviati da soli?
No. Restano in memoria e vengono allegati al successivo evento inviato dall'SDK, come un errore.
Breadcrumb manuali che vale la pena aggiungere
I breadcrumb automatici ti dicono cosa ha fatto il browser. Quelli manuali ti dicono cosa è successo nel flusso di business: un cliente ha scelto la spedizione express, è stato applicato un codice sconto, è stata scelta una data di prenotazione.
Sono i momenti su cui chi fa assistenza fa domande per primi, quindi registrarli fa risparmiare un giro di domande.
Tenere fuori i dati personali
I breadcrumb raccolgono spesso testo che non volevi conservare: un'email in una riga della console, una query di ricerca in un URL. Puliscili in beforeBreadcrumb prima che vengano salvati, e usa beforeSend per il resto dell'evento.
Sentry offre anche una pulizia dei dati lato server configurabile nella sua interfaccia, che fa da seconda rete di sicurezza.
Esempi di codice
Aggiungere un breadcrumb manuale
Registra un passaggio del flusso con una categoria, un breve messaggio, un livello e campi aggiuntivi sotto data.
Filtrare e pulire i breadcrumb
Scarta il rumore della console, maschera gli indirizzi email e scrivi esplicitamente il limite predefinito così è facile cambiarlo.
Simulatore della traccia di breadcrumb
Registra qualche evento, imposta le opzioni, poi genera un errore per vedere quali breadcrumb viaggerebbero con esso. È una simulazione nel tuo browser; niente viene inviato a Sentry.