Bugsnag, üretim ortamlarında tam tanı bağlamıyla hataları otomatik olarak algılayan, gruplayan ve önceliklendiren bir uygulama hata izleme ve kararlılık platformudur. Bugsnag Documentation, 2025'e göre, Bugsnag Airbnb, Lyft, Slack ve PagerDuty dahil 7.000'den fazla müşteri için aylık 6 milyar olay işlemektedir.
Önemli Noktalar
Bugsnag, 2013 yılında kurulmuş ve 2019 yılında SmartBear tarafından satın alınmış bir uygulama kararlılığı izleme platformudur. Bugsnag ile rakipleri arasındaki temel fark, yalnızca hata sayısına değil, kararlılığa temel bir ürün metriği olarak odaklanmasıdır. Platform, iOS, Android, React Native, Flutter, web ve backend hizmetleri için birleşik bir pano sağlar.
Bugsnag'daki her hata, bağlama göre otomatik bir önem derecesi (critical, warning, info) alır: bir çökme meydana geldi mi, bir ödeme işlevi etkilendi mi veya hata birçok kullanıcı için tekrarlanıyor mu. Ekip yalnızca bir hata listesi değil, iş etkisini gösteren önceliklendirilmiş bir birikmiş iş listesi görür.
SmartBear (2024)'e göre, Bugsnag kullanan ekipler, otomatik yinelenen gruplama ve tam olay bağlamı sayesinde ortalama çözüm süresini %40 oranında azaltmaktadır. Platform, hatalardan otomatik görev oluşturma için Slack, PagerDuty, Jira, GitHub ve GitLab ile entegre olur.
Stability Score, Bugsnag'ın temel metriğidir ve hatasız tamamlanan oturumların yüzdesini gösterir. Değer, bir dönemdeki toplam oturum sayısına karşı çökmesiz oturumların oranı olarak hesaplanır. %99,9'luk bir puan, 1.000 oturumdan 1'inin hata içerdiği anlamına gelir.
Stability Score eşikleri CI/CD ile entegredir: yeni bir sürüm dağıttıktan sonra puan belirlenen bir eşiğin (örneğin %99,5) altına düşerse, Bugsnag otomatik olarak sürümü engeller veya Slack'te kritik bir uyarı gönderir. Release health dashboard, her uygulama sürümü için puan dinamiklerini göstererek belirli bir değişikliğin kararlılık üzerindeki etkisini izlemeyi sağlar.
Bugsnag, üç önem düzeyine sahip otomatik bir hata sınıflandırma algoritması kullanır. Critical — uygulama çökmeleri, kullanıcıların %5'inden fazlasını etkileyen ödeme senaryolarındaki hatalar. Warning — bireysel işlevleri etkileyen ölümcül olmayan hatalar (handled exceptions). Info — günlükler, düşük öncelikli uyarılar. Bu yaklaşım, yüzlerce bildirimin gerçekten kritik sorunlara odaklanmayı engellediği uyarı yorgunluğunu önler.
| Önem | Örnek | Eylem |
|---|---|---|
| Critical | Uygulama başlatılırken çökme | Anında bildirim |
| Warning | Avatar yükleme hatası | Bir sonraki sprint için Jira görevi |
| Info | QR tarama zaman aşımı | Bildirimsiz günlüğe kaydetme |
Bugsnag SDK kurulumu 5 dakika sürer: bağımlılık ekleme ve bir proje API anahtarıyla başlatma. Bugsnag Android SDK, Kotlin ve Java'yı destekler, Java istisnalarını, ANR'leri ve sinyaller aracılığıyla yerel (C/C++) hatalarını otomatik olarak yakalar.
SDK, Gradle aracılığıyla eklenir ve Application.onCreate'te başlatılır. Bugsnag otomatik olarak cihaz bilgilerini toplar: model, işletim sistemi sürümü, boş bellek, pil seviyesi. Auto-notify varsayılan olarak etkindir ve tüm işlenmemiş istisnaları Bugsnag sunucusuna gönderir.
import com.bugsnag.android.Bugsnag
import com.bugsnag.android.Configuration
class App : Application() {
override fun onCreate() {
super.onCreate()
val config = Configuration("YOUR_API_KEY")
config.autoTrackSessions = true
config.launchDurationMillis = 5_000
Bugsnag.start(this, config)
}
}
Kod, otomatik oturum izleme ve maksimum 5 saniyelik başlangıç süresiyle Bugsnag SDK'yı başlatır. Uygulama bu süre içinde başlatılmazsa, Bugsnag bir uyarı olarak "yavaş başlatma" olayını kaydeder.
Bugsnag iOS SDK, Swift ve Objective-C'yi destekler, NSException, Mach istisnalarını (SIGABRT, SIGSEGV) ve işletim sistemi sinyallerini yakalar. SDK, iOS 11+ ve SwiftUI ile uyumludur ve tüm kullanıcı arayüzü olayları (dokunma, geçiş, jest) için otomatik olarak breadcrumbs oluşturur.
import Bugsnag
class AppDelegate: UIResponder, UIApplicationDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions options: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
Bugsnag.start(withApiKey: "YOUR_API_KEY")
// ek yapılandırma
return true
}
}
Swift kodu, minimum yapılandırmayla Bugsnag'ı başlatır. İşlenmemiş tüm istisnalar ve çökmeler, tam cihaz bağlamı ve çağrı yığınıyla birlikte otomatik olarak Bugsnag panosuna gönderilir.
Bugsnag'daki Breadcrumbs, bir hatadan önceki olayların yapılandırılmış günlüğüdür. Her breadcrumb bir zaman damgası, tür (navigation, request, state, error, manual) ve isteğe bağlı meta veri içerir. Bugsnag, iOS ve Android'deki kullanıcı arayüzü olayları, uygulama durumu değişiklikleri (arka plan, ön plan) ve ağ istekleri için otomatik olarak breadcrumbs kaydeder.
Geliştiriciler, iş mantığı için özel breadcrumbs ekleyebilir: "kullanıcı sepete ürün ekledi", "sipariş oluşturma talebi gönderildi". Bir hata oluştuğunda, son 30 saniyedeki tüm breadcrumbs olaya eklenir. Bugsnag ayrıca tüm oturum hatalarıyla birlikte iletilen isteğe bağlı bir veri sözlüğü olan "state"i de destekler.
Bugsnag.leaveBreadcrumb(
message = "Order created",
metadata = mapOf(
"order_id" to "ORD-12345",
"total" to "49.99"
),
type = BreadcrumbType.STATE
)
Bugsnag.setExtraData(
"user_tier", "premium"
)
Kod, sipariş oluşturma hakkında bir breadcrumb bırakır ve kullanıcının planı hakkında ek bilgi ayarlar. Bu oturumda bir hata oluştuğunda, Bugsnag sipariş numarası ve kullanıcı türüyle bağlamı ekler.
Bugsnag oturumları otomatik olarak sayar — her uygulama başlatma yeni bir oturum olarak kabul edilir. Hatalı oturumların toplam oturumlara oranı Stability Score'u oluşturur. Oturum izleme fiyatlandırmayı etkiler: Bugsnag, hata hacmine göre değil, izlenen oturum sayısına göre lisanslanır ve bu onu Sentry ve rakiplerinin olay başına fiyatlandırma modellerinden ayırır.
Release tracking, her hatayı belirli bir uygulama sürümüne ve depo commit'ine bağlayan bir mekanizmadır. Bugsnag, Info.plist'ten (iOS) veya build.gradle'dan (Android) sürümü otomatik olarak algılar ve panoda sürüme göre hata sayılarını görüntüler. Bu, bir sorunun en son sürüm tarafından getirilip getirilmediğini hemen görmeyi sağlar.
2.4.1 sürümünü dağıttıktan sonra kritik hata sayısı 2.4.0'a kıyasla 3 kat arttıysa, Bugsnag bu sürümü "kararsız" olarak işaretler ve bir uyarı gönderir. CI/CD entegrasyonu, Stability Score eşiğin altına düşerse bir yapının staging veya production'a yükseltilmesini engellemeyi sağlar. Jenkins, GitHub Actions ve GitLab CI için eklentiler, kararlılık metriklerini pipeline'a iletir.
Bugsnag Stability Benchmark (2024)'e göre, mobil uygulamalardaki hataların %68'i yeni sürümler tarafından getirilir, uzun süredir var olan hatalar değildir. Release tracking, dağıtımdan sonra gerileme tespit süresini saatlerden dakikalara indirir.
Hata izleme pazarında üç ana oyuncu vardır: Bugsnag, Sentry ve Firebase Crashlytics. Bugsnag, oturum tabanlı fiyatlandırma modeli (olay bazlı değil), Stability Score'a odaklanması ve otomatik önem derecesi önceliklendirmesiyle öne çıkar. Sentry, dağıtılmış izleme ile daha derin performans izleme sunar ve açık kaynaktır. Crashlytics, Firebase ekosistemine entegre, temel özelliklere sahip ücretsiz bir çözümdür.
| Özellik | Bugsnag | Sentry | Crashlytics |
|---|---|---|---|
| Fiyat (başlangıç) | 5.000 oturuma kadar ücretsiz | 5.000 olaya kadar ücretsiz | Ücretsiz |
| Performans izleme | Sınırlı | Dağıtılmış izleme ile tam | Hayır |
| Flutter SDK | Evet | Evet | Sınırlı |
| Kendi barındırma | Hayır | Evet (açık kaynak) | Hayır |
| Stability Score | Evet (temel metrik) | Hayır | Hayır |
Araçlar arasındaki seçim önceliklere bağlıdır: temel metrik üretimde uygulama kararlılığıysa, Bugsnag en sezgisel metriği sağlar. Dağıtılmış izleme ile derin performans analizi gerekiyorsa — Sentry. Google ekosistemi entegrasyonuyla ücretsiz temel izleme için — Crashlytics.
Sıkça Sorulan Sorular
Algoritma üç faktörü dikkate alır: istisna türü (çökme veya handled), etkilenen kullanıcı sayısı ve senaryo bağlamı. Critical önem, hata ana ekranda veya ödeme akışında meydana gelmişse ve kullanıcıların %1'inden fazlasını etkilemişse atanır. Geliştirici, API veya SDK yapılandırması aracılığıyla önem derecesini manuel olarak geçersiz kılabilir.
Evet, Bugsnag React Native (yeni mimari desteğiyle) ve Flutter (Dart 3.x uyumlu) için SDK sağlar. Her iki SDK da navigasyon, ağ istekleri ve uygulama durumu için otomatik breadcrumbs toplamanın yanı sıra iş mantığı için özel enstrümantasyonu destekler.
Evet, Bugsnag Jira ile çift yönlü entegrasyon sağlar: yeni bir hata otomatik olarak Jira'da bir görev oluşturabilir ve Jira'da bir görevi kapatmak, hatayı Bugsnag'da "çözüldü" durumuna getirir. Jira Cloud ve Jira Server (Jira Connect aracılığıyla) desteklenir.
Bugsnag SDK, bir sürüm yapısında APK/IPA boyutuna yaklaşık 1,5 MB ekler. Bu, Sentry'den (yaklaşık 2 MB) daha az ancak Firebase Crashlytics'ten (yaklaşık 0,8 MB) daha fazladır. Derlemeyi hızlandırmak için SDK'nın hata ayıklama yapılarından çıkarılması ve yalnızca test ve sürüm yapılandırmaları için saklanması önerilir.
Evet, Bugsnag backend dillerini destekler: Ruby, Python, Node.js, Java, .NET, Go, PHP. Backend hataları, mobil hatalarla aynı panoda hizmete göre gruplanmış olarak görüntülenir. Bu, uçtan uca kararlılığı izlemeyi sağlar: bir API düşerse, geliştirici sorunun istemci tarafında mı yoksa sunucu tarafında mı olduğunu görebilir.
Ö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