Sentry este o platformă pentru urmărirea erorilor și monitorizarea performanței aplicațiilor în timp real, oferind dezvoltatorilor contextul complet al fiecărui eșec. Potrivit Sentry Documentation, 2025, Sentry procesează peste 10 miliarde de evenimente pe zi, asigurând integrarea cu 90+ limbi și frameworkuri pentru iOS, Android, web și backend.
Principalele puncte
Sentry — este o platformă open-source pentru raportarea erorilor și monitorizarea performanței, fondată în 2012. Permite dezvoltatorilor să primească notificări despre erori în timp real cu context diagnostic complet: stiva de apeluri, valori ale variabilelor la momentul eșecului, secvența acțiunilor utilizatorului înainte de eroare și starea mediului.
Spre deosebire de serviciile agregate de raportare a erorilor (Google Play Console, App Store Connect), care oferă doar statistici și grafice de bază, Sentry arată fiecare eveniment separat, cu posibilitatea de grupare după tipul erorii și filtrare după versiunea aplicației. Issue în Sentry — este un grup de evenimente cu același stacktrace, ceea ce permite să nu te înneci în mii de crashuri identice, ci să te concentrezi pe eliminarea cauzei principale cu context complet.
Potrivit Sentry (2025), timpul mediu de detectare a erorii se reduce de la 30 de minute la 30 de secunde după implementarea Sentry SDK, iar timpul de diagnosticare — cu 60% datorită breadcrumbs automate și contextului mediului. Platforma este utilizată de peste 100.000 de organizații din întreaga lume, inclusiv Airbnb, Microsoft, Instagram și PayPal, procesând miliarde de evenimente zilnic.
Sistemul Sentry este format din trei componente principale: SDK în aplicație, Relay (server proxy) și backend de procesare a evenimentelor. Sentry SDK — este o bibliotecă integrată în aplicație care interceptează excepțiile, colectează contextul și trimite evenimentele la Relay prin protocolul JSON/HTTPS.
Relay — este un server intermediar care poate fi implementat în infrastructura companiei. Primește evenimente de la SDK, filtrează conform regulilor (date PII, evenimente inutile), bufferizează și transmite mai departe către Sentry SaaS sau propria instanță. Relay asigură o latență scăzută de trimitere — timpul tipic de primire a evenimentului este de 500–1500 ms.
Sentry oferă filtre încorporate pentru eliminarea evenimentelor nedorite fără a le trimite pe server: erori din medii de testare, erori din versiunile vechi ale aplicației, evenimente repetate cu același fingerprint. Filtering economisește până la 70% din volumul de date într-un proiect tipic de producție, reducând costul de consum și încărcarea canalului de comunicare al dispozitivului.
Instalarea Sentry SDK pentru platformele mobile durează 5–10 minute și necesită adăugarea dependenței și inițializarea cu cheia DSN. DSN (Data Source Name) — identificatorul unic al proiectului în Sentry care indică unde sĄ fie trimise evenimentele.
Pentru Android, Sentry oferă instrumentare automată prin pluginul Gradle. Pluginul modifică bytecode-ul în faza de compilare, adăugând wrappere pentru toate Activity, Fragment și apelurile de rețea. Auto-instrumentation se activează cu o singură opțiune în build.gradle și permite obținerea de breadcrumbs din ciclul de viață al aplicației fără modificarea codului.
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
}
}
}
Codul inițializează Sentry SDK în aplicația Android. Parametrul tracesSampleRate = 0.2 activează performance tracing pentru 20% din sesiuni, enableAutoSessionTracking creează automat sesiuni pentru fiecare lansare a aplicației.
SDK-ul pentru iOS suportă CocoaPods, Swift Package Manager și Carthage. După instalare, SDK-ul interceptează automat NSException, semnalele (SIGABRT, SIGSEGV) și erorile Swift. Sentry Cocoa SDK este compatibil cu iOS 12+ și macOS 10.13+, suportă Swift Concurrency (async/await) și instrumentarea automată a URLSession.
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
}
}
Codul în Swift activează Sentry SDK cu colectarea automată a metricilor de performanță. enableAutoPerformanceTracing activează monitorizarea timpului de încărcare a ecranelor și a cererilor HTTP fără cod suplimentar.
Breadcrumbs — este o secvență cronologică a evenimentelor premergătoare erorii. Sentry înregistrează automat breadcrumbs pentru clicuri pe butoane, tranziții între ecrane, cereri HTTP și notificări de sistem. Dezvoltatorul poate adăuga breadcrumbs personalizate pentru logica de business.
Fiecare breadcrumb conține un marcaj temporal, tipul evenimentului (navigation, http, ui, error), categoria și date arbitrare. La apariția unei erori, toate breadcrumbs din ultimele 2–5 minute (configurabil) se atașează evenimentului. Acest context este adesea mai important decât stacktrace-ul în sine: dezvoltatorul vede că utilizatorul a făcut clic pe „Plătește” după selectarea produsului și abia apoi a avut loc crashul. Numărul maxim de breadcrumbs implicit este de 200, după care cele mai vechi înregistrări se șterg automat.
Sentry.addBreadcrumb(
Breadcrumb().apply {
category = "payment"
message = "User tapped Pay button"
type = "user"
level = BreadcrumbLevel.INFO
data["amount"] = "19.99"
data["currency"] = "USD"
}
)
Codul adaugă un breadcrumb personalizat pentru acțiunea utilizatorului în scenariul de plată. Dacă după această acțiune apare o eroare, dezvoltatorul va vedea în Sentry că utilizatorul a făcut clic pe „Pay” cu suma de 19.99 USD, ceea ce permite localizarea rapidă a problemei în fluxul de plată.
Sentry permite atașarea la evenimente a informațiilor despre utilizator: ID, nume de utilizator, email. User context este transmis automat cu toate evenimentele dintr-o sesiune, permițând gruparea erorilor pe utilizatori și determinarea câți utilizatori au fost afectați de un anumit bug. Este important să se respecte politica de confidențialitate și să nu se transmită date personale dacă acest lucru nu este permis de politica aplicației.
în versiunile de producție iOS și Android, codul este de obicei minificat sau ofuscat. Fără procesare, stiva de erori va conține nume de neînțeles precum „a.b()” în loc de „UserViewModel.fetchData()”. Source maps (JavaScript) și debug symbols (dSYM pentru iOS, ProGuard mapping pentru Android) restaurează stava lizibilă.
Pentru Android, Sentry încarcă automat fișierele ProGuard mapping prin pluginul Gradle la construirea versiunii release. Pentru iOS este necesară încărcarea fișierelor dSYM — Sentry oferă un script pentru încărcarea automată în faza de arhivare. Fără simboluri de debug, stiva de erori în Sentry va fi inutilă pentru dezvoltator, de aceea procesul de încărcare a acestora trebuie să fie un pas obligatoriu în pipeline-ul CI/CD.
ncepând cu versiunea 2020, Sentry include monitorizarea performanței — colectarea metricilor de timp de execuție a tranzacțiilor cu distributed tracing. Transaction în Sentry — este o unitate de muncă măsurabilă: încărcarea ecranului, executarea unei cereri API, procesarea unei sarcini de fundal. Fiecare tranzacție conține spanuri copil care arată care pași au durat cel mai mult.
Monitorizarea performanței în Sentry este integrată cu error tracking: dacă o tranzacție s-a încheiat cu o eroare, spanul corespunzător este marcat cu statusul „error”, iar dezvoltatorul poate trece de la metrica de performanță la detaliile excepției. Trace ID leagă toate evenimentele (erori, tranzacții, breadcrumbs) într-o singură sesiune pentru o analiză completă, asigurând o tranziție fără probleme între filele Issues și Performance într-un singur dashboard al platformei Sentry.
Potrivit Sentry Performance Benchmark (2024), o aplicație cu monitorizarea performanței activată (rata de eșantionare 10%) consumă cu 2–5% mai mult trafic și cu 1–2% mai multe resurse CPU pe dispozitiv. Această sarcină este compensată prin reducerea timpului de diagnosticare a performanței cu 70% față de profilarea manuală.
ntrebări frecvente
Sentry oferă mai mult context: breadcrumbs, date personalizate, legătura erorilor cu performanța. Firebase Crashlytics este un instrument gratuit cu raportare de bază a erorilor, dar fără distributed tracing și fără posibilitatea de instrumentare personalizată a breadcrumbs. Sentry este potrivit pentru proiecte care necesită o diagnosticare profundă.
Sentry oferă un tarif gratuit pentru 5.000 de evenimente pe lună (erori + tranzacții). Tariful plătit Team costă 26 de dolari per utilizator pe lună și include 100.000 de evenimente. Pentru proiecte mari este disponibil tariful Business cu volum nelimitat și preț individual.
Sentry oferă un mecanism integrat Data Scrubbing: ștergerea automată a emailurilor, adreselor IP, cardurilor de credit și a altor date PII din evenimente înainte de stocare. Regulile de scrubbing se configurează în interfața web sau în configurația Relay cu suport pentru expresii regulate. Se recomandă activarea scrubbing-ului la nivel de SDK pentru ca datele confidențiale să nu părăsească dispozitivul utilizatorului.
Da, Sentry are o versiune complet open-source pentru auto-găzduire. Self-hosted Sentry se implementează prin Docker Compose și include toate funcțiile versiunii SaaS. Este necesară o configurație minimă de server: 4 vCPU, 16 GB RAM, 100 GB spațiu pe disc pentru stocarea evenimentelor.
Da, Sentry SDK suportă complet SwiftUI (iOS 13+) și Jetpack Compose (Android). Pentru SwiftUI, SDK creează automat tranzacții pentru NavigationView și List cu măsurarea timpului de randare. Pentru Jetpack Compose este necesară o integrare personalizată prin CompositionLocalProvider pentru transmiterea contextului Sentry în Composables.
Concluzii
Vom dezvolta o aplicație mobilă la cheie
IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.
Citiți și