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 — 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 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.
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.
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.
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 üçü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.
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 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.
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.
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.
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.
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.
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 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 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 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.
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.
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ə
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.
Həm də oxuyun