Sentry — bu nədir, prinsipləri və xətaların toplanması

Müəllif: IT Sectr Dərc olunub: 2026-05-29 Oxuma vaxtı: 8 dəq

Sentry — tətbiqlərdə səhvləri izləmək və performansa real vaxt rejimində nəzarət etmək üçün platformadır, tərtibatçılara hər bir nasazlığın tam kontekstini təqdim edir. Sentry Documentation, 2025 məlumatlarına görə, Sentry gündə 10 milyarddan çox hadisəni emal edir, iOS, Android, veb və backend üçün 90+ dil və freymvork ilə inteqrasiyanı təmin edir.

Əsas məqamlar

  • Sentry — 90+ dil və platformanı dəstəkləyən, açıq mənbəli xəta izləmə və performans monitorinq platforması.
  • Error events — tam stacktrace, dəyişən dəyərləri və cihaz vəziyyəti ilə istisnaların avtomatik toplanması.
  • Breadcrumbs — səhvdən əvvəl baş verən istifadəçi hərəkətləri və sistem hadisələrinin ardıcıllığı.
  • Source maps — production-da oxunaqlı çağırış stackini bərpa etmək üçün minifikasiya olunmuş kodun deobfuskasiyası.
  • Performance Tracing — bütün xidmətlər üzrə distributed tracing ilə əməliyyatların icra vaxtının monitorinqi.

İnkişafda Sentry nədir

Sentry — 2012-ci ildə qurulmuş, açıq mənbəli crash-reporting və performans monitorinq platformasıdır. Tərtibatçılara real vaxt rejimində səhvlər haqqında tam diaqnostik kontekstlə bildirişlər almağa imkan verir: çağırış stacki, nasazlıq anında dəyişən dəyərləri, səhvdən əvvəl istifadəçi hərəkətlərinin ardıcıllığı və mühit vəziyyəti.

Yalnız statistika və əsas qrafiklər təqdim edən aqreqasiya olunmuş crash-reporting xidmətlərindən (Google Play Console, App Store Connect) fərqli olaraq, Sentry hər bir hadisəni ayrıca göstərir, xəta növünə görə qruplaşdırma və tətbiq versiyasına görə filtrləmə imkanı verir. Sentry-də Issue — eyni stacktrace-ə malik hadisələr qrupudur ki, bu da minlərlə eyni kraşda boğulmamağa, tam kontekstlə kök səbəbi aradan qaldırmağa diqqət etməyə imkan verir.

Sentry (2025) məlumatlarına görə, Sentry SDK tətbiq edildikdən sonra xətanın aşkarlanma müddəti 30 dəqiqədən 30 saniyəyə qədər, diaqnostika müddəti isə avtomatik breadcrumbs və mühit konteksti sayəsində 60% azalır. Platforma dünyada 100.000-dən çox təşkilat, o cümlədən Airbnb, Microsoft, Instagram və PayPal tərəfindən istifadə olunur, gündə milyardlarla hadisəni emal edir.

Sentry arxitekturası: SDK, Relay və hadisələrin emalı

Sentry sistemi üç əsas komponentdən ibarətdir: tətbiq tərəfində SDK, Relay (proksi-server) və hadisələrin emalı üçün backend. Sentry SDK — tətbiqə daxil edilən, istisnaları tutan, kontekst toplayan və hadisələri JSON/HTTPS protokolu ilə Relay-ə göndərən kitabxanadır.

Sentry Relay

Relay — şirkətin infrastrukturunda yerləşdirilə bilən aralıq serverdir. SDK-dan hadisələri qəbul edir, qaydalara görə filtrləyir (PII məlumatları, lazımsız hadisələr), buferləşdirir və Sentry SaaS və ya öz instansiyasına ötürür. Relay aşağı göndərmə gecikməsi təmin edir — hadisənin qəbul edilməsinin tipik vaxtı 500–1500 ms təşkil edir.

Inbound Data Filter

Sentry serverə göndərmədən arzuolunmaz hadisələri rədd etmək üçün daxili filtrlər təqdim edir: test mühitlərindən gələn səhvlər, tətbiqin köhnə versiyalarından səhvlər, eyni fingerprint-ə malik təkrarlanan hadisələr. Filtering tipik production layihəsində məlumat həcminin 70%-nə qədər qənaət edir, istehlak dəyərini və cihazın rabitə kanalı yükünü azaldır.

iOS və Android üçün Sentry SDK-nın quraşdırılması

Mobil platformalar üçün Sentry SDK-nın quraşdırılması 5–10 dəqiqə çəkir və asılılığın əlavə edilməsini və DSN açarı ilə inisializasiyanı tələb edir. DSN (Data Source Name) — Sentry-də hadisələrin hara göndəriləcəyini göstərən layihənin unikal identifikatorudur.

Android-də quraşdırma

Android üçün Sentry Gradle plaqini vasitəsilə avtomatik instrumentasiya təmin edir. Plaqin kompilyasiya mərhələsində bayt-kodu modifikasiya edərək bütün Activity, Fragment və şəbəkə çağırışları üçün əlavələr əlavə edir. Auto-instrumentation build.gradle faylında bir seçimlə aktivləşdirilir və kodu dəyişmədən tətbiqin həyat dövründən breadcrumbs almağa imkan verir.

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

Kod Android tətbiqində Sentry SDK-nı inisializasiya edir. tracesSampleRate = 0.2 parametri sessiyaların 20%-i üçün performans tracingini aktivləşdirir, enableAutoSessionTracking tətbiqin hər işə salınması üçün avtomatik sessiyalar yaradır.

iOS-də quraşdırma

iOS SDK CocoaPods, Swift Package Manager və Carthage-ı dəstəkləyir. SDK quraşdırıldıqdan sonra avtomatik olaraq NSException, siqnalları (SIGABRT, SIGSEGV) və Swift səhvlərini tutur. Sentry Cocoa SDK iOS 12+ və macOS 10.13+ ilə uyğundur, Swift Concurrency (async/await) və URLSession-ın avtomatik instrumentasiyasını dəstəkləyir.

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

Swift-dəki kod avtomatik performans metrikalarının toplanması ilə Sentry SDK-nı aktivləşdirir. enableAutoPerformanceTracing əlavə kod olmadan ekranların yüklənmə vaxtının və HTTP sorğularının monitorinqini aktivləşdirir.

Breadcrumbs — səhvdən əvvəl baş verən hadisələrin xronoloji ardıcıllığıdır. Sentry avtomatik olaraq düymə klikləri, ekranlar arası keçidlər, HTTP sorğuları və sistem bildirişləri üçün breadcrumbs qeyd edir. Tərtibatçı biznes məntiqi üçün fərdi breadcrumbs əlavə edə bilər.

Hər bir breadcrumb vaxt damğası, hadisə növü (navigation, http, ui, error), kateqoriya və ixtiyari məlumatlar ehtiva edir. Səhv baş verdikdə son 2–5 dəqiqənin (konfiqurasiya oluna bilən) bütün breadcrumbs hadisəyə əlavə olunur. Bu kontekst çox vaxt stacktrace-in özündən daha vacibdir: tərtibatçı görür ki, istifadəçi məhsulu seçdikdən sonra “Ödə” düyməsini klikləyib və yalnız bundan sonra kraş baş verib. Default olaraq maksimum breadcrumbs sayı 200-dür, bundan sonra ən köhnə qeydlər avtomatik silinir.

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

Kod ödəniş ssenarisində istifadəçi hərəkəti üçün fərdi breadcrumb əlavə edir. Bu hərəkətdən sonra səhv baş verərsə, tərtibatçı Sentry-də istifadəçinin 19.99 USD məbləğində “Pay” düyməsini kliklədiyini görəcək ki, bu da ödəniş axınında problemi tez lokallaşdırmağa imkan verir.

User context

Sentry hadisələrə istifadəçi haqqında məlumat əlavə etməyə imkan verir: ID, istifadəçi adı, email. User context bir sessiyanın bütün hadisələri ilə avtomatik ötürülür, səhvləri istifadəçilər üzrə qruplaşdırmağa və konkret baqın neçə istifadəçiyə təsir etdiyini müəyyən etməyə imkan verir. Məxfilik siyasətinə riayət etmək və tətbiq siyasəti icazə vermədikdə şəxsi məlumatları ötürməmək vacibdir.

Source maps və debug simvolları

iOS və Android-in production versiyalarında kod adətən minifikasiya olunur və ya obfuskasiya edilir. Emal olunmadan səhv stacki “a.b()” əvəzinə “UserViewModel.fetchData()” kimi anlaşılmaz adlar ehtiva edəcək. Source maps (JavaScript) və debug symbols (iOS üçün dSYM, Android üçün ProGuard mapping) oxunaqlı stacki bərpa edir.

Android üçün Sentry release versiyasını qurarkən Gradle plaqini vasitəsilə ProGuard mapping fayllarını avtomatik yükləyir. iOS üçün dSYM fayllarının yüklənməsi tələb olunur — Sentry arxivləşdirmə mərhələsində avtomatik yükləmə üçün skript təqdim edir. Debug simvolları olmadan Sentry-də səhv stacki tərtibatçı üçün faydasız olacaq, buna görə də onların yüklənməsi CI/CD pipeline-nin məcburi addımı olmalıdır.

Sentry vasitəsilə performans monitorinqi

2020-ci il versiyasından başlayaraq Sentry performans monitorinqini — distributed tracing ilə əməliyyatların icra vaxtı metrikalarının toplanmasını ehtiva edir. Sentry-də Transaction — ölçülən iş vahididir: ekranın yüklənməsi, API sorğusunun icrası, fon tapşırığının emalı. Hər bir əməliyyat ən çox vaxt aparan addımları göstərən uşaq spanları ehtiva edir.

Sentry-də performans monitorinqi error tracking ilə inteqrasiya olunub: əməliyyat səhvlə başa çatarsa, müvafiq span “error” statusu ilə qeyd olunur və tərtibatçı performans metrikasından istisna detallarına keçə bilər. Trace ID bütün hadisələri (səhvlər, əməliyyatlar, breadcrumbs) vahid sessiyada birləşdirərək kompleks analiz üçün Sentry platformasının vahid dashboardında Issues və Performance nişanları arasında problemsiz keçidi təmin edir.

Sentry Performance Benchmark (2024) məlumatlarına görə, performans monitorinqi aktiv edilmiş tətbiq (seçmə tezliyi 10%) cihazda 2–5% daha çox trafik və 1–2% daha çox CPU resursu sərf edir. Bu yük əl ilə profilinq ilə müqayisədə performans diaqnostika müddətinin 70% azaldılması ilə kompensasiya olunur.

Tez-tez verilən suallar

Sentry Firebase Crashlytics-dən nə ilə fərqlənir?

Sentry daha çox kontekst təqdim edir: breadcrumbs, fərdi məlumatlar, səhvlərin performansla əlaqəsi. Firebase Crashlytics — əsas kraş-reportinq ilə pulsuz alətdir, lakin distributed tracing və breadcrumbs-ın fərdi instrumentasiyası imkanı olmadan. Sentry dərin diaqnostika tələb edən layihələr üçün uyğundur.

Sentry mobil tətbiq üçün nə qədərdir?

Sentry ayda 5 000 hadisə (səhvlər + əməliyyatlar) üçün pulsuz tarif təklif edir. Team ödənişli tarifi istifadəçi başına ayda 26 dollar təşkil edir və 100 000 hadisəni əhatə edir. Böyük layihələr üçün limitsiz həcm və fərdi qiymətlə Business tarifi mövcuddur.

Sentry səhvlərdə şəxsi məlumatları necə emal edir?

Sentry Data Scrubbing daxili mexanizmini təmin edir: email, IP ünvanları, kredit kartları və digər PII məlumatlarının hadisələrdən saxlanmadan əvvəl avtomatik silinməsi. Skrubinq qaydaları veb interfeysdə və ya Relay konfiqurasiyasında müntəzəm ifadələr dəstəyi ilə konfiqurasiya olunur. Məxfi məlumatların istifadəçi cihazını tərk etməməsi üçün skrubinqin SDK səviyyəsində aktivləşdirilməsi tövsiyə olunur.

Sentry-ni öz serverlərimdə işlədə bilərəmmi?

Bəli, Sentry tam açıq mənbəli self-hosted versiyaya malikdir. Self-hosted Sentry Docker Compose vasitəsilə yerləşdirilir və SaaS versiyasının bütün funksiyalarını ehtiva edir. Minimal server konfiqurasiyası tələb olunur: 4 vCPU, 16 GB RAM, hadisələrin saxlanması üçün 100 GB disk sahəsi.

Sentry SwiftUI və Jetpack Compose-u dəstəkləyirmi?

Bəli, Sentry SDK SwiftUI (iOS 13+) və Jetpack Compose (Android) tam dəstəkləyir. SwiftUI üçün SDK render vaxtının ölçülməsi ilə NavigationView və List üçün avtomatik əməliyyatlar yaradır. Jetpack Compose üçün Composables-a Sentry kontekstini ötürmək üçün CompositionLocalProvider vasitəsilə fərdi inteqrasiya tələb olunur.

Nəticə

  • Sentry — 100.000-dən çox təşkilat tərəfindən istifadə olunan, açıq mənbəli xəta izləmə və performans monitorinq platforması.
  • Arxitektura cihazda SDK, Relay proksi və self-hosted və SaaS yerləşdirmə dəstəyi ilə hadisələrin emalı backendini əhatə edir.
  • Breadcrumbs mürəkkəb baqların diaqnostikası üçün kritik əhəmiyyət kəsb edən, səhvdən əvvəl istifadəçi hərəkətlərinin xronologiyasını təmin edir.
  • Source maps və dSYM obfuskasiya olunmuş production kodundan oxunaqlı çağırış stackini bərpa edir.
  • Performance Tracing error tracking ilə inteqrasiya olunub, vahid trace ID vasitəsilə vaxt metrikalarından səhv detallarına keçməyə imkan verir.
  • Auto-instrumentation əl kodu olmadan Activity, ViewController, HTTP sorğuları və tətbiqin həyat dövrünü əhatə edir.
  • Sentry-nin tətbiqi hər hansı production tətbiqi üçün tövsiyə olunur: pulsuz tarif kiçik və orta layihələr üçün kifayət olan ayda 5 000 hadisəni əhatə edir.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun