Bugsnag: bu nədir, səhvlərin izlənməsi və məlumatların toplanması

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

Bugsnag, istehsal mühitində səhvləri tam diaqnostik kontekstlə avtomatik aşkarlayan, qruplaşdıran və prioritetləşdirən tətbiq səhvləri və stabilik monitorinq platformasıdır. Bugsnag Documentation, 2025-ə görə, Bugsnag aylıq 6 milyard hadisəni emal edir, o cümlədən Airbnb, Lyft, Slack və PagerDuty daxil olmaqla 7 000-dən çox müştəriyə xidmət göstərir.

Əsas məqamlar

  • Bugsnag — səhvlərin avtomatik qruplaşdırılması, severity üzrə prioritetləşdirmə və CI/CD inteqrasiyası ilə error monitoring platforması.
  • Stability Score — tətbiqin ümumi stabilik faizini göstərən qəzasız sessiyaların payı metrikası.
  • Severity-based triage — komandanın əsas məsələlərə diqqət yetirməsi üçün səhvlərin critical, warning və info-ya avtomatik bölünməsi.
  • Breadcrumbs — səhvdən əvvəlki hadisələr ardıcıllığının qeydi, developer tərəfindən fərdi atributların dəstəyi ilə.
  • Release tracking — səhvlərin tətbiqin konkret versiyası ilə əlaqələndirilməsi və buraxılışdan sonra kraş sayı artdıqda avtomatik xəbərdarlıq.

İnkişafda Bugsnag nədir

Bugsnag — 2013-cü ildə əsası qoyulmuş və 2019-cu ildə SmartBear tərəfindən satın alınmış tətbiq stabilik monitorinq platforması. Bugsnag-ın rəqiblərdən əsas fərqi — sadəcə səhvlərin sayına deyil, məhsulun əsas metrikası kimi stabilikə diqqət yetirməsidir. Platforma iOS, Android, React Native, Flutter, veb və backend xidmətləri üçün vahid panel təqdim edir.

Bugsnag-də hər bir səhv kontekst əsasında severity (critical, warning, info) avtomatik qiymətləndirməsi alır: tətbiq kraşı baş veribmi, ödəniş funksiyası təsirlənibmi, səhv bir çox istifadəçi üçün təkrarlanırmı. Komanda sadəcə bugların siyahısını deyil, biznesə təsir göstəricisi ilə prioritetləşdirilmiş backlog görür.

SmartBear (2024) məlumatına görə, Bugsnag istifadə edən komandalar dublikatların avtomatik qruplaşdırılması və hər bir hadisənin tam konteksti sayəsində insidentin həll müddətini orta hesabla 40% qısaldır. Platforma səhvlər üzrə avtomatik tapşırıq yaratmaq üçün Slack, PagerDuty, Jira, GitHub və GitLab ilə inteqrasiya olunur.

Stability Score və avtomatik prioritetləşdirmə

Stability Score — səhvsiz başa çatan sessiyaların faizini göstərən Bugsnag-ın əsas metrikası. Dəyər dövr ərzində kraşsız sessiyaların sayının ümumi sessiyaların sayına nisbəti kimi hesablanır. 99.9% bal o deməkdir ki, hər 1000 sessiyadan 1-də səhv var.

Stability Score həddləri CI/CD ilə inteqrasiya olunub: yeni versiya yerləşdirildikdən sonra bal müəyyən edilmiş həddən aşağı düşərsə (məsələn, 99.5%), Bugsnag avtomatik olaraq buraxılışı bloklayır və ya Slack-ə kritik alert göndərir. Release health dashboard hər bir tətbiq versiyası üzrə bal dinamikasını göstərir, konkret dəyişikliyin stabilikə təsirini izləməyə imkan verir.

Severity-based triage

Bugsnag səhvlərin üç severity səviyyəsi üzrə avtomatik təsnifat alqoritmindən istifadə edir. Critical — tətbiq kraşları, ödəniş ssenarilərində səhvlər, istifadəçilərin 5%-dən çoxuna təsir edən. Warning — ölümcül olmayan səhvlər (handled exceptions), ayrı-ayrı funksiyalara təsir edən. Info — loglar, aşağı prioritetli xəbərdarlıqlar. Bu yanaşma, yüzlərlə bildirişin həqiqətən kritik problemlərə diqqət yetirməyə mane olduğu "alert yorğunluğunun" qarşısını alır.

SeverityNümunəFəaliyyət
CriticalTətbiqə daxil olarkən kraşDərhal xəbərdarlıq
WarningAvatar yükləmə xətasıNövbəti sprint üçün Jira tapşırığı
InfoQR skan edərkən time-outBildirişsiz loglama

Mobil platformalar üçün Bugsnag SDK-nın qoşulması

Bugsnag SDK-nın quraşdırılması 5 dəqiqə çəkir: asılılığın əlavə edilməsi və layihənin API açarı ilə inisializasiya. Bugsnag Android SDK Kotlin və Java-nı dəstəkləyir, Java istisnalarını, ANR və Native (C/C++) səhvlərini siqnallar vasitəsilə avtomatik tutur.

Android-də quraşdırma

SDK Gradle vasitəsilə qoşulur və Application.onCreate-də inisializasiya olunur. Bugsnag avtomatik olaraq cihaz haqqında məlumat toplayır: model, OS versiyası, boş yaddaş, batareya doldurma səviyyəsi. Auto-notify defolt olaraq aktivdir və bütün işlənməmiş istisnaları Bugsnag serverinə göndərir.

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 Bugsnag SDK-nı avtomatik sessiya izləmə və maksimum 5 saniyə başlanma vaxtı ilə inisializasiya edir. Tətbiq bu müddətdə başlamazsa, Bugsnag "slow launch" hadisəsini xəbərdarlıq kimi qeyd edəcək.

iOS-da quraşdırma

Bugsnag iOS SDK Swift və Objective-C-ni dəstəkləyir, NSException, Mach istisnalarını (SIGABRT, SIGSEGV) və əməliyyat sistemi siqnallarını tutur. SDK iOS 11+ və SwiftUI ilə uyğundur, bütün UI hadisələri üçün avtomatik breadcrumbs yaradır: kliklər, keçidlər, jestlər.

swift
import Bugsnag

class AppDelegate: UIResponder, UIApplicationDelegate {
    override func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions options: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        Bugsnag.start(withApiKey: "YOUR_API_KEY")
        // əlavə konfiqurasiya
        return true
    }
}

Swift-də kod Bugsnag-ı minimum konfiqurasiya ilə işə salır. Bütün işlənməmiş istisnalar və kraşlar avtomatik olaraq cihazın tam konteksti və çağırış yığını ilə Bugsnag panelinə göndərilir.

Breadcrumbs Bugsnag-də səhvdən əvvəlki hadisələrin strukturlaşdırılmış jurnalıdır. Hər bir breadcrumb vaxt damğası, tip (navigation, request, state, error, manual) və ixtiyari metadata ehtiva edir. Bugsnag iOS və Android-də UI hadisələri, tətbiq vəziyyətinin dəyişmələri (background, foreground) və şəbəkə sorğuları üçün avtomatik breadcrumbs qeyd edir.

Developer biznes məntiqi üçün fərdi breadcrumbs əlavə edə bilər: "istifadəçi məhsulu səbətə əlavə etdi", "sifariş yaratma sorğusu göndərildi". Səhv baş verdikdə son 30 saniyədəki bütün breadcrumbs hadisəyə əlavə olunur. Bugsnag həmçinin "state" — sessiyanın bütün səhvləri ilə ötürülən ixtiyari məlumat lüğətini dəstəkləyir.

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 sifarişin yaradılması haqqında breadcrumb buraxır və istifadəçinin tarifi haqqında əlavə məlumat təyin edir. Bu sessiyada səhv baş verərsə, Bugsnag ona sifariş nömrəsi və istifadəçi tipi ilə kontekst əlavə edəcək.

Session tracking

Bugsnag avtomatik olaraq sessiyaların sayını hesablayır — hər bir tətbiq işə salınması yeni sessiya sayılır. Səhvləri olan sessiyaların ümumi sessiyalara nisbəti Stability Score-u təşkil edir. Session tracking tarifləşdirmədə nəzərə alınır: Bugsnag səhvlərin həcminə görə deyil, izlənilən sessiyaların sayına görə lisenziyalaşdırılır, bu da onu Sentry və rəqiblərin hadisə başına ödəniş modellərindən fərqləndirir.

Release tracking və CI/CD inteqrasiyası

Release tracking — hər bir səhvi tətbiqin konkret versiyası və depodakı commit ilə əlaqələndirmə mexanizmi. Bugsnag versiyanı Info.plist (iOS) və ya build.gradle (Android) faylından avtomatik müəyyənləşdirir və paneldə versiyalar üzrə səhvlərin sayını göstərir. Bu, problemin son buraxılışda gətirilib-gətirilmədiyini dərhal görməyə imkan verir.

Əgər 2.4.1 versiyası yerləşdirildikdən sonra kritik səhvlərin sayı 2.4.0 ilə müqayisədə 3 dəfə artarsa, Bugsnag bu versiyanı "qeyri-sabit" olaraq qeyd edir və alert göndərir. CI/CD inteqrasiyası Stability Score həddən aşağı düşərsə, kompilyasiyanın staging və ya production-a promosyonunu bloklamağa imkan verir. Jenkins, GitHub Actions və GitLab CI üçün plaginlər stabilik metrikalarını pipeline-a ötürür.

Bugsnag Stability Benchmark (2024) məlumatına görə, mobil tətbiqlərdə səhvlərin 68%-i yeni versiyalarla daxil edilir, uzun müddətdir mövcud olan buglar deyil. Release tracking reqressiyanın aşkarlanma müddətini yerləşdirmədən sonra saatlardan bir neçə dəqiqəyə qədər qısaldır.

Bugsnag-ın Sentry və Crashlytics ilə müqayisəsi

Error monitoring bazarında üç əsas oyunçu var: Bugsnag, Sentry və Firebase Crashlytics. Bugsnag sessiyalara əsaslanan qiymət modeli (hadisələrə deyil), Stability Score-a diqqət və avtomatik severity prioritetləşdirməsi ilə seçilir. Sentry distributed tracing ilə daha dərin performance monitoring və açıq mənbə kodu təklif edir. Crashlytics — Firebase ekosisteminə inteqrasiya olunmuş əsas funksiyalarla pulsuz həll.

XüsusiyyətBugsnagSentryCrashlytics
Qiymət (başlanğıc)5 000 sessiyaya qədər pulsuz5 000 hadisəyə qədər pulsuzPulsuz
Performance monitoringMəhdudDistributed tracing ilə tamYox
Flutter üçün SDKBəliBəliMəhdud
Self-hostedXeyrBəli (open source)Xeyr
Stability ScoreBəli (əsas metrika)XeyrXeyr

Alətlər arasında seçim prioritetlərdən asılıdır: əsas göstərici istehsalda tətbiq stabilidirsə, Bugsnag ən aydın metrikanı verir. Distributed tracing ilə dərin performans analizi lazımdırsa — Sentry. Google ekosistemi ilə pulsuz əsas monitorinq üçün — Crashlytics.

Tez-tez verilən suallar

Bugsnag səhvin severity-ni necə müəyyənləşdirir?

Alqoritm üç amili nəzərə alır: istisna tipi (kraş və ya handled), təsirlənmiş istifadəçilərin sayı və ssenari konteksti. Critical severity səhv əsas ekranda və ya ödəniş axınında baş verərsə və istifadəçilərin 1%-dən çoxuna təsir edərsə təyin edilir. Developer severity-ni API və ya SDK konfiqurasiyası vasitəsilə əl ilə dəyişə bilər.

Bugsnag React Native və Flutter-i dəstəkləyir?

Bəli, Bugsnag React Native (new architecture dəstəyi ilə) və Flutter (Dart 3.x ilə uyğunluq) üçün SDK təqdim edir. Hər iki SDK naviqasiya, şəbəkə sorğuları və tətbiq vəziyyəti üçün avtomatik breadcrumbs toplanmasını, həmçinin biznes məntiqi üçün fərdi instrumentasiyanı dəstəkləyir.

Bugsnag-ı Jira ilə inteqrasiya etmək mümkündürmü?

Bəli, Bugsnag Jira ilə ikitərəfli inteqrasiya təmin edir: yeni səhv avtomatik olaraq Jira-da tapşırıq yarada bilər, Jira-da tapşırığın bağlanması isə səhvin statusunu Bugsnag-də "resolved" olaraq dəyişir. Jira Cloud və Jira Server (Jira Connect vasitəsilə) dəstəklənir.

Bugsnag tətbiqin ölçüsünə necə təsir edir?

Bugsnag SDK release quruluşunda APK/IPA ölçüsünə təxminən 1.5 MB əlavə edir. Bu, Sentry-dən (təxminən 2 MB) az, lakin Firebase Crashlytics-dən (təxminən 0.8 MB) çoxdur. Kompilyasiyanı sürətləndirmək üçün SDK-nı debug quruluşlarından silmək, yalnız test və release konfiqurasiyaları üçün saxlamaq tövsiyə olunur.

Bugsnag backend tətbiqləri üçün istifadə edilə bilərmi?

Bəli, Bugsnag backend dillərini dəstəkləyir: Ruby, Python, Node.js, Java, .NET, Go, PHP. Backend səhvləri mobil səhvlərlə eyni paneldə xidmətlər üzrə qruplaşdırılaraq göstərilir. Bu, kompleks stabilik izləməyə imkan verir: API düşərsə, developer problemin müştəri və ya serverlə əlaqəli olduğunu görür.

Nəticə

  • Bugsnag — stabilik metrikasına və səhvlərin severity üzrə avtomatik prioritetləşdirilməsinə vurğu edən error monitoring platforması.
  • Stability Score — səhvsiz sessiyaların faizi, buraxılış keyfiyyətini qiymətləndirmək və CI/CD geytkipinqi üçün əsas metrika.
  • Severity-based triage səhvləri avtomatik olaraq critical, warning və info-ya bölərək alert yorğunluğunun qarşısını alır.
  • Release tracking hər bir səhvi tətbiq versiyası və commit ilə əlaqələndirərək reqressiyaların sürətli aşkarlanmasını təmin edir.
  • SDK iOS, Android, React Native, Flutter, həmçinin vahid paneldə 9 backend dilini dəstəkləyir.
  • Qiymət modeli sessiyalara əsaslanır, bu Bugsnag-ı rəqiblərdən fərqləndirir və büdcə baxımından proqnozlaşdırıla bilən edir.
  • Bugsnag tətbiq stabilinin əsas biznes göstəricisi olduğu və səhvlərin avtomatik rejimdə prioritetləşdirilməsi tələb olunan məhsul komandaları üçün tövsiyə olunur.

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