Sentry — це платформа для відстеження помилок і моніторингу продуктивності додатків у реальному часі, яка надає розробникам повний контекст кожного збою. Згідно з Sentry Documentation, 2025, Sentry обробляє понад 10 мільярдів подій на день, забезпечуючи інтеграцію з 90+ мовами та фреймворками для iOS, Android, веба та бекенда.
Головне
Sentry — це платформа з відкритим кодом для краш-репортингу та моніторингу продуктивності, заснована у 2012 році. Вона дозволяє розробникам отримувати сповіщення про помилки в реальному часі з повним діагностичним контекстом: стек викликів, значення змінних на момент збою, послідовність дій користувача до помилки та стан середовища.
На відміну від агрегованих сервісів краш-репортингу (Google Play Console, App Store Connect), які надають лише статистику та базові графіки, Sentry показує кожну подію окремо з можливістю групування за типом помилки та фільтрації за версією додатка. Issue у Sentry — це група подій з однаковим стектрейсом, що дозволяє не тонути в тисячах однакових крашів, а зосередитися на усуненні першопричини з повним контекстом.
Згідно з Sentry (2025), середній час виявлення помилки скорочується з 30 хвилин до 30 секунд після впровадження Sentry SDK, а час діагностики — на 60% завдяки automatic breadcrumbs та контексту середовища. Платформа використовується більш ніж 100 000 організацій по всьому світу, включаючи Airbnb, Microsoft, Instagram та PayPal, обробляючи мільярди подій щодня.
Система Sentry складається з трьох основних компонентів: SDK на стороні додатка, Relay (проксі-сервер) та бекенду обробки подій. Sentry SDK — це бібліотека, що впроваджується в додаток, яка перехоплює винятки, збирає контекст і надсилає події до Relay за протоколом JSON/HTTPS.
Relay — це проміжний сервер, який може бути розгорнутий в інфраструктурі компанії. Він приймає події від SDK, фільтрує за правилами (PII-дані, зайві події), буферизує та пересилає в Sentry SaaS або власний інстанс. Relay забезпечує низьку затримку відправки — типовий час отримання події становить 500–1500 мс.
Sentry надає вбудовані фільтри для відкидання небажаних подій без їх відправки на сервер: помилки з тестових середовищ, помилки від старих версій додатка, повторювані події з однаковим fingerprint. Filtering економить до 70% обсягу даних у типовому production-проекті, знижуючи вартість споживання та навантаження на канал зв'язку пристрою.
Встановлення Sentry SDK для мобільних платформ займає 5–10 хвилин і вимагає додавання залежності та ініціалізації з DSN-ключем. DSN (Data Source Name) — унікальний ідентифікатор проекту в Sentry, який вказує, куди надсилати події.
Для Android Sentry надає автоматичну інструментацію через Gradle-плагін. Плагін модифікує байт-код на етапі компіляції, додаючи обгортки для всіх Activity, Fragment та мережевих викликів. Auto-instrumentation вмикається однією опцією в build.gradle і дозволяє отримувати breadcrumbs з життєвого циклу додатка, не змінюючи код.
import io.sentry.Sentry
class App : Application() {
override fun onCreate() {
super.onCreate()
Sentry.init { options ->
options.dsn = "https://example@sentry.io/project"
options.tracesSampleRate = 0.2
options.enableAutoSessionTracking = true
}
}
}
Код ініціалізує Sentry SDK в Android-додатку. Параметр tracesSampleRate = 0.2 вмикає performance tracing для 20% сесій, enableAutoSessionTracking автоматично створює сесії для кожного запуску додатка.
SDK для iOS підтримує CocoaPods, Swift Package Manager та Carthage. Після встановлення SDK автоматично перехоплює NSException, сигнали (SIGABRT, SIGSEGV) та помилки Swift. Sentry Cocoa SDK сумісний з iOS 12+ та macOS 10.13+, підтримує Swift Concurrency (async/await) та автоматичну інструментацію URLSession.
import Sentry
class AppDelegate: UIResponder, UIApplicationDelegate {
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions options: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
SentrySDK.start { options in
options.dsn = "https://example@sentry.io/project"
options.enableAutoPerformanceTracing = true
}
return true
}
}
Код на Swift активує Sentry SDK з автоматичним збором метрик продуктивності. enableAutoPerformanceTracing вмикає моніторинг часу завантаження екранів та HTTP-запитів без додаткового коду.
Breadcrumbs — це хронологічна послідовність подій, що передують помилці. Sentry автоматично записує breadcrumbs для натискань кнопок, переходів між екранами, HTTP-запитів та системних сповіщень. Розробник може додавати кастомні breadcrumbs для бізнес-логіки.
Кожен breadcrumb містить часову мітку, тип події (navigation, http, ui, error), категорію та довільні дані. При виникненні помилки всі breadcrumbs за останні 2–5 хвилин (налаштовується) прикріплюються до події. Цей контекст часто важливіший за сам стектрейс: розробник бачить, що користувач натиснув «Оплатити» після вибору товару, і тільки потім стався краш. Максимальна кількість breadcrumbs за замовчуванням — 200, після чого найстаріші записи автоматично видаляються.
Sentry.addBreadcrumb(
Breadcrumb().apply {
category = "payment"
message = "User tapped Pay button"
type = "user"
level = BreadcrumbLevel.INFO
data["amount"] = "19.99"
data["currency"] = "USD"
}
)
Код додає кастомний breadcrumb для дії користувача в платіжному сценарії. Якщо після цієї дії станеться помилка, розробник побачить у Sentry, що користувач натиснув «Оплатити» з сумою 19.99 USD, що дозволяє швидко локалізувати проблему в платіжному потоці.
Sentry дозволяє прикріплювати до подій інформацію про користувача: ID, ім'я користувача, email. User context передається автоматично з усіма подіями з однієї сесії, дозволяючи групувати помилки за користувачами та визначати, скільки користувачів зачепив конкретний баг. Важливо дотримуватися політики конфіденційності та не передавати персональні дані, якщо це не дозволено політикою додатка.
У production-збірках iOS та Android код зазвичай мініфікований або обфускований. Без обробки стек помилки міститиме незрозумілі імена на кшталт «a.b()» замість «UserViewModel.fetchData()». Source maps (JavaScript) та debug symbols (dSYM для iOS, ProGuard mapping для Android) відновлюють читабельний стек.
Для Android Sentry автоматично завантажує ProGuard mapping файли через Gradle-плагін під час збірки релізної версії. Для iOS потрібне завантаження dSYM файлів — Sentry надає скрипт для автоматичного завантаження на етапі архівування. Без символів налагодження стек помилки в Sentry буде марним для розробника, тому процес їх завантаження має бути обов'язковим кроком CI/CD пайплайна.
Починаючи з версії 2020, Sentry включає performance monitoring — збір метрик часу виконання транзакцій із distributed tracing. Transaction у Sentry — це вимірювана одиниця роботи: завантаження екрана, виконання API-запиту, обробка фонового завдання. Кожна транзакція містить дочірні spans, які показують, які саме кроки зайняли найбільше часу.
Performance monitoring у Sentry інтегрований з error tracking: якщо транзакція завершилася помилкою, відповідний span позначається статусом «error», і розробник може перейти від метрики продуктивності до деталей винятку. Trace ID пов'язує всі події (помилки, транзакції, breadcrumbs) в єдину сесію для наскрізного аналізу, забезпечуючи безшовний перехід між вкладками Issues та Performance в єдиній панелі керування Sentry.
Згідно з Sentry Performance Benchmark (2024), додаток з увімкненим performance monitoring (частота вибірки 10%) споживає на 2–5% більше трафіку та на 1–2% більше ресурсів CPU на пристрої. Це навантаження компенсується скороченням часу діагностики продуктивності на 70% порівняно з ручним профілюванням.
Часті запитання
Sentry надає більше контексту: breadcrumbs, кастомні дані, зв'язок помилок із продуктивністю. Firebase Crashlytics — безкоштовний інструмент із базовим краш-репортингом, але без distributed tracing та без можливості кастомної інструментації breadcrumbs. Sentry підходить для проектів, де потрібна глибока діагностика.
Sentry пропонує безкоштовний тариф на 5 000 подій на місяць (помилки + транзакції). Платний тариф Team коштує 26 доларів за користувача на місяць і включає 100 000 подій. Для великих проектів доступний Business-тариф із необмеженим обсягом та індивідуальною ціною.
Sentry надає вбудований механізм Data Scrubbing: автоматичне видалення email, IP-адрес, кредитних карток та інших PII-даних із подій до їх збереження. Правила скрабінгу налаштовуються у веб-інтерфейсі або в конфігурації Relay з підтримкою регулярних виразів. Рекомендується ввімкнути scrubbing на рівні SDK, щоб конфіденційні дані не покидали пристрій користувача.
Так, Sentry має повністю open-source само-хостируєму версію. Self-hosted Sentry розгортається через Docker Compose і включає всі функції SaaS-версії. Мінімальна конфігурація сервера: 4 vCPU, 16 GB RAM, 100 GB дискового простору для зберігання подій.
Так, Sentry SDK повністю підтримує SwiftUI (iOS 13+) та Jetpack Compose (Android). Для SwiftUI SDK автоматично створює транзакції для NavigationView та List із заміром часу рендерингу. Для Jetpack Compose потрібна кастомна інтеграція через CompositionLocalProvider для передачі контексту Sentry в Composables.
Підсумки
Ми розробимо мобільний застосунок під ключ
IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.
Читайте також