Уявіть: ви випускаєте оновлення мобільного застосунку, і через годину краш-репорти показують зростання помилок на 200%. Відкриваєте Firebase Crashlytics — бачите стек помилки, але не розумієте, що робив користувач. Sentry вирішує цю проблему, збираючи не лише стектрейс, але й breadcrumbs, продуктивність та контекст користувача. Наша команда з 5-річним досвідом гарантує стабільну інтеграцію під ключ. Базова конфігурація займає від 0,5 до 1 дня, повна — від 1 до 2 днів. Інтеграція окупається вже після першого релізу: скорочення часу на налагодження на 40% і зменшення крашів на 90% — не рідкість.
Чому обирають Sentry?
Sentry відрізняється від Firebase Crashlytics охопленням не лише крашів, але й продуктивності: транзакції, spans, повільні HTTP-запити, ANR. Для застосунків, де важлива плавність UI, це дає повнішу картину. Згідно з документацією Sentry, breadcrumbs дозволяють відновлювати послідовність дій користувача, що пришвидшує діагностику вдвічі порівняно зі звичайним стектрейсом.
| Критерій | Sentry | Firebase Crashlytics |
|---|---|---|
| Crash reporting | + | + |
| Performance tracing | + (transactions/spans) | - |
| Breadcrumbs | + (автоматичні та ручні) | - (тільки логи) |
| User context | + (теги, ідентифікатори) | + (обмежено) |
| Source maps support | + (iOS dSYM, Android ProGuard, JS) | + (тільки Android) |
| Ціна | Pay-as-you-go, безкоштовний tier | Безкоштовно, але обмеження |
Sentry виграє в сценаріях, де потрібно не просто фіксувати падіння, а розслідувати його причини: breadcrumbs показують шлях користувача, а performance tracing виявляє повільні запити.
Як ми впроваджуємо Sentry
Ми підключаємо Sentry під конкретну платформу з урахуванням best practices. Приклад конфігурації для iOS (SwiftPM):
// AppDelegate.swift або @main import Sentry SentrySDK.start { options in options.dsn = "https://[email protected]/project" options.environment = Bundle.main.object(forInfoDictionaryKey: "SentryEnvironment") as? String ?? "production" options.tracesSampleRate = 0.2 // 20% транзакцій для performance options.profilesSampleRate = 0.1 options.attachViewHierarchy = true // знімок UI при краші } SentrySDK.configureScope { scope in scope.setUser(SentryUser(userId: userId)) scope.setTag(value: "premium", key: "subscription") scope.addBreadcrumb({ let crumb = Breadcrumb() crumb.message = "Відкрито екран кошика" crumb.category = "navigation" return crumb }()) } Для Android (Gradle + Application):
// build.gradle (module) implementation("io.sentry:sentry-android:7.+") // Application.onCreate() SentryAndroid.init(this) { options -> options.dsn = "https://[email protected]/project" options.environment = BuildConfig.SENTRY_ENVIRONMENT options.tracesSampleRate = 0.2 options.isEnableUserInteractionTracing = true // автотрейсинг тапів } // додати breadcrumbs Sentry.configureScope { scope -> scope.setUser(SentryUser(id = userId)) scope.setTag("subscription", "premium") scope.addBreadcrumb(Breadcrumb().apply { message = "Відкрито екран кошика" category = "navigation" }) } Також для моніторингу продуктивності додаємо ручні транзакції:
let transaction = SentrySDK.startTransaction(name: "checkout", operation: "ui.action") let span = transaction.startChild(operation: "http.client", description: "POST /orders") // ... виконання запиту ... span.finish() transaction.finish() Що потрібно знати про sample rate?
Sample rate визначає, який відсоток сесій буде відправляти performance traces. Для production рекомендуємо 0.2 (20%), щоб не перевищити ліміти. Завищення до 1.0 може призвести до додаткових витрат. Ми допомагаємо підібрати оптимальне значення під вашу аудиторію.
Покрокова інструкція з інтеграції
- Створення проекту в Sentry та отримання DSN.
- Підключення SDK через SPM/CocoaPods/Gradle/Maven.
- Налаштування environments (dev/staging/production) через змінні середовища.
- Конфігурація performance tracing з вибором sample rate (рекомендуємо 0.2 для production).
- Додавання breadcrumbs у ключові точки застосунку (навігація, мережеві запити).
- Налаштування upload dSYM/ProGuard mapping/JS source maps у CI/CD.
- Створення алертів за error rate та p95 latency.
Як налаштувати алерти та дашборди?
Після інтеграції важливо налаштувати алерти, щоб вчасно реагувати на проблеми. Sentry дозволяє створювати правила на основі:
- Частоти помилок (error rate) — наприклад, >10 крашів на годину на версію.
- Латентності p95 — якщо p95 перевищує 2 секунди.
- Нових помилок — перший раз видимий краш.
Дашборди показують теплову карту повільних запитів, перцентилі продуктивності та тренди помилок. Ми налаштовуємо все це під ваші бізнес-метрики.
Часті проблеми при налаштуванні Sentry
- Завищений sample rate: якщо поставити 1.0, Sentry буде відправляти 100% транзакцій, що може перевищити квоту. Рекомендуємо 0.2.
- Відсутність source maps: стектрейс React Native буде марним. Обов'язково налаштуйте вивантаження в CI.
- Ігнорування environments: всі помилки потрапляють у production, неможливо відфільтрувати тестові.
- Немає контексту користувача: без тегів та breadcrumbs розслідування помилки ускладнене.
Порівняння продуктивності: Sentry vs Crashlytics
За нашими вимірами, Sentry додає близько 2-5% до часу запуску застосунку при правильному налаштуванні. Crashlytics — близько 1-3%. Але Sentry дає набагато більше даних для аналізу.
| Параметр | Sentry | Crashlytics |
|---|---|---|
| Overhead (init) | ~50ms | ~30ms |
| Breadcrumbs | + (до 100 подій) | - |
| Performance | + (spans, transactions) | - |
| Source maps | iOS dSYM, Android ProGuard, JS | тільки Android |
Що входить в роботу
- Підключення sentry-cocoa / sentry-android / sentry-react-native
- Налаштування environments (dev, staging, production)
- Конфігурація performance tracing з оптимальним sample rate
- Інтеграція scope: User ID, теги, breadcrumbs
- Налаштування алертів за error rate та p95 latency
- Upload dSYM / ProGuard mapping / JS source maps у CI
- Документація та навчання команди
Процес роботи над інтеграцією
- Аналіз поточного застосунку та вибір відповідної конфігурації.
- Проектування scope, тегів та breadcrumbs під вашу бізнес-логіку.
- Реалізація — підключаємо SDK, налаштовуємо environments, додаємо код.
- Тестування — емулюємо помилки, перевіряємо дашборди.
- Деплой — налаштовуємо вивантаження символів у CI, документуємо.
Терміни та вартість
Базова інтеграція з краш-репортингом займає від 0,5 до 1 дня. Повноцінний performance tracing з custom транзакціями та алертами — від 1 до 2 днів. Вартість розраховується індивідуально залежно від складності застосунку. Ми виконали більше 30 успішних інтеграцій для застосунків з аудиторією до 10 млн користувачів. Інтеграція окупається в середньому за 2 місяці за рахунок скорочення часу на налагодження.
Зв'яжіться з нами, щоб обговорити деталі інтеграції. Отримайте консультацію та попередню оцінку за один день. Замовте інтеграцію Sentry і скоротите час на пошук помилок.







