Sentry — mi ez, elvek és hibagyűjtés

Szerző: IT Sectr Megjelenés: 2026-05-29 Olvasási idő: 8 perc

A Sentry egy platform a hibák nyomon követésére és az alkalmazások teljesítményének valós idejű monitorozására, amely teljes kontextust biztosít a fejlesztőknek minden egyes meghibásodásról. A Sentry Documentation, 2025 szerint a Sentry naponta több mint 10 milliárd eseményt dolgoz fel, integrációt biztosítva 90+ nyelvhez és keretrendszerhez iOS, Android, web és backend számára.

Főbb pontok

  • Sentry — nyílt forráskódú hibakövető és teljesítményfigyelő platform, amely 90+ nyelvet és platformot támogat.
  • Error events — a kivételek automatikus gyűjtése teljes stacktrace-sel, változóértékekkel és eszközállapottal.
  • Breadcrumbs — a felhasználói műveletek és rendszeresemények sorozata, amelyek megelőzik a hibát.
  • Source maps — a minifikált kód deobfuszkációja az olvasható hívási verem helyreállításához éles üzemben.
  • Performance Tracing — a tranzakciók végrehajtási idejének monitorozása distributed tracing segítségével az összes szolgáltatáson keresztül.

Mi az a Sentry a fejlesztésben

Sentry egy nyílt forráskódú platform hibabejelentéshez és teljesítményfigyeléshez, amelyet 2012-ben alapítottak. Lehetővé teszi a fejlesztők számára, hogy valós idejű hibajelentéseket kapjanak teljes diagnosztikai kontextussal: hívási verem, változóértékek a meghibásodás pillanatában, a hibát megelőző felhasználói műveletek sorozata és a környezet állapota.

Ellentétben az aggregált hibabejelentő szolgáltatásokkal (Google Play Console, App Store Connect), amelyek csak statisztikákat és alapgrafikonokat nyújtanak, a Sentry minden eseményt külön jelenít meg, lehetőséget adva a hibák típus szerinti csoportosítására és alkalmazásverzió szerinti szűrésére. Az Issue a Sentry-ben az azonos stacktrace-sel rendelkező események csoportja, amely lehetővé teszi, hogy ne fulladjunk bele ezer azonos crash-be, hanem a kiváltó ok megszüntetésére összpontosítsunk teljes kontextussal.

A Sentry (2025) szerint a hiba átlagos észlelési ideje 30 percről 30 másodpercre csökken a Sentry SDK bevezetése után, a diagnózis ideje pedig 60%-kal az automatikus breadcrumbs-eknek és a környezeti kontextusnak köszönhetően. A platformot világszerte több mint 100.000 szervezet használja, köztük az Airbnb, a Microsoft, az Instagram és a PayPal, naponta milliárdnyi eseményt feldolgozva.

A Sentry architektúrája: SDK, Relay és eseményfeldolgozás

A Sentry rendszer három fő komponensből áll: SDK az alkalmazás oldalán, Relay (proxy szerver) és az eseményfeldolgozó backend. Sentry SDK egy könyvtár, amelyet az alkalmazásba integrálnak, elkapja a kivételeket, kontextust gyűjt és elküldi az eseményeket a Relay-nek JSON/HTTPS protokollon keresztül.

Sentry Relay

Relay egy köztes szerver, amely a vállalat infrastruktúrájában helyezhető el. Fogadja az eseményeket az SDK-tól, szabályok alapján szűr (PII adatok, felesleges események), pufferel és továbbít a Sentry SaaS vagy saját példány felé. A Relay alacsony küldési késleltetést biztosít — az esemény tipikus fogadási ideje 500–1500 ms.

Inbound Data Filter

A Sentry beépített szűrőket kínál a nem kívánt események elutasítására anélkül, hogy azokat a szerverre küldené: hibák tesztkörnyezetből, hibák az alkalmazás régi verzióiból, ismétlődő események azonos fingerprint-pel. Filtering akár 70% adatmennyiséget takarít meg egy tipikus éles projektben, csökkentve a fogyasztás költségét és az eszköz kommunikációs csatornájának terhelését.

A Sentry SDK beállítása iOS és Android rendszerekhez

A Sentry SDK telepítése mobil platformokra 5–10 percet vesz igénybe, és megköveteli a függőség hozzáadását és inicializálást DSN kulccsal. DSN (Data Source Name) a projekt egyedi azonosítója a Sentry-ben, amely megmutatja, hova kell küldeni az eseményeket.

Beállítás Androidon

Androidhoz a Sentry automatikus instrumentációt biztosít Gradle plugin segítségével. A plugin módosítja a bájtkódot a fordítási szakaszban, burkolókat adva az összes Activity, Fragment és hálózati hívás számára. Auto-instrumentation egyetlen opcióval aktiválható a build.gradle-ben, és lehetővé teszi a breadcrumbs gyűjtését az alkalmazás életciklusából a kód módosítása nélkül.

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

A kód inicializálja a Sentry SDK-t egy Android alkalmazásban. A tracesSampleRate = 0.2 paraméter a munkamenetek 20%-ában kapcsolja be a performance tracing-et, az enableAutoSessionTracking automatikusan hoz létre munkameneteket az alkalmazás minden indításakor.

Beállítás iOS-en

Az iOS SDK támogatja a CocoaPods, Swift Package Manager és Carthage eszközöket. Telepítés után az SDK automatikusan elkapja az NSException, a jeleket (SIGABRT, SIGSEGV) és a Swift hibákat. Sentry Cocoa SDK kompatibilis iOS 12+ és macOS 10.13+ rendszerekkel, támogatja a Swift Concurrency (async/await) és az URLSession automatikus instrumentációját.

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

A Swift kód aktiválja a Sentry SDK-t automatikus teljesítménymutató-gyűjtéssel. Az enableAutoPerformanceTracing bekapcsolja a képernyők betöltési idejének és a HTTP-kérések monitorozását további kód nélkül.

Breadcrumbs a hibát megelőző események időrendi sorozata. A Sentry automatikusan rögzíti a breadcrumbs-eket gombnyomásokhoz, képernyők közötti váltásokhoz, HTTP-kérésekhez és rendszerértesítésekhez. A fejlesztő egyéni breadcrumbs-eket adhat hozzá az üzleti logikához.

Minden breadcrumb tartalmaz egy időbélyeget, eseménytípust (navigation, http, ui, error), kategóriát és tetszőleges adatokat. Hiba esetén az utolsó 2–5 perc (beállítható) összes breadcrumb-je csatolódik az eseményhez. Ez a kontextus gyakran fontosabb, mint maga a stacktrace: a fejlesztő látja, hogy a felhasználó a termék kiválasztása után rákattintott a „Fizetés” gombra, és csak ezután történt a crash. A breadcrumbs maximális száma alapértelmezés szerint 200, ami után a legrégebbi bejegyzések automatikusan törlődnek.

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

A kód egyéni breadcrumb-ot ad hozzá a felhasználói művelethez a fizetési forgatókönyvben. Ha a művelet után hiba történik, a fejlesztő a Sentry-ben látni fogja, hogy a felhasználó a „Pay” gombra kattintott 19.99 USD összeggel, ami lehetővé teszi a probléma gyors lokalizálását a fizetési folyamatban.

User context

A Sentry lehetővé teszi felhasználói információk csatolását az eseményekhez: ID, felhasználónév, e-mail. User context automatikusan továbbításra kerül az összes eseménnyel egy munkamenetből, lehetővé téve a hibák csoportosítását felhasználók szerint és annak meghatározását, hogy hány felhasználót érintett egy adott hiba. Fontos betartani az adatvédelmi szabályzatot, és nem továbbítani személyes adatokat, ha azt az alkalmazás irányelve nem engedélyezi.

Source maps és hibakeresési szimbólumok

Az iOS és Android éles verzióiban a kód általában minifikált vagy obfuszkált. Feldolgozás nélkül a hibaverem érthetetlen neveket fog tartalmazni, mint „a.b()” a „UserViewModel.fetchData()” helyett. Source maps (JavaScript) és debug symbols (dSYM iOS-hez, ProGuard mapping Androidhoz) helyreállítják az olvasható vermet.

Android esetén a Sentry automatikusan feltölti a ProGuard mapping fájlokat a Gradle pluginen keresztül a release verzió buildelésekor. iOS esetén a dSYM fájlok feltöltése szükséges — a Sentry szkriptet biztosít az automatikus feltöltéshez az archiválási szakaszban. Hibakeresési szimbólumok nélkül a hibaverem a Sentry-ben használhatatlan lesz a fejlesztő számára, ezért a feltöltési folyamatnak a CI/CD pipeline kötelező lépésének kell lennie.

Teljesítményfigyelés a Sentry segítségével

A 2020-as verziótól kezdve a Sentry tartalmaz teljesítményfigyelést — a tranzakciók végrehajtási idejének mérését distributed tracing segítségével. Transaction a Sentry-ben egy mérhető munkaegység: képernyő betöltése, API-kérés végrehajtása, háttérfeladat feldolgozása. Minden tranzakció gyermek span-eket tartalmaz, amelyek megmutatják, mely lépések vették igénybe a legtöbb időt.

A Sentry teljesítményfigyelése integrálva van a hibakövetéssel: ha egy tranzakció hibával végződik, a megfelelő span „error” állapotjelzéssel kerül megjelölésre, és a fejlesztő áttérhet a teljesítménymutatóról a kivétel részleteire. Trace ID összeköti az összes eseményt (hibák, tranzakciók, breadcrumbs) egyetlen munkamenetbe a teljes körű elemzéshez, zökkenőmentes átmenetet biztosítva az Issues és Performance lapok között a Sentry platform egységes irányítópultján.

A Sentry Performance Benchmark (2024) szerint a bekapcsolt teljesítményfigyeléssel rendelkező alkalmazás (10%-os mintavételezési gyakoriság) 2–5%-kal több adatforgalmat és 1–2%-kal több CPU-erőforrást fogyaszt az eszközön. Ezt a terhelést a teljesítménydiagnosztikai idő 70%-os csökkenése kompenzálja a kézi profilalkotáshoz képest.

Gyakran Ismételt Kérdések

Miben különbözik a Sentry a Firebase Crashlytics-től?

Sentry több kontextust biztosít: breadcrumbs, egyéni adatok, hibák és teljesítmény összekapcsolása. A Firebase Crashlytics egy ingyenes eszköz alapvető hibabejelentéssel, de distributed tracing és egyéni breadcrumbs instrumentáció nélkül. A Sentry olyan projektekhez alkalmas, amelyek mély diagnosztikát igényelnek.

Mennyibe kerül a Sentry egy mobil alkalmazáshoz?

A Sentry ingyenes tarifát kínál havi 5.000 eseményre (hibák + tranzakciók). A fizetős Team tarifa felhasználónként havonta 26 dollárba kerül, és 100.000 eseményt tartalmaz. Nagy projektekhez elérhető a Business tarifa korlátlan mennyiséggel és egyedi árazással.

Hogyan kezeli a Sentry a személyes adatokat a hibákban?

A Sentry beépített Data Scrubbing mechanizmust kínál: az e-mailek, IP-címek, hitelkártyák és egyéb PII-adatok automatikus eltávolítása az eseményekből a tárolás előtt. A scrubbing szabályok a webes felületen vagy a Relay konfigurációban állíthatók be reguláris kifejezések támogatásával. Javasolt a scrubbing bekapcsolása SDK szinten, hogy a bizalmas adatok ne hagyják el a felhasználó eszközét.

Futtatható a Sentry saját szerveren?

Igen, a Sentry rendelkezik teljesen nyílt forráskódú saját tárhelyű verzióval. Self-hosted Sentry Docker Compose segítségével telepíthető, és tartalmazza a SaaS verzió összes funkcióját. Minimális szerverkonfiguráció szükséges: 4 vCPU, 16 GB RAM, 100 GB lemezterület az események tárolására.

Támogatja a Sentry a SwiftUI-t és a Jetpack Compose-t?

Igen, a Sentry SDK teljes mértékben támogatja a SwiftUI-t (iOS 13+) és a Jetpack Compose-t (Android). SwiftUI esetén az SDK automatikusan hoz létre tranzakciókat a NavigationView és List számára a renderelési idő mérésével. Jetpack Compose esetén egyéni integráció szükséges a CompositionLocalProvider segítségével a Sentry kontextus továbbításához a Composables felé.

Összegzés

  • Sentry — nyílt forráskódú hibakövető és teljesítményfigyelő platform, amelyet több mint 100.000 szervezet használ.
  • Architektúra tartalmazza az SDK-t az eszközön, a Relay proxy-t és az eseményfeldolgozó backend-et self-hosted és SaaS telepítés támogatásával.
  • Breadcrumbs a hibát megelőző felhasználói műveletek kronológiáját biztosítja, ami kritikus a bonyolult hibák diagnosztizálásához.
  • Source maps és dSYM helyreállítja az olvasható hívási vermet az obfuszkált éles kódból.
  • Performance Tracing integrálva van a hibakövetéssel, lehetővé téve az időmérőktől a hiba részleteihez való navigációt egyetlen trace ID segítségével.
  • Auto-instrumentation lefedi az Activity, ViewController, HTTP-kérések és az alkalmazás életciklusát kézi kód nélkül.
  • A Sentry bevezetése minden éles alkalmazáshoz ajánlott: az ingyenes tarifa havi 5.000 eseményt fedez, ami elegendő kisebb és közepes projektekhez.

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is