Bugsnag: co to jest, śledzenie błędów i zbieranie danych

Autor: IT Sectr Opublikowano: 2026-05-29 Czas czytania: 8 min

Bugsnag to platforma do monitorowania błędów i stabilności aplikacji, która automatycznie wykrywa, grupuje i priorytetyzuje błędy w środowisku produkcyjnym z pełnym kontekstem diagnostycznym. Według Bugsnag Documentation, 2025, Bugsnag przetwarza 6 miliardów zdarzeń miesięcznie dla ponad 7 000 klientów, w tym Airbnb, Lyft, Slack i PagerDuty.

Najważniejsze

  • Bugsnag — platforma error monitoring z automatycznym grupowaniem błędów, priorytetyzacją według severity i integracją z CI/CD.
  • Stability Score — metryka udziału bezawaryjnych sesji, pokazująca ogólną stabilność aplikacji w procentach.
  • Severity-based triage — automatyczny podział błędów na critical, warning i info, aby skupić zespół na najważniejszych.
  • Breadcrumbs — zapis sekwencji zdarzeń przed błędem z obsługą niestandardowych atrybutów od programisty.
  • Release tracking — powiązanie błędów z konkretną wersją aplikacji i automatyczne powiadomienie przy wzroście liczby crashy po wydaniu.

Czym jest Bugsnag w programowaniu

Bugsnag to platforma monitorowania stabilności aplikacji, założona w 2013 roku i przejęta przez SmartBear w 2019 roku. Główna różnica Bugsnag od konkurencji to skupienie na stabilności jako kluczowej metryce produktu, a nie tylko na liczbie błędów. Platforma zapewnia jeden pulpit nawigacyjny dla iOS, Android, React Native, Flutter, aplikacji webowych i backendowych.

Każdy błąd w Bugsnag otrzymuje automatyczną ocenę severity (critical, warning, info) na podstawie kontekstu: czy nastąpił crash aplikacji, czy dotyczy funkcji płatniczej, czy błąd powtarza się dla wielu użytkowników. Zespół widzi nie tylko listę błędów, ale priorytetyzowany backlog ze wskazaniem wpływu na biznes.

Według SmartBear (2024), zespoły używające Bugsnag skracają średni czas rozwiązania incydentu o 40% dzięki automatycznemu grupowaniu duplikatów i pełnemu kontekstowi każdego zdarzenia. Platforma integruje się ze Slack, PagerDuty, Jira, GitHub i GitLab do automatycznego tworzenia zgłoszeń dotyczących błędów.

Stability Score i automatyczna priorytetyzacja

Stability Score — kluczowa metryka Bugsnag, pokazująca procent sesji zakończonych bez błędów. Wartość obliczana jest jako stosunek liczby sesji bez crashy do całkowitej liczby sesji w okresie. Wynik 99.9% oznacza, że 1 na 1000 sesji zawiera błąd.

Progi Stability Score są zintegrowane z CI/CD: jeśli po wdrożeniu nowej wersji score spadnie poniżej ustalonego progu (np. 99.5%), Bugsnag automatycznie blokuje wydanie lub wysyła krytyczny alert na Slack. Release health dashboard pokazuje dynamikę score dla każdej wersji aplikacji, umożliwiając śledzenie wpływu konkretnej zmiany na stabilność.

Severity-based triage

Bugsnag używa algorytmu automatycznej klasyfikacji błędów na trzech poziomach severity. Critical — crashe aplikacji, błędy w scenariuszach płatniczych, dotykające ponad 5% użytkowników. Warning — błędy nieśmiertelne (handled exceptions), wpływające na poszczególne funkcje. Info — logi, ostrzeżenia niskiego priorytetu. Takie podejście zapobiega „zmęczeniu alertami”, gdy setki powiadomień uniemożliwiają skupienie się na naprawdę krytycznych problemach.

SeverityPrzykładDziałanie
CriticalCrash przy logowaniu do aplikacjiNatychmiastowe powiadomienie
WarningBłąd ładowania awataraZadanie w Jira na następny sprint
InfoTimeout przy skanowaniu QRLogowanie bez powiadomienia

Podłączenie Bugsnag SDK dla platform mobilnych

Instalacja Bugsnag SDK zajmuje 5 minut: dodanie zależności i inicjalizacja z kluczem API projektu. Bugsnag Android SDK obsługuje Kotlin i Java, automatycznie przechwytuje wyjątki Java, ANR i błędy native (C/C++) przez sygnały.

Konfiguracja na Android

SDK jest podłączane przez Gradle i inicjalizowane w Application.onCreate. Bugsnag automatycznie zbiera informacje o urządzeniu: model, wersja OS, wolna pamięć, poziom naładowania baterii. Auto-notify jest włączone domyślnie i wysyła wszystkie nieobsłużone wyjątki na serwer Bugsnag.

kotlin
import com.bugsnag.android.Bugsnag
import com.bugsnag.android.Configuration

class App : Application() {
    override fun onCreate() {
        super.onCreate()
        val config = Configuration("YOUR_API_KEY")
        config.autoTrackSessions = true
        config.launchDurationMillis = 5_000
        Bugsnag.start(this, config)
    }
}

Kod inicjalizuje Bugsnag SDK z automatycznym śledzeniem sesji i maksymalnym czasem uruchomienia 5 sekund. Jeśli aplikacja nie uruchomi się w tym czasie, Bugsnag zarejestruje zdarzenie „slow launch” jako ostrzeżenie.

Konfiguracja na iOS

Bugsnag iOS SDK obsługuje Swift i Objective-C, przechwytuje NSException, wyjątki Mach (SIGABRT, SIGSEGV) i sygnały systemu operacyjnego. SDK jest kompatybilny z iOS 11+ i SwiftUI, automatycznie tworzy breadcrumbs dla wszystkich zdarzeń UI: kliknięcia, nawigacja, gesty.

swift
import Bugsnag

class AppDelegate: UIResponder, UIApplicationDelegate {
    override func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions options: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        Bugsnag.start(withApiKey: "YOUR_API_KEY")
        // dodatkowa konfiguracja
        return true
    }
}

Kod w Swift uruchamia Bugsnag z minimalną konfiguracją. Wszystkie nieobsłużone wyjątki i crashe są automatycznie wysyłane do pulpitu Bugsnag z pełnym kontekstem urządzenia i stosem wywołań.

Breadcrumbs w Bugsnag to strukturyzowany dziennik zdarzeń poprzedzających błąd. Każdy breadcrumb zawiera znacznik czasu, typ (navigation, request, state, error, manual) i dowolne metadane. Bugsnag automatycznie zapisuje breadcrumbs dla zdarzeń UI w iOS i Android, zmian stanu aplikacji (background, foreground) i zapytań sieciowych.

Programista może dodawać niestandardowe breadcrumbs dla logiki biznesowej: „użytkownik dodał produkt do koszyka”, „żądanie utworzenia zamówienia wysłane”. W przypadku wystąpienia błędu wszystkie breadcrumbs z ostatnich 30 sekund są dołączane do zdarzenia. Bugsnag obsługuje również „state” — dowolny słownik danych, który jest przekazywany ze wszystkimi błędami sesji.

kotlin
Bugsnag.leaveBreadcrumb(
    message = "Order created",
    metadata = mapOf(
        "order_id" to "ORD-12345",
        "total" to "49.99"
    ),
    type = BreadcrumbType.STATE
)

Bugsnag.setExtraData(
    "user_tier", "premium"
)

Kod pozostawia breadcrumb o utworzeniu zamówienia i ustawia dodatkowe informacje o taryfie użytkownika. W przypadku wystąpienia błędu w tej sesji Bugsnag dołączy do niego kontekst z numerem zamówienia i typem użytkownika.

Session tracking

Bugsnag automatycznie zlicza liczbę sesji — każde uruchomienie aplikacji jest liczone jako nowa sesja. Stosunek sesji z błędami do całkowitej liczby sesji tworzy Stability Score. Session tracking jest uwzględniony w taryfikacji: Bugsnag jest licencjonowany na podstawie liczby śledzonych sesji, a nie objętości błędów, co odróżnia go od modeli płatności za zdarzenie u Sentry i konkurencji.

Release tracking i integracja z CI/CD

Release tracking — mechanizm powiązania każdego błędu z konkretną wersją aplikacji i commitem w repozytorium. Bugsnag automatycznie określa wersję z Info.plist (iOS) lub build.gradle (Android) i wyświetla w pulpicie liczbę błędów według wersji. Pozwala to od razu zobaczyć, czy problem został wprowadzony w ostatnim wydaniu.

Jeśli po wdrożeniu wersji 2.4.1 liczba krytycznych błędów wzrosła 3-krotnie w porównaniu z 2.4.0, Bugsnag oznacza tę wersję jako „niestabilną” i wysyła alert. Integracja CI/CD umożliwia zablokowanie promocji kompilacji na staging lub production, jeśli Stability Score spadł poniżej progu. Wtyczki dla Jenkins, GitHub Actions i GitLab CI przekazują metryki stabilności do pipeline.

Według Bugsnag Stability Benchmark (2024), 68% błędów w aplikacjach mobilnych jest wprowadzanych przez nowe wersje, a nie są to długo istniejące błędy. Release tracking skraca czas wykrywania regresji z godzin do kilku minut po wdrożeniu.

Porównanie Bugsnag z Sentry i Crashlytics

Na rynku error monitoring są trzej główni gracze: Bugsnag, Sentry i Firebase Crashlytics. Bugsnag wyróżnia się modelem cenowym opartym na sesjach (a nie zdarzeniach), skupieniem na Stability Score i automatyczną priorytetyzacją severity. Sentry oferuje głębszy performance monitoring z distributed tracing i otwartym kodem źródłowym. Crashlytics — darmowe rozwiązanie z podstawowymi funkcjami, zintegrowane z ekosystemem Firebase.

CechaBugsnagSentryCrashlytics
Cena (start)Darmowo do 5 000 sesjiDarmowo do 5 000 zdarzeńDarmowo
Performance monitoringOgraniczonyPełny z distributed tracingNie
SDK dla FlutterTakTakOgraniczenie
Self-hostedNieTak (open source)Nie
Stability ScoreTak (kluczowa metryka)NieNie

Wybór między narzędziami zależy od priorytetów: jeśli kluczowym wskaźnikiem jest stabilność aplikacji w produkcji, Bugsnag daje najbardziej czytelną metrykę. Jeśli potrzebna jest głęboka analiza wydajności z distributed tracing — Sentry. Do darmowego podstawowego monitorowania z integracją z ekosystemem Google — Crashlytics.

Często zadawane pytania

Jak Bugsnag określa severity błędu?

Algorytm uwzględnia trzy czynniki: typ wyjątku (crash lub handled), liczbę dotkniętych użytkowników i kontekst scenariusza. Critical severity jest przypisywane, jeśli błąd wystąpił na głównym ekranie lub w przepływie płatności i dotknął ponad 1% użytkowników. Programista może ręcznie zmienić severity przez API lub konfigurację SDK.

Czy Bugsnag obsługuje React Native i Flutter?

Tak, Bugsnag udostępnia SDK dla React Native (z obsługą new architecture) i Flutter (zgodność z Dart 3.x). Oba SDK obsługują automatyczne zbieranie breadcrumbs dla nawigacji, żądań sieciowych i stanu aplikacji, a także niestandardową instrumentację dla logiki biznesowej.

Czy można zintegrować Bugsnag z Jira?

Tak, Bugsnag zapewnia dwukierunkową integrację z Jira: nowy błąd może automatycznie tworzyć zadanie w Jira, a zamknięcie zadania w Jira zmienia status błędu na „resolved” w Bugsnag. Obsługiwane są Jira Cloud i Jira Server (przez Jira Connect).

Jak Bugsnag wpływa na rozmiar aplikacji?

SDK Bugsnag dodaje około 1.5 MB do rozmiaru APK/IPA w kompilacji release. To mniej niż Sentry (około 2 MB), ale więcej niż Firebase Crashlytics (około 0.8 MB). Zaleca się usuwanie SDK z kompilacji debug w celu przyspieszenia kompilacji, pozostawiając je tylko dla konfiguracji testowych i release.

Czy można używać Bugsnag dla aplikacji backendowych?

Tak, Bugsnag obsługuje języki backendowe: Ruby, Python, Node.js, Java, .NET, Go, PHP. Błędy backendowe są wyświetlane w tym samym pulpicie co mobilne, z grupowaniem według serwisów. Umożliwia to śledzenie kompleksowej stabilności: jeśli upadł API, programista widzi, czy problem jest związany z klientem czy serwerem.

Podsumowanie

  • Bugsnag — platforma error monitoring z naciskiem na metrykę stabilności i automatyczną priorytetyzację błędów według severity.
  • Stability Score — procent sesji bez błędów, kluczowa metryka do oceny jakości wydania i CI/CD gatingu.
  • Severity-based triage automatycznie dzieli błędy na critical, warning i info, zapobiegając zmęczeniu alertami.
  • Release tracking łączy każdy błąd z wersją aplikacji i commitem w celu szybkiego wykrywania regresji.
  • SDK obsługuje iOS, Android, React Native, Flutter, a także 9 języków backendowych w jednym pulpicie.
  • Model cenowy oparty na sesjach odróżnia Bugsnag od konkurencji i czyni go przewidywalnym budżetowo.
  • Bugsnag jest zalecany dla zespołów produktowych, gdzie stabilność aplikacji jest kluczowym wskaźnikiem biznesowym i wymagana jest priorytetyzacja błędów w trybie automatycznym.

Opracujemy aplikację mobilną pod klucz

IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.

Omów projekt

Przeczytaj również