Sentry — co to je, principy a sběr chyb

Autor: IT Sectr Publikováno: 2026-05-29 Doba čtení: 8 min

Sentry je platforma pro sledování chyb a monitorování výkonu aplikací v reálném čase, která poskytuje vývojářům úplný kontext každé poruchy. Podle Sentry Documentation, 2025, Sentry zpracovává více než 10 miliard událostí denně a poskytuje integraci s 90+ jazyky a frameworky pro iOS, Android, web a backend.

Hlavní body

  • Sentry — open-source platforma pro sledování chyb a monitorování výkonu podporující 90+ jazyků a platforem.
  • Error events — automatický sběr výjimek s úplným stacktrace, hodnotami proměnných a stavem zařízení.
  • Breadcrumbs — posloupnost akcí uživatele a systémových událostí předcházejících chybě.
  • Source maps — deobfuskace minifikovaného kódu pro obnovení čitelného zásobníku volání v produkci.
  • Performance Tracing — monitorování doby provádění transakcí s distributed tracing napříč všemi službami.

Co je Sentry ve vývoji

Sentry je open-source platforma pro hlášení pádů a monitorování výkonu, založená v roce 2012. Umožňuje vývojářům přijímat oznámení o chybách v reálném čase s úplným diagnostickým kontextem: zásobník volání, hodnoty proměnných v okamžiku pádu, posloupnost akcí uživatele před chybou a stav prostředí.

Na rozdíl od agregovaných služeb hlášení pádů (Google Play Console, App Store Connect), které poskytují pouze statistiky a základní grafy, Sentry zobrazuje každou událost samostatně s možností seskupování podle typu chyby a filtrování podle verze aplikace. Issue v Sentry je skupina událostí se stejným stacktrace, což umožňuje neutopit se v tisících identických pádech, ale soustředit se na odstranění hlavní příčiny s úplným kontextem.

Podle Sentry (2025) se průměrná doba detekce chyby zkracuje z 30 minut na 30 sekund po zavedení Sentry SDK a doba diagnózy o 60 % díky automatickým breadcrumbs a kontextu prostředí. Platformu používá více než 100 000 organizací po celém světě, včetně Airbnb, Microsoft, Instagram a PayPal, zpracovávajících miliardy událostí denně.

Architektura Sentry: SDK, Relay a zpracování událostí

Systém Sentry se skládá ze tří hlavních komponent: SDK na straně aplikace, Relay (proxy server) a backendu pro zpracování událostí. Sentry SDK je knihovna integrovaná do aplikace, která zachycuje výjimky, shromažďuje kontext a odesílá události do Relay přes protokol JSON/HTTPS.

Sentry Relay

Relay je zprostředkující server, který může být nasazen v infrastruktuře společnosti. Přijímá události z SDK, filtruje podle pravidel (PII data, nepotřebné události), bufferuje a přeposílá do Sentry SaaS nebo vlastní instance. Relay zajišťuje nízkou latenci odesílání — typická doba přijetí události je 500–1500 ms.

Inbound Data Filter

Sentry poskytuje vestavěné filtry pro odmítání nežádoucích událostí bez jejich odesílání na server: chyby z testovacích prostředí, chyby ze starších verzí aplikace, opakované události se stejným fingerprintem. Filtering šetří až 70 % objemu dat v typickém produkčním projektu, snižuje náklady na spotřebu a zatížení komunikačního kanálu zařízení.

Nastavení Sentry SDK pro iOS a Android

Instalace Sentry SDK pro mobilní platformy trvá 5–10 minut a vyžaduje přidání závislosti a inicializaci s DSN klíčem. DSN (Data Source Name) je jedinečný identifikátor projektu v Sentry, který udává, kam události odesílat.

Nastavení na Androidu

Pro Android poskytuje Sentry automatickou instrumentaci prostřednictvím Gradle pluginu. Plugin upravuje bytecode ve fázi kompilace a přidává obálky pro všechny Activity, Fragment a síťová volání. Auto-instrumentation se zapíná jednou volbou v build.gradle a umožňuje získávat breadcrumbs z životního cyklu aplikace bez změny kódu.

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
        }
    }
}

Kód inicializuje Sentry SDK v Android aplikaci. Parametr tracesSampleRate = 0.2 zapíná performance tracing pro 20 % relací, enableAutoSessionTracking automaticky vytváří relace pro každé spuštění aplikace.

Nastavení na iOS

SDK pro iOS podporuje CocoaPods, Swift Package Manager a Carthage. Po instalaci SDK automaticky zachycuje NSException, signály (SIGABRT, SIGSEGV) a chyby Swift. Sentry Cocoa SDK je kompatibilní s iOS 12+ a macOS 10.13+, podporuje Swift Concurrency (async/await) a automatickou instrumentaci 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
    }
}

Kód v Swift aktivuje Sentry SDK s automatickým sběrem metrik výkonu. enableAutoPerformanceTracing zapíná monitorování doby načítání obrazovek a HTTP požadavků bez dalšího kódu.

Breadcrumbs je chronologická posloupnost událostí předcházejících chybě. Sentry automaticky zaznamenává breadcrumbs pro kliknutí na tlačítka, přechody mezi obrazovkami, HTTP požadavky a systémová oznámení. Vývojář může přidávat vlastní breadcrumbs pro obchodní logiku.

Každý breadcrumb obsahuje časové razítko, typ události (navigation, http, ui, error), kategorii a libovolná data. Při výskytu chyby jsou všechny breadcrumbs z posledních 2–5 minut (nastavitelné) připojeny k události. Tento kontext je často důležitější než samotný stacktrace: vývojář vidí, že uživatel klikl na „Zaplatit“ po výběru produktu a teprve poté došlo k pádu. Maximální počet breadcrumbs je ve výchozím nastavení 200, poté jsou nejstarší záznamy automaticky smazány.

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

Kód přidává vlastní breadcrumb pro akci uživatele v platebním scénáři. Pokud po této akci dojde k chybě, vývojář uvidí v Sentry, že uživatel klikl na „Pay“ s částkou 19.99 USD, což umožňuje rychlou lokalizaci problému v platebním toku.

User context

Sentry umožňuje připojovat k událostem informace o uživateli: ID, uživatelské jméno, e-mail. User context je automaticky přenášen se všemi událostmi z jedné relace, což umožňuje seskupovat chyby podle uživatelů a určit, kolik uživatelů bylo zasaženo konkrétní chybou. Je důležité dodržovat zásady ochrany soukromí a neodesílat osobní údaje, pokud to politika aplikace nepovoluje.

Source maps a ladicí symboly

V produkčních verzích iOS a Android je kód obvykle minifikován nebo obfuskován. Bez zpracování bude zásobník chyb obsahovat nesrozumitelná jména jako „a.b()“ místo „UserViewModel.fetchData()“. Source maps (JavaScript) a debug symbols (dSYM pro iOS, ProGuard mapping pro Android) obnovují čitelný zásobník.

Pro Android Sentry automaticky nahrává soubory ProGuard mapping prostřednictvím Gradle pluginu při sestavování release verze. Pro iOS je vyžadováno nahrání dSYM souborů — Sentry poskytuje skript pro automatické nahrání ve fázi archivace. Bez ladicích symbolů bude zásobník chyb v Sentry pro vývojáře nepoužitelný, proto by proces jejich nahrávání měl být povinným krokem v CI/CD pipeline.

Monitorování výkonu přes Sentry

Od verze 2020 Sentry zahrnuje monitorování výkonu — sběr metrik doby provádění transakcí s distributed tracing. Transaction v Sentry je měřitelná jednotka práce: načítání obrazovky, provádění API požadavku, zpracování úlohy na pozadí. Každá transakce obsahuje podřízené span, které ukazují, které kroky zabraly nejvíce času.

Monitorování výkonu v Sentry je integrováno s error trackingem: pokud transakce skončí chybou, příslušný span je označen stavem „error“ a vývojář může přejít z metriky výkonu na podrobnosti výjimky. Trace ID spojuje všechny události (chyby, transakce, breadcrumbs) do jedné relace pro komplexní analýzu a zajišťuje bezproblémový přechod mezi kartami Issues a Performance na jednotném dashboardu platformy Sentry.

Podle Sentry Performance Benchmark (2024) aplikace s aktivovaným monitorováním výkonu (frekvence vzorkování 10 %) spotřebovává o 2–5 % více provozu a o 1–2 % více prostředků CPU na zařízení. Tato zátěž je kompenzována zkrácením doby diagnostiky výkonu o 70 % ve srovnání s ručním profilováním.

Často kladené otázky

Čím se Sentry liší od Firebase Crashlytics?

Sentry poskytuje více kontextu: breadcrumbs, vlastní data, propojení chyb s výkonem. Firebase Crashlytics je bezplatný nástroj se základním hlášením pádů, ale bez distributed tracing a bez možnosti vlastní instrumentace breadcrumbs. Sentry je vhodný pro projekty, které vyžadují hloubkovou diagnostiku.

Kolik stojí Sentry pro mobilní aplikaci?

Sentry nabízí bezplatný tarif na 5 000 událostí měsíčně (chyby + transakce). Placený tarif Team stojí 26 dolarů na uživatele měsíčně a zahrnuje 100 000 událostí. Pro velké projekty je k dispozici tarif Business s neomezeným objemem a individuální cenou.

Jak Sentry zpracovává osobní údaje v chybách?

Sentry poskytuje vestavěný mechanismus Data Scrubbing: automatické odstraňování e-mailů, IP adres, kreditních karet a dalších PII údajů z událostí před jejich uložením. Pravidla scrubingu se konfigurují ve webovém rozhraní nebo v konfiguraci Relay s podporou regulárních výrazů. Doporučuje se zapnout scrubbing na úrovni SDK, aby důvěrná data neopouštěla zařízení uživatele.

Lze Sentry spustit na vlastních serverech?

Ano, Sentry má plně open-source verzi pro vlastní hostování. Self-hosted Sentry se nasazuje přes Docker Compose a zahrnuje všechny funkce SaaS verze. Vyžaduje minimální konfiguraci serveru: 4 vCPU, 16 GB RAM, 100 GB diskového prostoru pro ukládání událostí.

Podporuje Sentry SwiftUI a Jetpack Compose?

Ano, Sentry SDK plně podporuje SwiftUI (iOS 13+) a Jetpack Compose (Android). Pro SwiftUI SDK automaticky vytváří transakce pro NavigationView a List s měřením doby vykreslování. Pro Jetpack Compose je vyžadována vlastní integrace přes CompositionLocalProvider pro předání kontextu Sentry do Composables.

Shrnutí

  • Sentry — open-source platforma pro sledování chyb a monitorování výkonu používaná více než 100 000 organizacemi.
  • Architektura zahrnuje SDK na zařízení, Relay proxy a backend zpracování událostí s podporou self-hosted a SaaS nasazení.
  • Breadcrumbs poskytují chronologii akcí uživatele před chybou, klíčovou pro diagnostiku složitých chyb.
  • Source maps a dSYM obnovují čitelný zásobník volání z obfuskovaného produkčního kódu.
  • Performance Tracing je integrován s error trackingem a umožňuje přechod z metrik času na podrobnosti chyby prostřednictvím jednotného trace ID.
  • Auto-instrumentation pokrývá Activity, ViewController, HTTP požadavky a životní cyklus aplikace bez ručního kódu.
  • Zavedení Sentry se doporučuje pro každou produkční aplikaci: bezplatný tarif pokrývá 5 000 událostí měsíčně, dostačující pro malé a střední projekty.

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také