Bugsnag — це платформа для моніторингу помилок і стабільності застосунків, яка автоматично виявляє, групує та пріоритизує баги в production-середовищі з повним діагностичним контекстом. За даними Bugsnag Documentation, 2025, Bugsnag обробляє 6 мільярдів подій щомісяця для понад 7 000 клієнтів, включаючи Airbnb, Lyft, Slack і PagerDuty.
Головне
Bugsnag — це платформа моніторингу стабільності застосунків, заснована в 2013 році та придбана SmartBear у 2019 році. Основна відмінність Bugsnag від конкурентів — фокус на стабільності як ключовій метриці продукту, а не просто на кількості помилок. Платформа надає єдину панель керування для iOS, Android, React Native, Flutter, вебу та бекенд-сервісів.
Кожна помилка в Bugsnag отримує автоматичну оцінку severity (critical, warning, info) на основі контексту: чи стався краш застосунку, чи зачеплено платіжну функцію, чи повторюється помилка для багатьох користувачів. Команда бачить не просто список багів, а пріоритизований беклог із зазначенням впливу на бізнес.
За даними SmartBear (2024), команди, які використовують Bugsnag, скорочують середній час вирішення інциденту на 40% завдяки автоматичному групуванню дублікатів і повному контексту кожної події. Платформа інтегрується з Slack, PagerDuty, Jira, GitHub і GitLab для автоматичного створення завдань за помилками.
Stability Score — ключова метрика Bugsnag, що показує відсоток сесій, які завершилися без помилок. Значення розраховується як відношення кількості сесій без крашів до загальної кількості сесій за період. Score у 99.9% означає, що 1 з 1 000 сесій містить помилку.
Порогові значення Stability Score інтегровані з CI/CD: якщо після деплою нової версії score падає нижче встановленого порогу (наприклад, 99.5%), Bugsnag автоматично блокує реліз або надсилає критичний алерт у Slack. Release health dashboard показує динаміку score за кожною версією застосунку, дозволяючи відстежити вплив конкретної зміни на стабільність.
Bugsnag використовує алгоритм автоматичної класифікації помилок за трьома рівнями severity. Critical — краші застосунку, помилки в платіжних сценаріях, що зачіпають понад 5% користувачів. Warning — нефатальні помилки (handled exceptions), що впливають на окремі функції. Info — логи, низькопріоритетні попередження. Такий підхід запобігає «втомі від алертів», коли сотні сповіщень не дають зосередитися на дійсно критичних проблемах.
| Severity | Приклад | Дія |
|---|---|---|
| Critical | Краш при вході в застосунок | Негайне сповіщення |
| Warning | Помилка завантаження аватара | Завдання в Jira на наступний спринт |
| Info | Таймаут при скануванні QR | Логування без сповіщення |
Встановлення Bugsnag SDK виконується за 5 хвилин: додавання залежності та ініціалізація з API-ключем проекту. Bugsnag Android SDK підтримує Kotlin і Java, автоматично перехоплює Java-винятки, ANR і помилки Native (C/C++) через сигнали.
SDK підключається через Gradle та ініціалізується в Application.onCreate. Bugsnag автоматично збирає інформацію про пристрій: модель, версія ОС, вільна пам'ять, рівень заряду батареї. Auto-notify увімкнено за замовчуванням і надсилає всі необроблені винятки на сервер Bugsnag.
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» як попередження.
Bugsnag iOS SDK підтримує Swift і Objective-C, перехоплює NSException, Mach-винятки (SIGABRT, SIGSEGV) та сигнали операційної системи. SDK сумісний з iOS 11+ і SwiftUI, автоматично створює breadcrumbs для всіх UI-подій: натискання, переходи, жести.
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 — це структурований лог подій, що передують помилці. Кожен breadcrumb містить часову мітку, тип (navigation, request, state, error, manual) та довільні метадані. Bugsnag автоматично записує breadcrumbs для UI-подій в iOS і Android, змін стану застосунку (background, foreground) та мережевих запитів.
Розробник може додавати кастомні breadcrumbs для бізнес-логіки: «користувач додав товар до кошика», «запит на створення замовлення надіслано». При виникненні помилки всі breadcrumbs за останні 30 секунд прикріплюються до події. Bugsnag також підтримує «state» — довільний словник даних, який передається з усіма помилками сесії.
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 прикріпить до неї контекст із номером замовлення та типом користувача.
Bugsnag автоматично підраховує кількість сесій — кожен запуск застосунку вважається новою сесією. Співвідношення сесій з помилками до загальної кількості сесій формує Stability Score. Session tracking враховується в тарифікації: Bugsnag ліцензується за кількістю відстежуваних сесій, а не за обсягом помилок, що відрізняє його від моделей оплати за подію у Sentry та конкурентів.
Release tracking — механізм зв'язування кожної помилки з конкретною версією застосунку та комітом у репозиторії. Bugsnag автоматично визначає версію з Info.plist (iOS) або build.gradle (Android) і відображає в дашборді кількість помилок за версіями. Це дозволяє одразу побачити, чи була проблема внесена останнім релізом.
Якщо після деплою версії 2.4.1 кількість критичних помилок зросла в 3 рази порівняно з 2.4.0, Bugsnag позначає цю версію як «нестабільну» та надсилає алерт. CI/CD інтеграція дозволяє заблокувати promotion збірки на staging або production, якщо Stability Score знизився нижче порогу. Плагіни для Jenkins, GitHub Actions і GitLab CI передають метрики стабільності в пайплайн.
За даними Bugsnag Stability Benchmark (2024), 68% помилок у мобільних застосунках вносяться новими версіями, а не є давно існуючими багами. Release tracking скорочує час виявлення регресії з годин до кількох хвилин після деплою.
На ринку error monitoring три основні гравці: Bugsnag, Sentry та Firebase Crashlytics. Bugsnag вирізняється моделлю ціноутворення на основі сесій (а не подій), фокусом на Stability Score та автоматичною пріоритизацією severity. Sentry пропонує глибший performance monitoring з distributed tracing і відкритий вихідний код. Crashlytics — безкоштовне рішення з базовими функціями, інтегроване в екосистему Firebase.
| Характеристика | Bugsnag | Sentry | Crashlytics |
|---|---|---|---|
| Ціна (старт) | Безкоштовно до 5 000 сесій | Безкоштовно до 5 000 подій | Безкоштовно |
| Performance monitoring | Обмежений | Повний з distributed tracing | Немає |
| SDK для Flutter | Так | Так | Обмежено |
| Self-hosted | Ні | Так (open source) | Ні |
| Stability Score | Так (ключова метрика) | Ні | Ні |
Вибір між інструментами залежить від пріоритетів: якщо ключовий показник — стабільність застосунку в production, Bugsnag дає найбільш наочну метрику. Якщо потрібен глибокий аналіз продуктивності з distributed tracing — Sentry. Для безкоштовного базового моніторингу з інтеграцією в Google-екосистему — Crashlytics.
Часті запитання
Алгоритм враховує три фактори: тип винятку (краш або handled), кількість зачеплених користувачів і контекст сценарію. Critical severity присвоюється, якщо помилка сталася на головному екрані або в платіжному флоу та зачепила понад 1% користувачів. Розробник може перевизначити severity вручну через API або конфігурацію SDK.
Так, Bugsnag надає SDK для React Native (з підтримкою нової архітектури) та Flutter (сумісність з Dart 3.x). Обидва SDK підтримують автоматичний збір breadcrumbs для навігації, мережевих запитів і стану застосунку, а також кастомну інструментацію для бізнес-логіки.
Так, Bugsnag надає двосторонню інтеграцію з Jira: нова помилка може автоматично створювати завдання в Jira, а закриття завдання в Jira переводить помилку в статус «resolved» у Bugsnag. Підтримуються Jira Cloud та Jira Server (через Jira Connect).
SDK Bugsnag додає приблизно 1.5 MB до розміру APK/IPA в release-збірці. Це менше, ніж Sentry (близько 2 MB), але більше, ніж Firebase Crashlytics (близько 0.8 MB). Рекомендується видаляти SDK з debug-збірок для прискорення компіляції, залишаючи тільки для тестових та release-конфігурацій.
Так, Bugsnag підтримує бекенд-мови: Ruby, Python, Node.js, Java, .NET, Go, PHP. Бекенд-помилки відображаються в тому ж дашборді, що й мобільні, з групуванням за сервісами. Це дозволяє відстежувати наскрізну стабільність: якщо впав API, розробник бачить, чи пов'язана проблема з клієнтом чи сервером.
Підсумки
Ми розробимо мобільний застосунок під ключ
IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.
Читайте також