Sentry, geliştiricilere her çökmenin tam bağlamını sağlayan, gerçek zamanlı hata izleme ve uygulama performansı izleme platformudur. Sentry Documentation, 2025'e göre, Sentry günde 10 milyardan fazla olayı işler ve iOS, Android, web ve backend için 90'dan fazla dil ve framework ile entegrasyon sağlar.
Önemli Noktalar
Sentry, 2012 yılında kurulmuş açık kaynaklı bir çökme raporlama ve performans izleme platformudur. Geliştiricilerin tam tanı bağlamı (çağrı yığını, çökme anındaki değişken değerleri, hatadan önceki kullanıcı eylemleri sırası ve ortam durumu) ile gerçek zamanlı hata bildirimleri almasını sağlar.
Yalnızca istatistikler ve temel grafikler sağlayan toplu çökme raporlama hizmetlerinden (Google Play Console, App Store Connect) farklı olarak Sentry, her olayı ayrı ayrı hata türüne göre gruplama ve uygulama sürümüne göre filtreleme imkanı ile gösterir. Sentry'de Issue, aynı yığın izine sahip olayların bir grubudur ve binlerce aynı çökme içinde boğulmadan tam bağlamla kök nedenin düzeltilmesine odaklanmanızı sağlar.
Sentry (2025)'e göre, Sentry SDK uygulandıktan sonra ortalama hata tespit süresi 30 dakikadan 30 saniyeye düşer ve otomatik breadcrumbs ve ortam bağlamı sayesinde tanı süresi %60 oranında azalır. Platform, Airbnb, Microsoft, Instagram ve PayPal dahil olmak üzere dünya çapında 100.000'den fazla kuruluş tarafından kullanılmakta ve her gün milyarlarca olayı işlemektedir.
Sentry sistemi üç ana bileşenden oluşur: uygulama tarafında SDK, Relay (proxy sunucu) ve olay işleme backend'i. Sentry SDK, uygulamaya gömülü bir kütüphanedir; istisnaları yakalar, bağlamı toplar ve JSON/HTTPS protokolü üzerinden olayları Relay'e gönderir.
Relay, şirketin altyapısında dağıtılabilen bir ara sunucudur. SDK'dan olayları alır, kurallara (PII verileri, gereksiz olaylar) göre filtreler, arabelleğe alır ve Sentry SaaS veya kendi kendine barındırılan örneğe iletir. Relay düşük gecikme sağlar — tipik olay alma süresi 500–1500 ms'dir.
Sentry, sunucuya göndermeden önce istenmeyen olayları atmak için yerleşik filtreler sağlar: test ortamlarından gelen hatalar, eski uygulama sürümlerinden gelen hatalar, aynı parmak izine sahip yinelenen olaylar. Filtering, tipik bir üretim projesinde veri hacminin %70'ine kadar tasarruf sağlayarak tüketim maliyetlerini ve cihaz iletişim kanalı yükünü azaltır.
Mobil platformlar için Sentry SDK kurulumu 5–10 dakika sürer ve bir bağımlılık eklenmesi ve DSN anahtarı ile başlatma gerektirir. DSN (Data Source Name), Sentry'de olayların nereye gönderileceğini belirten benzersiz bir proje tanımlayıcısıdır.
Android için Sentry, bir Gradle eklentisi aracılığıyla otomatik enstrümantasyon sağlar. Eklenti, derleme aşamasında bayt kodunu değiştirerek tüm Activity'ler, Fragment'ler ve ağ çağrıları için sarmalayıcılar ekler. Auto-instrumentation, build.gradle'da tek bir seçenekle etkinleştirilir ve kod değiştirmeden uygulama yaşam döngüsünden breadcrumbs almayı sağlar.
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, bir Android uygulamasında Sentry SDK'yı başlatır. tracesSampleRate = 0.2 parametresi, oturumların %20'si için performans izlemeyi etkinleştirir, enableAutoSessionTracking her uygulama başlatıldığında otomatik olarak oturumlar oluşturur.
iOS SDK'sı CocoaPods, Swift Package Manager ve Carthage'ı destekler. Kurulumdan sonra SDK, otomatik olarak NSException, sinyalleri (SIGABRT, SIGSEGV) ve Swift hatalarını yakalar. Sentry Cocoa SDK, iOS 12+ ve macOS 10.13+ ile uyumludur, Swift Concurrency (async/await) ve URLSession'ın otomatik enstrümantasyonunu destekler.
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 kodu, otomatik performans metriği toplama ile Sentry SDK'yı etkinleştirir. enableAutoPerformanceTracing, ek kod olmadan ekran yükleme süresi ve HTTP isteklerinin izlenmesini etkinleştirir.
Breadcrumbs, bir hatadan önceki olayların kronolojik sırasıdır. Sentry, düğme basmaları, ekran geçişleri, HTTP istekleri ve sistem bildirimleri için otomatik olarak breadcrumbs kaydeder. Geliştirici, iş mantığı için özel breadcrumbs ekleyebilir.
Her breadcrumb bir zaman damgası, olay türü (navigation, http, ui, error), kategori ve rastgele veri içerir. Bir hata oluştuğunda, son 2–5 dakikadaki (yapılandırılabilir) tüm breadcrumbs olaya eklenir. Bu bağlam genellikle yığın izinin kendisinden daha önemlidir: geliştirici, kullanıcının bir ürün seçtikten sonra “Öde”ye tıkladığını ve ardından çökmenin gerçekleştiğini görebilir. Varsayılan maksimum breadcrumbs sayısı 200'dür ve bundan sonra en eski kayıtlar otomatik olarak kaldırılır.
Sentry.addBreadcrumb(
Breadcrumb().apply {
category = "payment"
message = "User tapped Pay button"
type = "user"
level = BreadcrumbLevel.INFO
data["amount"] = "19.99"
data["currency"] = "USD"
}
)
Kod, ödeme senaryosunda bir kullanıcı eylemi için özel bir breadcrumb ekler. Bu eylemden sonra bir hata oluşursa, geliştirici Sentry'de kullanıcının 19,99 USD tutarında “Öde”ye tıkladığını görür ve ödeme akışındaki sorunu hızlıca belirleyebilir.
Sentry, olaylara kullanıcı bilgileri (ID, kullanıcı adı, e-posta) eklemeye izin verir. User context, aynı oturumdaki tüm olaylarla otomatik olarak iletilir ve hataların kullanıcılara göre gruplandırılmasını ve belirli bir hatadan kaç kullanıcının etkilendiğinin belirlenmesini sağlar. Gizlilik politikasına uymak ve uygulama politikası izin vermiyorsa kişisel verileri iletmemek önemlidir.
iOS ve Android'in üretim yapılarında kod genellikle küçültülür veya karmaşıklaştırılır. İşlem yapılmazsa, hata yığını “UserViewModel.fetchData()” yerine “a.b()” gibi anlaşılmaz isimler içerecektir. Source maps (JavaScript) ve debug symbols (iOS için dSYM, Android için ProGuard mapping) okunabilir bir yığın geri yükler.
Android için Sentry, sürüm yapısı sırasında Gradle eklentisi aracılığıyla ProGuard mapping dosyalarını otomatik olarak yükler. iOS için dSYM dosyalarının yüklenmesi gerekir — Sentry, arşivleme sırasında otomatik yükleme için bir komut dosyası sağlar. Hata ayıklama sembolleri olmadan, Sentry'deki hata yığını geliştirici için işe yaramaz olacaktır, bu nedenle bunları yükleme işlemi CI/CD hattında zorunlu bir adım olmalıdır.
2020 sürümünden itibaren Sentry, performans izlemeyi (dağıtık izleme ile işlem yürütme süresi metriklerinin toplanması) içerir. Sentry'de Transaction, ölçülebilir bir iş birimidir: ekran yükleme, API isteği yürütme, arka plan görevi işleme. Her işlem, hangi belirli adımların en çok zaman aldığını gösteren alt span'lar içerir.
Sentry'deki performans izleme, hata izleme ile entegredir: bir işlem bir hatayla sonlanırsa, ilgili span “error” durumuyla işaretlenir ve geliştirici performans metriklerinden istisna ayrıntılarına gidebilir. Trace ID, tüm olayları (hatalar, işlemler, breadcrumbs) uçtan uca analiz için tek bir oturumda birleştirir ve tek bir Sentry panosunda Issues ve Performance sekmeleri arasında kesintisiz geçiş sağlar.
Sentry Performance Benchmark (2024)'e göre, performans izleme etkin (%10 örnekleme oranı) bir uygulama, cihazda %2–5 daha fazla trafik ve %1–2 daha fazla CPU kaynağı tüketir. Bu ek yük, manuel profil oluşturmaya kıyasla performans teşhis süresinde %70 azalma ile dengelenir.
Sıkça Sorulan Sorular
Sentry daha fazla bağlam sağlar: breadcrumbs, özel veriler, hataları performansla ilişkilendirme. Firebase Crashlytics, temel çökme raporlaması olan ücretsiz bir araçtır ancak dağıtık izleme ve özel breadcrumb enstrümantasyonu yeteneği yoktur. Sentry, derin teşhis gerektiren projeler için uygundur.
Sentry, ayda 5.000 olay (hatalar + işlemler) ile ücretsiz bir plan sunar. Ücretli Team planı, kullanıcı başına aylık 26 ABD dolarıdır ve 100.000 olay içerir. Büyük projeler için sınırsız hacim ve özel fiyatlandırma ile Business planı mevcuttur.
Sentry, yerleşik bir Data Scrubbing mekanizması sağlar: depolamadan önce olaylardan e-postaların, IP adreslerinin, kredi kartlarının ve diğer PII verilerinin otomatik olarak kaldırılması. Temizleme kuralları, web arayüzünde veya düzenli ifadeleri destekleyen Relay yapılandırmasında yapılandırılır. Gizli verilerin kullanıcının cihazından çıkmaması için SDK düzeyinde temizlemenin etkinleştirilmesi önerilir.
Evet, Sentry'nin tamamen açık kaynaklı, kendi kendine barındırılan bir sürümü vardır. Self-hosted Sentry, Docker Compose aracılığıyla dağıtılır ve SaaS sürümünün tüm özelliklerini içerir. Gerekli minimum sunucu yapılandırması: 4 vCPU, 16 GB RAM, olay depolama için 100 GB disk alanı.
Evet, Sentry SDK SwiftUI (iOS 13+) ve Jetpack Compose'u (Android) tam olarak destekler. SwiftUI için SDK, oluşturma süresi ölçümü ile NavigationView ve List için otomatik olarak işlemler oluşturur. Jetpack Compose için, Sentry bağlamını Composables'a iletmek üzere CompositionLocalProvider aracılığıyla özel entegrasyon gerekir.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun