Bugsnag: шта је то, праћење грешака и прикупљање података

Аутор: IT Sectr Објављено: 2026-05-29 Време читања: 8 мин

Bugsnag је платформа за мониторинг грешака и стабилности апликација која аутоматски открива, групише и приоритизује багове у production окружењу са комплетним дијагностичким контекстом. Према Bugsnag Documentation, 2025, Bugsnag обрађује 6 милијарди догађаја месечно за више од 7 000 клијената, укључујући Airbnb, Lyft, Slack и PagerDuty.

Главне тачке

  • Bugsnag — платформа error monitoring са аутоматским груписањем грешака, приоритизацијом по severity и интеграцијом са CI/CD.
  • Stability Score — метрика удела сесија без грешака која приказује општу стабилност апликације у процентима.
  • Severity-based triage — аутоматско раздвајање грешака на critical, warning и info ради фокусирања тима на битне ствари.
  • Breadcrumbs — запис низа догађаја пре грешке са подршком за прилагођене атрибуте од програмера.
  • Release tracking — повезивање грешака са одређеном верзијом апликације и аутоматско обавештење при порасту броја крашева након издања.

Шта је Bugsnag у развоју

Bugsnag је платформа за мониторинг стабилности апликација, основана 2013. године и купљена од стране SmartBear 2019. године. Главна разлика Bugsnag-а од конкурената је фокус на стабилности као кључној метрици производа, а не само на броју грешака. Платформа пружа јединствену контролну таблу за iOS, Android, React Native, Flutter, веб и backend сервисе.

Свака грешка у Bugsnag-у добија аутоматску процену severity (critical, warning, info) на основу контекста: да ли се догодио краш апликације, да ли је погођена функција плаћања, да ли се грешка понавља за многе кориснике. Тим види не само листу багова, већ приоритизовани backlog са утицајем на посао.

Према SmartBear (2024), тимови који користе Bugsnag смањују просечно време решавања инцидента за 40% захваљујући аутоматском груписању дупликата и потпуном контексту сваког догађаја. Платформа се интегрише са Slack, PagerDuty, Jira, GitHub и GitLab за аутоматско креирање задатака везаних за грешке.

Stability Score и аутоматска приоритизација

Stability Score — кључна метрика Bugsnag-а која показује проценат сесија завршених без грешака. Вредност се израчунава као однос броја сесија без крашева и укупног броја сесија у периоду. Резултат од 99.9% значи да 1 од 1000 сесија садржи грешку.

Праг вредности Stability Score-а су интегрисани са CI/CD: ако након примене нове верзије резултат падне испод постављеног прага (нпр. 99.5%), Bugsnag аутоматски блокира издање или шаље критично упозорење на Slack. Release health dashboard приказује динамику резултата за сваку верзију апликације, омогућавајући праћење утицаја одређене промене на стабилност.

Severity-based triage

Bugsnag користи алгоритам аутоматске класификације грешака на три нивоа severity. Critical — крашеви апликације, грешке у сценаријима плаћања које погађају више од 5% корисника. Warning — нефаталне грешке (handled exceptions) које утичу на појединачне функције. Info — логови, упозорења ниског приоритета. Овај приступ спречава „замор од упозорења", када стотине обавештења онемогућавају фокусирање на стварно критичне проблеме.

SeverityПримерАкција
CriticalКраш при уласку у апликацијуТренутно обавештење
WarningГрешка при учитавању аватараЗадатак у Jira за следећи спринт
InfoТајмаут при скенирању QR-аЛоговање без обавештења

Повезивање Bugsnag SDK-а за мобилне платформе

Инсталација Bugsnag SDK-а траје 5 минута: додавање зависности и иницијализација са API кључем пројекта. Bugsnag Android SDK подржава Kotlin и Java, аутоматски пресреће Java изузетке, ANR и Native (C/C++) грешке преко сигнала.

Подешавање на Android-у

SDK се повезује преко Gradle-а и иницијализује се у Application.onCreate. Bugsnag аутоматски прикупља информације о уређају: модел, верзија ОС-а, слободна меморија, ниво батерије. Auto-notify је укључен подразумевано и шаље све необрађене изузетке на Bugsnag сервер.

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)
    }
}

Код иницијализује Bugsnag SDK са аутоматским праћењем сесија и максималним временом покретања од 5 секунди. Ако се апликација не покрене за то време, Bugsnag ће забележити догађај „slow launch" као упозорење.

Подешавање на iOS-у

Bugsnag iOS SDK подржава Swift и Objective-C, пресреће NSException, Mach изузетке (SIGABRT, SIGSEGV) и сигнале оперативног система. SDK је компатибилан са iOS 11+ и SwiftUI, аутоматски креира breadcrumbs за све UI догађаје: кликове, навигацију, гестове.

swift
import Bugsnag

class AppDelegate: UIResponder, UIApplicationDelegate {
    override func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions options: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        Bugsnag.start(withApiKey: "YOUR_API_KEY")
        // додатна конфигурација
        return true
    }
}

Код у Swift-у покреће Bugsnag са минималном конфигурацијом. Сви необрађени изузеци и крашеви се аутоматски шаљу на Bugsnag контролну таблу са комплетним контекстом уређаја и стеком позива.

Breadcrumbs у Bugsnag-у су структурирани дневник догађаја који претходе грешци. Сваки breadcrumbs садржи временску ознаку, тип (navigation, request, state, error, manual) и произвољне метаподатке. Bugsnag аутоматски бележи breadcrumbs за UI догађаје у iOS и Android, промене стања апликације (background, foreground) и мрежне захтеве.

Програмер може да додаје прилагођене breadcrumbs за пословну логику: „корисник је додао производ у корпу", „захтев за креирање поруџбине је послат". При настанку грешке сви breadcrumbs из последњих 30 секунди се прилажу догађају. Bugsnag такође подржава „state" — произвољни речник података који се преноси са свим грешкама сесије.

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"
)

Код оставља breadcrumb о креирању поруџбине и поставља додатне информације о тарифи корисника. При настанку грешке у овој сесији, Bugsnag ће јој приложити контекст са бројем поруџбине и типом корисника.

Session tracking

Bugsnag аутоматски броји број сесија — свако покретање апликације се рачуна као нова сесија. Однос сесија са грешкама према укупном броју сесија формира Stability Score. Session tracking се узима у обзир у тарификацији: Bugsnag се лиценцира по броју праћених сесија, а не по обиму грешака, што га разликује од модела плаћања по догађају код Sentry-а и конкурената.

Release tracking и интеграција са CI/CD

Release tracking — механизам повезивања сваке грешке са одређеном верзијом апликације и комитом у репозиторијуму. Bugsnag аутоматски одређује верзију из Info.plist (iOS) или build.gradle (Android) и приказује на контролној табли број грешака по верзијама. Ово омогућава да се одмах види да ли је проблем унет последњим издањем.

Ако је након примене верзије 2.4.1 број критичних грешака порастао 3 пута у односу на 2.4.0, Bugsnag означава ову верзију као „нестабилну" и шаље упозорење. CI/CD интеграција омогућава блокирање промоције билда на staging или production ако је Stability Score пао испод прага. Додаци за Jenkins, GitHub Actions и GitLab CI преносе метрике стабилности у pipeline.

Према Bugsnag Stability Benchmark (2024), 68% грешака у мобилним апликацијама уносе нове верзије, а не дуготрајни багови. Release tracking смањује време откривања регресије са сати на неколико минута након примене.

Поређење Bugsnag-а са Sentry и Crashlytics

На тржишту error monitoring-а постоје три главна играча: Bugsnag, Sentry и Firebase Crashlytics. Bugsnag се истиче моделом цена заснованим на сесијама (а не догађајима), фокусом на Stability Score и аутоматском приоритизацијом severity. Sentry нуди дубљи performance monitoring са distributed tracing и отвореним кодом. Crashlytics — бесплатно решење са основним функцијама, интегрисано у Firebase екосистем.

КарактеристикаBugsnagSentryCrashlytics
Цена (старт)Бесплатно до 5 000 сесијаБесплатно до 5 000 догађајаБесплатно
Performance monitoringОграниченПун са distributed tracingНе
SDK за FlutterДаДаОграничено
Self-hostedНеДа (open source)Не
Stability ScoreДа (кључна метрика)НеНе

Избор између алата зависи од приоритета: ако је кључни показатељ стабилност апликације у production-у, Bugsnag даје најјаснију метрику. Ако је потребна дубља анализа перформанси са distributed tracing — Sentry. За бесплатно основно праћење са интеграцијом у Google екосистем — Crashlytics.

Често постављана питања

Како Bugsnag одређује severity грешке?

Алгоритам узима у обзир три фактора: тип изузетка (краш или handled), број погођених корисника и контекст сценарија. Critical severity се додељује ако се грешка догодила на главном екрану или у току плаћања и погодила више од 1% корисника. Програмер може ручно да промени severity путем API-ја или конфигурације SDK-а.

Да ли Bugsnag подржава React Native и Flutter?

Да, Bugsnag пружа SDK за React Native (са подршком за new architecture) и Flutter (компатибилност са Dart 3.x). Оба SDK-а подржавају аутоматско прикупљање breadcrumbs-а за навигацију, мрежне захтеве и стање апликације, као и прилагођену инструментацију за пословну логику.

Да ли се Bugsnag може интегрисати са Jira?

Да, Bugsnag пружа двоемерну интеграцију са Jira: нова грешка може аутоматски да креира задатак у Jira, а затварање задатка у Jira мења статус грешке у „resolved" у Bugsnag-у. Подржани су Jira Cloud и Jira Server (преко Jira Connect).

Како Bugsnag утиче на величину апликације?

Bugsnag SDK додаје приближно 1.5 MB величини APK/IPA у release билду. То је мање од Sentry-а (око 2 MB), али више од Firebase Crashlytics-а (око 0.8 MB). Препоручује се уклањање SDK-а из debug билдова ради убрзавања компилације, остављајући га само за тест и release конфигурације.

Да ли се Bugsnag може користити за backend апликације?

Да, Bugsnag подржава backend језике: Ruby, Python, Node.js, Java, .NET, Go, PHP. Backend грешке се приказују на истој контролној табли као и мобилне, са груписањем по сервисима. Ово омогућава праћење свеобухватне стабилности: ако је API пао, програмер види да ли је проблем везан за клијента или сервер.

Резиме

  • Bugsnag — платформа error monitoring са нагласком на метрици стабилности и аутоматској приоритизацији грешака по severity.
  • Stability Score — проценат сесија без грешака, кључна метрика за процену квалитета издања и CI/CD гараже.
  • Severity-based triage аутоматски дели грешке на critical, warning и info, спречавајући замор од упозорења.
  • Release tracking повезује сваку грешку са верзијом апликације и комитом за брзо откривање регресија.
  • SDK подржава iOS, Android, React Native, Flutter, као и 9 backend језика у једној контролној табли.
  • Модел цена заснован на сесијама разликује Bugsnag од конкурената и чини га предвидљивим по буџету.
  • Bugsnag се препоручује за производне тимове где је стабилност апликације кључни пословни показатељ и захтева се приоритизација грешака у аутоматском режиму.

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође