Sentry — co to jest, zasady i zbieranie błędów

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

Sentry — to platforma do śledzenia błędów i monitorowania wydajności aplikacji w czasie rzeczywistym, zapewniająca programistom pełny kontekst każdej awarii. Według danych Sentry Documentation, 2025, Sentry przetwarza ponad 10 miliardów zdarzeń dziennie, oferując integrację z 90+ językami i frameworkami dla iOS, Android, webu i backendu.

Najważniejsze

  • Sentry — platforma do śledzenia błędów i monitorowania wydajności o otwartym kodzie źródłowym, obsługująca 90+ języków i platform.
  • Error events — automatyczne zbieranie wyjątków z pełnym stack traced, wartościami zmiennych i stanem urządzenia.
  • Breadcrumbs — sekwencja działań użytkownika i zdarzeń systemowych poprzedzających błąd.
  • Source maps — deobfuskacja zminimalizowanego kodu w celu przywrócenia czytelnego stosu wywołań w produkcji.
  • Performance Tracing — monitorowanie czasu wykonywania transakcji z distributed tracing przez wszystkie usługi.

Czym jest Sentry w programowaniu

Sentry — to platforma o otwartym kodzie źródłowym do raportowania awarii i monitorowania wydajności, założona w 2012 roku. Pozwala programistom otrzymywać powiadomienia o błędach w czasie rzeczywistym z pełnym kontekstem diagnostycznym: stos wywołań, wartości zmiennych w momencie awarii, sekwencja działań użytkownika przed błędem i stan środowiska.

W przeciwieństwie do zagregowanych usług raportowania awarii (Google Play Console, App Store Connect), które dostarczają jedynie statystyki i podstawowe wykresy, Sentry pokazuje każde zdarzenie osobno z możliwością grupowania według typu błędu i filtrowania według wersji aplikacji. Issue w Sentry — to grupa zdarzeń z tym samym stack traced, co pozwala nie tonąć w tysiącach identycznych crashy, ale skupić się na usunięciu pierwotnej przyczyny z pełnym kontekstem.

Według danych Sentry (2025), średni czas wykrycia błędu skraca się z 30 minut do 30 sekund po wdrożeniu Sentry SDK, a czas diagnozy — o 60% dzięki automatic breadcrumbs i kontekstowi środowiska. Platforma jest używana przez ponad 100 000 organizacji na całym świecie, w tym Airbnb, Microsoft, Instagram i PayPal, przetwarzając miliardy zdarzeń dziennie.

Architektura Sentry: SDK, Relay i przetwarzanie zdarzeń

System Sentry składa się z trzech głównych komponentów: SDK po stronie aplikacji, Relay (serwer proxy) i backendu przetwarzania zdarzeń. Sentry SDK — to biblioteka wdrażana w aplikacji, która przechwytuje wyjątki, zbiera kontekst i wysyła zdarzenia do Relay przez protokół JSON/HTTPS.

Sentry Relay

Relay — to pośredniczący serwer, który może być wdrożony w infrastrukturze firmy. Przyjmuje zdarzenia od SDK, filtruje według reguł (dane PII, niepotrzebne zdarzenia), buforuje i przekazuje do Sentry SaaS lub własnej instancji. Relay zapewnia niskie opóźnienie wysyłki — typowy czas otrzymania zdarzenia wynosi 500–1500 ms.

Inbound Data Filter

Sentry udostępnia wbudowane filtry do odrzucania niepożądanych zdarzeń bez wysyłania ich na serwer: błędy ze środowisk testowych, błędy ze starych wersji aplikacji, powtarzające się zdarzenia z identycznym fingerprint. Filtering oszczędza do 70% objętości danych w typowym projekcie produkcyjnym, zmniejszając koszt zużycia i obciążenie kanału komunikacji urządzenia.

Konfiguracja Sentry SDK dla iOS i Android

Instalacja Sentry SDK dla platform mobilnych zajmuje 5–10 minut i wymaga dodania zależności oraz inicjalizacji z kluczem DSN. DSN (Data Source Name) — unikalny identyfikator projektu w Sentry, który wskazuje, gdzie wysyłać zdarzenia.

Konfiguracja na Android

Dla Android Sentry udostępnia automatyczną instrumentację przez wtyczkę Gradle. Wtyczka modyfikuje bytecode na etapie kompilacji, dodając otoczki dla wszystkich Activity, Fragment i wywołań sieciowych. Auto-instrumentation włącza się jedną opcją w build.gradle i pozwala otrzymywać breadcrumbs z cyklu życia aplikacji bez zmiany kodu.

kotlin
import io.sentry.Sentry

class App : Application() {
    override fun onCreate() {
        super.onCreate()
        Sentry.init { options ->
            options.dsn = "https://example@sentry.io/project"
            options.tracesSampleRate = 0.2
            options.enableAutoSessionTracking = true
        }
    }
}

Kod inicjalizuje Sentry SDK w aplikacji Android. Parametr tracesSampleRate = 0.2 włącza performance tracing dla 20% sesji, enableAutoSessionTracking automatycznie tworzy sesje dla każdego uruchomienia aplikacji.

Konfiguracja na iOS

SDK dla iOS obsługuje CocoaPods, Swift Package Manager i Carthage. Po instalacji SDK automatycznie przechwytuje NSException, sygnały (SIGABRT, SIGSEGV) i błędy Swift. Sentry Cocoa SDK jest kompatybilny z iOS 12+ i macOS 10.13+, obsługuje Swift Concurrency (async/await) i automatyczną instrumentację URLSession.

swift
import Sentry

class AppDelegate: UIResponder, UIApplicationDelegate {
    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions options: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        SentrySDK.start { options in
            options.dsn = "https://example@sentry.io/project"
            options.enableAutoPerformanceTracing = true
        }
        return true
    }
}

Kod w Swift aktywuje Sentry SDK z automatycznym zbieraniem metryk wydajności. enableAutoPerformanceTracing włącza monitorowanie czasu ładowania ekranów i żądań HTTP bez dodatkowego kodu.

Breadcrumbs — to chronologiczna sekwencja zdarzeń poprzedzających błąd. Sentry automatycznie zapisuje breadcrumbs dla kliknięć przycisków, przejść między ekranami, żądań HTTP i powiadomień systemowych. Programista może dodawać niestandardowe breadcrumbs dla logiki biznesowej.

Każdy breadcrumb zawiera znacznik czasu, typ zdarzenia (navigation, http, ui, error), kategorię i dowolne dane. W przypadku wystąpienia błędu wszystkie breadcrumbs z ostatnich 2–5 minut (konfigurowalne) są dołączane do zdarzenia. Ten kontekst jest często ważniejszy niż sam stack trace: programista widzi, że użytkownik kliknął „Zapłać” po wyborze produktu, a dopiero potem nastąpił crash. Maksymalna liczba breadcrumbs domyślnie wynosi 200, po czym najstarsze wpisy są automatycznie usuwane.

kotlin
Sentry.addBreadcrumb(
    Breadcrumb().apply {
        category = "payment"
        message = "User tapped Pay button"
        type = "user"
        level = BreadcrumbLevel.INFO
        data["amount"] = "19.99"
        data["currency"] = "USD"
    }
)

Kod dodaje niestandardowy breadcrumb dla działania użytkownika w scenariuszu płatności. Jeśli po tym działaniu wystąpi błąd, programista zobaczy w Sentry, że użytkownik kliknął „Pay” z kwotą 19.99 USD, co pozwala szybko zlokalizować problem w flow płatności.

User context

Sentry pozwala dołączać do zdarzeń informacje o użytkowniku: ID, nazwę użytkownika, email. User context jest przekazywany automatycznie ze wszystkimi zdarzeniami z jednej sesji, umożliwiając grupowanie błędów według użytkowników i określanie, ilu użytkowników dotknął konkretny bug. Ważne jest przestrzeganie polityki prywatności i nieprzekazywanie danych osobowych, jeśli nie jest to dozwolone przez politykę aplikacji.

Source maps i symbole debugowania

W wersjach produkcyjnych iOS i Android kod jest zwykle zminimalizowany lub zaciemniony. Bez przetworzenia stack błędu będzie zawierał niezrozumiałe nazwy w rodzaju „a.b()” zamiast „UserViewModel.fetchData()”. Source maps (JavaScript) i debug symbols (dSYM dla iOS, ProGuard mapping dla Android) przywracają czytelny stack.

Dla Android Sentry automatycznie ładuje pliki ProGuard mapping przez wtyczkę Gradle podczas budowania wersji release. Dla iOS wymagane jest przesłanie plików dSYM — Sentry udostępnia skrypt do automatycznego przesyłania na etapie archiwizacji. Bez symboli debugowania stack błędu w Sentry będzie bezużyteczny dla programisty, dlatego proces ich przesyłania powinien być obowiązkowym krokiem w pipeline CI/CD.

Monitorowanie wydajności przez Sentry

Począwszy od wersji 2020, Sentry zawiera performance monitoring — zbieranie metryk czasu wykonywania transakcji z distributed tracing. Transaction w Sentry — to mierzalna jednostka pracy: ładowanie ekranu, wykonanie żądania API, przetwarzanie zadania w tle. Każda transakcja zawiera podrzędne spany, które pokazują, które kroki zajęły najwięcej czasu.

Performance monitoring w Sentry jest zintegrowany z error tracking: jeśli transakcja zakończyła się błędem, odpowiedni span jest oznaczony statusem „error”, a programista może przejść od metryki wydajności do szczegółów wyjątku. Trace ID łączy wszystkie zdarzenia (błędy, transakcje, breadcrumbs) w jedną sesję do kompleksowej analizy, zapewniając bezszwowe przejście między zakładkami Issues i Performance w jednym dashboardzie platformy Sentry.

Według danych Sentry Performance Benchmark (2024), aplikacja z włączonym performance monitoring (częstotliwość próbkowania 10%) zużywa o 2–5% więcej ruchu i o 1–2% więcej zasobów CPU na urządzeniu. To obciążenie jest kompensowane skróceniem czasu diagnozy wydajności o 70% w porównaniu z ręcznym profilowaniem.

Często zadawane pytania

Czym Sentry różni się od Firebase Crashlytics?

Sentry zapewnia więcej kontekstu: breadcrumbs, niestandardowe dane, powiązanie błędów z wydajnością. Firebase Crashlytics — to darmowe narzędzie z podstawowym raportowaniem awarii, ale bez distributed tracing i bez możliwości niestandardowej instrumentacji breadcrumbs. Sentry nadaje się do projektów, które wymagają głębokiej diagnostyki.

Ile kosztuje Sentry dla aplikacji mobilnej?

Sentry oferuje darmowy plan na 5 000 zdarzeń miesięcznie (błędy + transakcje). Płatny plan Team kosztuje 26 dolarów za użytkownika miesięcznie i obejmuje 100 000 zdarzeń. Dla dużych projektów dostępny jest plan Business z nieograniczoną objętością i indywidualną ceną.

Jak Sentry przetwarza dane osobowe w błędach?

Sentry udostępnia wbudowany mechanizm Data Scrubbing: automatyczne usuwanie emaili, adresów IP, kart kredytowych i innych danych PII ze zdarzeń przed ich zapisaniem. Reguły skrubingu są konfigurowane w interfejsie webowym lub w konfiguracji Relay z obsługą wyrażeń regularnych. Zaleca się włączenie skrubingu na poziomie SDK, aby poufne dane nie opuszczały urządzenia użytkownika.

Czy można uruchomić Sentry na własnych serwerach?

Tak, Sentry ma w pełni open-source wersję do samodzielnego hostowania. Self-hosted Sentry jest wdrażane przez Docker Compose i zawiera wszystkie funkcje wersji SaaS. Wymagana jest minimalna konfiguracja serwera: 4 vCPU, 16 GB RAM, 100 GB przestrzeni dyskowej do przechowywania zdarzeń.

Czy Sentry obsługuje SwiftUI i Jetpack Compose?

Tak, Sentry SDK w pełni obsługuje SwiftUI (iOS 13+) i Jetpack Compose (Android). Dla SwiftUI SDK automatycznie tworzy transakcje dla NavigationView i List z pomiarem czasu renderowania. Dla Jetpack Compose wymagana jest niestandardowa integracja przez CompositionLocalProvider do przekazywania kontekstu Sentry do Composables.

Podsumowanie

  • Sentry — platforma do śledzenia błędów i monitorowania wydajności o otwartym kodzie źródłowym, używana przez ponad 100 000 organizacji.
  • Architektura obejmuje SDK na urządzeniu, proxy Relay i backend przetwarzania zdarzeń z obsługą wdrożenia self-hosted i SaaS.
  • Breadcrumbs dostarczają chronologię działań użytkownika przed błędem, krytyczną dla diagnozy złożonych bugów.
  • Source maps i dSYM przywracają czytelny stack wywołań z zaciemnionego kodu produkcyjnego.
  • Performance Tracing jest zintegrowany z error tracking, umożliwiając przejście od metryk czasu do szczegółów błędu przez jednolity trace ID.
  • Auto-instrumentation obejmuje Activity, ViewController, żądania HTTP i cykl życia aplikacji bez ręcznego kodu.
  • Wdrożenie Sentry jest zalecane dla każdej aplikacji produkcyjnej: darmowy plan obejmuje 5 000 zdarzeń miesięcznie, wystarczających dla małych i średnich projektów.

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ż