Breadcrumbs w Sentry: addBreadcrumb, filtry i limity | We.Inc
Jak działają breadcrumbs Sentry w SDK JavaScript: breadcrumbs automatyczne i ręczne, filtrowanie beforeBreadcrumb, domyślna wartość maxBreadcrumbs równa 100 oraz czyszczenie danych.
Breadcrumbs w Sentry to małe zapisy tego, co działo się tuż przed błędem: kliknięć, żądań sieciowych, komunikatów konsoli i zmian strony. SDK zbiera wiele z nich automatycznie, własne dodajesz przez Sentry.addBreadcrumb(), a wszystkie są dołączane do następnego zdarzenia błędu. Domyślnie SDK JavaScript przechowuje ostatnie 100.
Ustawienia breadcrumbs w skrócie
Ustawienie lub wywołanie
Co robi
Domyślnie
maxBreadcrumbs
Ile breadcrumbs jest przechowywanych
beforeBreadcrumb
Edytuje lub odrzuca każdy breadcrumb przed zapisaniem
Nieustawione
Sentry.addBreadcrumb()
Zapisuje Twój własny breadcrumb
Nie dotyczy
fatal, error, warning, log, info lub debug
Nieustawione
Gdy klient trafi na błąd na Twojej stronie, stack trace mówi, gdzie kod się zepsuł, ale nie co klient zrobił wcześniej. Breadcrumbs wypełniają tę lukę. Ten przewodnik dotyczy przeglądarkowego SDK JavaScript; inne SDK Sentry działają według tej samej idei, z własnymi wartościami domyślnymi.
SDK nasłuchuje kliknięć i naciśnięć klawiszy, żądań fetch i XHR, wywołań konsoli oraz zmian lokalizacji i zamienia każde z nich w breadcrumb.
Twój kod może dodawać kolejne przez Sentry.addBreadcrumb(), na przykład po zalogowaniu lub zastosowaniu kuponu.
Każdy nowy breadcrumb przechodzi najpierw przez beforeBreadcrumb, jeśli je ustawisz. Zwrócenie null go odrzuca.
Przechowywany ślad jest ograniczony do maxBreadcrumbs; gdy lista przekroczy limit, SDK odcina najstarsze wpisy.
Gdy błąd zostanie przechwycony, bieżący ślad jest dołączany do tego zdarzenia i wyświetlany na stronie zgłoszenia.
Używaj krótkiej, stałej kategorii, takiej jak auth, cart lub payment, aby filtrować ślad na stronie zgłoszenia.
Szczegóły umieszczaj w data, a nie w message, aby wyświetlały się jako pola.
Nigdy nie umieszczaj w breadcrumb haseł, numerów kart ani pełnych adresów. Wytyczne samego Sentry mówią, by nie logować danych osobowych, gdy logi konsoli stają się breadcrumbs.
Jeśli konsola jest zaszumiona, odrzucaj breadcrumbs z konsoli w beforeBreadcrumb, zamiast obniżać maxBreadcrumbs dla wszystkiego.
Ustawienie maxBreadcrumbs na 0 wyłącza breadcrumbs; SDK kończy działanie wcześniej dla wartości 0 lub mniejszych.
Najczęściej zadawane pytania
Jaka jest domyślna wartość maxBreadcrumbs?
100. Dokumentacja Sentry podaje domyślną wartość 100 dla SDK JavaScript, a kod źródłowy SDK używa tej samej liczby, gdy opcja nie jest ustawiona.
Które breadcrumbs są zapisywane automatycznie?
W SDK przeglądarkowym: kliknięcia i naciśnięcia klawiszy na elementach DOM, żądania XHR i fetch, wywołania API konsoli oraz wszystkie zmiany lokalizacji.
Jakie klucze może mieć breadcrumb?
type, category, message, level, timestamp i data. Dokumentacja podaje, że inne klucze są odrzucane podczas przetwarzania.
Jak zapobiec zapisaniu breadcrumbu?
Ustaw beforeBreadcrumb w Sentry.init. Otrzymuje każdy breadcrumb i opcjonalną wskazówkę (hint) i może zwrócić zmieniony breadcrumb albo null, aby go odrzucić.
Czy breadcrumbs są wysyłane samodzielnie?
Nie. Są przechowywane w pamięci i dołączane do następnego zdarzenia wysyłanego przez SDK, na przykład błędu.
Ręczne breadcrumbs, które warto dodać
Automatyczne breadcrumbs mówią, co zrobiła przeglądarka. Ręczne mówią, co działo się w procesie biznesowym: klient wybrał dostawę ekspresową, zastosowano kod rabatowy, wybrano datę rezerwacji.
O te momenty osoba z obsługi klienta pyta najpierw, więc ich zapisywanie oszczędza rundę pytań.
Ochrona danych osobowych
Breadcrumbs często wychwytują tekst, którego nie chciałeś przechowywać: e-mail w linii konsoli, zapytanie wyszukiwania w adresie URL. Czyść je w beforeBreadcrumb, zanim zostaną zapisane, a resztę zdarzenia obsłuż w beforeSend.
Sentry oferuje też czyszczenie danych po stronie serwera, konfigurowane w jego interfejsie, które działa jak druga siatka bezpieczeństwa.
Przykłady kodu
Dodaj ręczny breadcrumb
Zapisz krok biznesowy z kategorią, krótkim komunikatem, poziomem i dodatkowymi polami w data.
Filtruj i czyść breadcrumbs
Odrzuć szum z konsoli, zamaskuj adresy e-mail i wpisz domyślny limit jawnie, aby łatwo go zmienić.
Symulator śladu breadcrumbs
Zapisz kilka zdarzeń, ustaw opcje, a potem wywołaj błąd, aby zobaczyć, które breadcrumbs zostałyby z nim wysłane. To symulacja w Twojej przeglądarce; nic nie jest wysyłane do Sentry.