Bugsnag: Nedir, Hata Takibi ve Veri Toplama

Yazar: IT Sectr Yayınlanma: 2026-05-29 Okuma süresi: 8 dk

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, otomatik hata gruplama, önem derecesine göre önceliklendirme ve CI/CD entegrasyonu sunan bir hata izleme platformudur.
  • Stability Score, uygulamanın genel kararlılığını yüzde olarak yansıtan, hatasız oturumların oranını gösteren bir metriktir.
  • Severity-based triage, ekibin en önemli konulara odaklanması için hataları otomatik olarak critical, warning ve info olarak ayırır.
  • Breadcrumbs, geliştiricinin özel niteliklerini destekleyerek hata öncesindeki olay sırasını kaydeder.
  • Release tracking, hataları belirli bir uygulama sürümüne bağlar ve bir sürümden sonra çökme oranı arttığında otomatik olarak uyarır.

Geliştirmede Bugsnag Nedir

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 ve Otomatik Önceliklendirme

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.

Severity-based triage

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ÖrnekEylem
CriticalUygulama başlatılırken çökmeAnında bildirim
WarningAvatar yükleme hatasıBir sonraki sprint için Jira görevi
InfoQR tarama zaman aşımıBildirimsiz günlüğe kaydetme

Mobil Platformlar için Bugsnag SDK Entegrasyonu

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.

Android'de Kurulum

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.

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

iOS'ta Kurulum

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.

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

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

Oturum İzleme

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 ve CI/CD Entegrasyonu

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.

Bugsnag vs Sentry ve Crashlytics Karşılaştırması

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.

ÖzellikBugsnagSentryCrashlytics
Fiyat (başlangıç)5.000 oturuma kadar ücretsiz5.000 olaya kadar ücretsizÜcretsiz
Performans izlemeSınırlıDağıtılmış izleme ile tamHayır
Flutter SDKEvetEvetSınırlı
Kendi barındırmaHayırEvet (açık kaynak)Hayır
Stability ScoreEvet (temel metrik)HayırHayı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

Bugsnag bir hatanın önem derecesini nasıl belirler?

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.

Bugsnag React Native ve Flutter'ı destekliyor mu?

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.

Bugsnag Jira ile entegre edilebilir mi?

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 uygulama boyutunu nasıl etkiler?

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.

Bugsnag backend uygulamaları için kullanılabilir mi?

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

  • Bugsnag, kararlılık metriklerine ve önem derecesine göre otomatik hata önceliklendirmeye odaklanan bir hata izleme platformudur.
  • Stability Score — hatasız oturumların yüzdesi, sürüm kalitesi değerlendirmesi ve CI/CD geçit kontrolü için temel metrik.
  • Severity-based triage hataları otomatik olarak critical, warning ve info'ya ayırarak uyarı yorgunluğunu önler.
  • Release tracking, hızlı gerileme tespiti için her hatayı uygulama sürümüne ve commit'e bağlar.
  • SDK, birleşik bir panoda iOS, Android, React Native, Flutter ve 9 backend dilini destekler.
  • Oturum tabanlı fiyatlandırma modeli, Bugsnag'ı rakiplerinden ayırır ve bütçe tahmin edilebilirliği sağlar.
  • Bugsnag, uygulama kararlılığının temel bir iş metriği olduğu ve otomatik hata önceliklendirmesinin gerektiği ürün ekipleri için önerilir.

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.

Projeyi tartış

Ayrıca okuyun