Sentry — ce este, principii și colectarea erorilor

Autor: IT Sectr Publicat: 2026-05-29 Timp de citire: 8 min

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 — platformă de urmărire a erorilor și monitorizare a performanței cu sursă deschisă, care suportă 90+ limbi și platforme.
  • Error events — colectarea automată a excepțiilor cu stacktrace complet, valori ale variabilelor și stare a dispozitivului.
  • Breadcrumbs — secvența acțiunilor utilizatorului și a evenimentelor de sistem premergătoare erorii.
  • Source maps — deobfuscarea codului minificat pentru restaurarea stivei de apeluri lizibile în producție.
  • Performance Tracing — monitorizarea timpului de execuție a tranzacțiilor cu distributed tracing prin toate serviciile.

Ce este Sentry în dezvoltare

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.

Arhitectura Sentry: SDK, Relay și procesarea evenimentelor

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.

Sentry Relay

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.

Inbound Data Filter

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.

Configurarea Sentry SDK pentru iOS și Android

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.

Configurarea pe Android

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.

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

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.

Configurarea pe iOS

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.

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

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.

kotlin
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ă.

User context

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.

Source maps și simbolurile de debug

î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.

Monitorizarea performanței prin Sentry

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

Cu ce se deosebește Sentry de Firebase Crashlytics?

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ă.

Cât costă Sentry pentru o aplicație mobilă?

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.

Cum procesează Sentry datele personale în erori?

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.

Se poate rula Sentry pe servere proprii?

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.

Suportă Sentry SwiftUI și Jetpack Compose?

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

  • Sentry — platformă de urmărire a erorilor și monitorizare a performanței cu sursă deschisă, utilizată de peste 100.000 de organizații.
  • Arhitectura include SDK pe dispozitiv, proxy Relay și backend de procesare a evenimentelor cu suport pentru implementare self-hosted și SaaS.
  • Breadcrumbs oferă cronologia acțiunilor utilizatorului înainte de eroare, esențială pentru diagnosticarea bugurilor complexe.
  • Source maps și dSYM restaurează stava de apeluri lizibilă din codul ofuscat de producție.
  • Performance Tracing este integrat cu error tracking, permițând trecerea de la metrici de timp la detalii de eroare printr-un trace ID unic.
  • Auto-instrumentation acoperă Activity, ViewController, cererile HTTP și ciclul de viață al aplicației fără cod manual.
  • Implementarea Sentry este recomandată pentru orice aplicație de producție: tariful gratuit acoperă 5.000 de evenimente pe lună, suficiente pentru proiecte mici și medii.

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.

Discutați proiectul

Citiți și