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 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 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.
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.
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 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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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
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.
Olvassa el is