Sentry — је платформа за праћење грешака и мониторинг перформанси апликација у реалном времену, која пружа развојачима пун контекст сваког квара. Према Sentry Documentation, 2025, Sentry обрађује преко 10 милијарди догађаја дневно, обезбеђујући интеграцију са 90+ језика и оквира за iOS, Android, веб и бекенд.
Главно
Sentry — је платформа отвореног кода за извјештавање падова и праћење перформанси, основана 2012. године. Омогућује програмерима да примају обавјештења о грешкама у реалном времену са пуним дијагностичким контекстом: стак позива, вредности промењивих у тренутку пада, след корисничких радъи пре грешке и стање окружења.
За разлику од агрегираних услуга за извјештавање падова (Google Play Console, App Store Connect), које пружају само статистику и основне графиконе, Sentry приказује сваки догађај поћединачно са могућношћу груписања по типу грешке и филтрирања по верзији апликације. Issue у Sentry-у — је група догађаја са истим stacktrace-ом, што омогућава да се не давите у хиљадама идентичних падова, већ да се фокусирате на отклањање првобитног узрока са пуним контекстом.
Према Sentry (2025), просечно време откривања грешке скраћује се са 30 минута на 30 секунди након увођења Sentry SDK, а време дијагнозе — за 60% захваљујући аутоматским breadcrumbs и контексту окружења. Платформу користи преко 100.000 организација широм свијета, укључујући Airbnb, Microsoft, Instagram и PayPal, обрађујући милијарде догађаја дневно.
Систем Sentry се састоји од три главна компоненте: SDK-а на страни апликације, Relay-а (прокси сервера) и бекенда за обраду догађаја. Sentry SDK — је библиотека која се уграђује у апликацију, пресреће изузетке, прикупља контекст и шаље догађаје на Relay протоколом JSON/HTTPS.
Relay — је посредни сервер који може да се постави у инфраструктури компаније. Прима догађаје од SDK-а, филтрира по правилима (PII подаци, непотребни догађаји), буферише и прослеђује Sentry SaaS или сопственој инстанци. Relay осигура малу каснењу слања — типично време приема догађаја је 500–1500 ms.
Sentry пружа уграђене филтере за одбацивање непожељних догађаја без слања на сервер: грешке из тестних окружења, грешке старих верзија апликације, поновљени догађаји са истим фингерпринтом. Filtering штеди до 70% обима података у типичном продукцијском пројекту, смањујући цијену потрошње и оптерећење комуникационог канала уређаја.
Инсталација 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 минута (подешиво) прикачују се догађају. Овај контекст је често важнији од самог stacktrace-а: програмер види да је корисник кликнуо „Плати” након избора производа, и тек онда се догодио пад. Максималан број 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-у видјети да је корисник кликнуо „Pay” са износом 19.99 USD, што омогућава брзо локализовање проблема у платном току.
Sentry омогућава прикачивање информација о кориснику уз догађаје: ID, корисничко име, имејл. User context се преноси аутоматски са свим догађајима из једне сесије, омогућавајући груписање грешака по корисницима и утврђивање колико је корисника погођено одређеним багом. Важно је поштовати политику приватности и не преносити личне податке ако то није дозвољено политиком апликације.
У производним верзијама 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 захтјева, обрада позадинског задатка. Свака транзакција садржи подредне spanове који показују који кораци су одузели найвише времена.
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 — бесплатан алат са основним crash-reporting-ом, али без distributed tracing и без могућности прилагођене инструментације breadcrumbs. Sentry је погодан за пројекте којима је потребна дубока дијагноза.
Sentry нуди бесплатан тариф на 5.000 догађаја мјесечно (грешке + транзакције). Плаћени тариф Team за 26 долара по кориснику мјесечно и укључује 100.000 догађаја. За велике пројекте доступан је пословни тариф Business са неограниченим обимом и индивидуалном цијеном.
Sentry пружа уграђени механизам Data Scrubbing: аутоматско уклањање имејлова, IP адреса, кредитних картица и других PII података из догађаја прије складиштења. Правила скрабинга се подешавају у веб интерфејсу или у конфигурацији Relay-а са подршком регуларних израза. Препоручује се укључивање скрабинга на нивоу SDK-а како би повјерљиви подаци не напуштали уређај корисника.
Да, Sentry има потпуно отворену верзију за сопствено хостовање. 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. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође