Ang Sentry ay isang platform para sa pagsubaybay ng mga error at pag-monitor ng performance ng mga application sa real-time, na nagbibigay sa mga developer ng kumpletong konteksto ng bawat pag-crash. Ayon sa Sentry Documentation, 2025, Sentry ay nagpoproseso ng higit sa 10 bilyong event bawat araw, na nagbibigay ng integrasyon sa 90+ mga wika at framework para sa iOS, Android, web at backend.
Mga Pangunahing Punto
Sentry ay isang open-source platform para sa crash reporting at pag-monitor ng performance, na itinatag noong 2012. Pinapayagan nito ang mga developer na makatanggap ng mga notification ng error sa real-time na may kumpletong diagnostic context: call stack, mga halaga ng variable sa oras ng pag-crash, pagkakasunod-sunod ng mga aksyon ng user bago ang error at estado ng kapaligiran.
Hindi tulad ng mga aggregated crash reporting services (Google Play Console, App Store Connect) na nagbibigay lamang ng mga istatistika at pangunahing graph, ipinapakita ng Sentry ang bawat event nang hiwalay na may kakayahang mag-grupo ayon sa uri ng error at mag-filter ayon sa bersyon ng app. Issue sa Sentry ay isang grupo ng mga event na may parehong stacktrace, na nagbibigay-daan upang hindi malunod sa libu-libong magkakaparehong crash, ngunit tumutok sa pag-aalis ng ugat na sanhi na may kumpletong konteksto.
Ayon sa Sentry (2025), ang average na oras ng pag-detect ng error ay nababawasan mula 30 minuto hanggang 30 segundo pagkatapos ng pagpapatupad ng Sentry SDK, at ang oras ng diagnosis — ng 60% salamat sa awtomatikong breadcrumbs at konteksto ng kapaligiran. Ang platform ay ginagamit ng higit sa 100,000 organisasyon sa buong mundo, kabilang ang Airbnb, Microsoft, Instagram at PayPal, na nagpoproseso ng bilyong event araw-araw.
Ang sistema ng Sentry ay binubuo ng tatlong pangunahing bahagi: SDK sa gilid ng app, Relay (proxy server) at backend ng pagproseso ng event. Sentry SDK ay isang library na isinasama sa app, na kumukuha ng mga exception, nangongolekta ng konteksto at nagpapadala ng mga event sa Relay sa pamamagitan ng JSON/HTTPS protocol.
Relay ay isang intermediate server na maaaring i-deploy sa imprastraktura ng kumpanya. Tumatanggap ito ng mga event mula sa SDK, nagfa-filter ayon sa mga patakaran (PII data, hindi kinakailangang event), nagbu-buffer at nagpapadala sa Sentry SaaS o sariling instance. Tinitiyak ng Relay ang mababang latency ng pagpapadala — tipikal na oras ng pagtanggap ng event ay 500–1500 ms.
Nagbibigay ang Sentry ng mga built-in na filter para sa pagtanggi ng mga hindi kanais-nais na event nang hindi ipinapadala ang mga ito sa server: mga error mula sa test environment, mga error mula sa lumang bersyon ng app, mga paulit-ulit na event na may parehong fingerprint. Filtering ay nakakatipid ng hanggang 70% ng dami ng data sa isang tipikal na production project, na nagpapababa ng gastos sa pagkonsumo at load sa communication channel ng device.
Ang pag-install ng Sentry SDK para sa mobile platform ay tumatagal ng 5–10 minuto at nangangailangan ng pagdaragdag ng dependency at pagsisimula gamit ang DSN key. DSN (Data Source Name) ay ang natatanging identifier ng proyekto sa Sentry na nagpapakita kung saan ipapadala ang mga event.
Para sa Android, nagbibigay ang Sentry ng awtomatikong instrumentasyon sa pamamagitan ng Gradle plugin. Binabago ng plugin ang bytecode sa yugto ng compilation, nagdaragdag ng mga wrapper para sa lahat ng Activity, Fragment at network calls. Auto-instrumentation ay naa-activate sa isang opsyon sa build.gradle at pinapayagan ang pagkuha ng breadcrumbs mula sa lifecycle ng app nang hindi binabago ang code.
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
}
}
}
Ang code ay nag-i-initiate ng Sentry SDK sa Android app. Ang parameter na tracesSampleRate = 0.2 ay nag-a-activate ng performance tracing para sa 20% ng mga session, enableAutoSessionTracking ay awtomatikong gumagawa ng mga session para sa bawat paglunsad ng app.
Ang SDK para sa iOS ay sumusuporta sa CocoaPods, Swift Package Manager at Carthage. Pagkatapos ng pag-install, awtomatikong kumukuha ang SDK ng NSException, mga signal (SIGABRT, SIGSEGV) at mga error sa Swift. Sentry Cocoa SDK ay compatible sa iOS 12+ at macOS 10.13+, sumusuporta sa Swift Concurrency (async/await) at awtomatikong instrumentasyon ng 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
}
}
Ang code sa Swift ay nag-a-activate ng Sentry SDK na may awtomatikong pagkolekta ng performance metrics. enableAutoPerformanceTracing ay nag-a-activate ng pag-monitor ng oras ng pag-load ng screen at HTTP requests nang walang karagdagang code.
Breadcrumbs ay isang kronolohikal na pagkakasunod-sunod ng mga event bago ang error. Awtomatikong nagre-record ang Sentry ng breadcrumbs para sa mga pag-click ng button, paglipat sa pagitan ng screen, HTTP requests at system notification. Ang developer ay maaaring magdagdag ng custom na breadcrumbs para sa business logic.
Ang bawat breadcrumb ay naglalaman ng timestamp, uri ng event (navigation, http, ui, error), kategorya at arbitraryong data. Kapag nangyari ang error, lahat ng breadcrumbs mula sa huling 2–5 minuto (na-configure) ay nakakabit sa event. Ang kontekstong ito ay madalas na mas mahalaga kaysa sa stacktrace mismo: nakikita ng developer na nag-click ang user ng “Magbayad” pagkatapos pumili ng produkto, at pagkatapos ay nangyari ang crash. Ang maximum na bilang ng breadcrumbs bilang default ay 200, pagkatapos nito ang mga pinakalumang record ay awtomatikong tinatanggal.
Sentry.addBreadcrumb(
Breadcrumb().apply {
category = "payment"
message = "User tapped Pay button"
type = "user"
level = BreadcrumbLevel.INFO
data["amount"] = "19.99"
data["currency"] = "USD"
}
)
Ang code ay nagdaragdag ng custom na breadcrumb para sa aksyon ng user sa payment scenario. Kung pagkatapos ng aksyong ito ay may error na mangyari, makikita ng developer sa Sentry na nag-click ang user ng “Pay” na may halagang 19.99 USD, na nagbibigay-daan sa mabilis na lokalisasyon ng problema sa payment flow.
Pinapayagan ng Sentry na mag-attach ng impormasyon tungkol sa user sa mga event: ID, username, email. User context ay awtomatikong naipapasa sa lahat ng event mula sa isang session, na nagbibigay-daan sa pag-grupo ng mga error ayon sa user at pagtukoy kung ilang user ang naapektuhan ng isang partikular na bug. Mahalagang sumunod sa privacy policy at huwag magpadala ng personal na data kung hindi ito pinapayagan ng patakaran ng app.
Sa production version ng iOS at Android, ang code ay karaniwang minified o obfuscated. Kung walang pagproseso, ang error stack ay maglalaman ng mga hindi maintindihang pangalan tulad ng “a.b()” sa halip na “UserViewModel.fetchData()”. Source maps (JavaScript) at debug symbols (dSYM para sa iOS, ProGuard mapping para sa Android) ay nagpapanumbalik ng nababasang stack.
Para sa Android, awtomatikong nag-u-upload ang Sentry ng ProGuard mapping file sa pamamagitan ng Gradle plugin kapag nagbu-build ng release version. Para sa iOS, kinakailangan ang pag-upload ng dSYM file — nagbibigay ang Sentry ng script para sa awtomatikong pag-upload sa yugto ng pag-archive. Kung walang debug symbols, ang error stack sa Sentry ay magiging walang silbi para sa developer, kaya ang proseso ng pag-upload ay dapat na isang mandatoryong hakbang sa CI/CD pipeline.
Simula sa bersyon 2020, ang Sentry ay may kasamang performance monitoring — pagkolekta ng metrics ng oras ng pag-execute ng mga transaksyon na may distributed tracing. Transaction sa Sentry ay isang nasusukat na unit ng trabaho: pag-load ng screen, pag-execute ng API request, pagproseso ng background task. Ang bawat transaksyon ay naglalaman ng child spans na nagpapakita kung aling mga hakbang ang tumagal ng pinakamaraming oras.
Ang performance monitoring sa Sentry ay integrated sa error tracking: kung ang isang transaksyon ay natapos na may error, ang kaukulang span ay minamarkahan ng status na “error”, at ang developer ay maaaring lumipat mula sa performance metric patungo sa detalye ng exception. Trace ID ay nag-uugnay sa lahat ng event (errors, transactions, breadcrumbs) sa iisang session para sa end-to-end analysis, na nagbibigay ng seamless transition sa pagitan ng Issues at Performance tab sa iisang dashboard ng Sentry platform.
Ayon sa Sentry Performance Benchmark (2024), ang app na may naka-activate na performance monitoring (sampling frequency 10%) ay kumukonsumo ng 2–5% mas maraming traffic at 1–2% mas maraming CPU resources sa device. Ang load na ito ay binabayaran ng pagbawas ng oras ng diagnosis ng performance ng 70% kumpara sa manual profiling.
Mga Madalas Itanong
Sentry ay nagbibigay ng mas maraming konteksto: breadcrumbs, custom data, ugnayan ng error sa performance. Ang Firebase Crashlytics ay isang libreng tool na may basic crash reporting, ngunit walang distributed tracking at walang kakayahang mag-custom na instrumentasyon ng breadcrumbs. Ang Sentry ay angkop para sa mga proyektong nangangailangan ng malalim na diagnosis.
Nag-aalok ang Sentry ng libreng plano para sa 5,000 event bawat buwan (errors + transactions). Ang bayad na plano Team ay nagkakahalaga ng 26 dolyar bawat user bawat buwan at may kasamang 100,000 event. Para sa malalaking proyekto, available ang Business plan na may unlimited volume at indibidwal na presyo.
Nagbibigay ang Sentry ng built-in na mekanismo ng Data Scrubbing: awtomatikong pag-alis ng mga email, IP address, credit card at iba pang PII data mula sa mga event bago sila i-save. Ang mga panuntunan sa scrubbing ay naka-configure sa web interface o sa configuration ng Relay na may suporta sa regular expressions. Inirerekomenda na i-activate ang scrubbing sa antas ng SDK upang ang confidential data ay hindi umalis sa device ng user.
Oo, ang Sentry ay may ganap na open-source self-hosted version. Self-hosted Sentry ay nade-deploy sa pamamagitan ng Docker Compose at may kasamang lahat ng function ng SaaS version. Kinakailangan ang minimal na server configuration: 4 vCPU, 16 GB RAM, 100 GB disk space para sa pag-imbak ng event.
Oo, ganap na sinusuportahan ng Sentry SDK ang SwiftUI (iOS 13+) at Jetpack Compose (Android). Para sa SwiftUI, awtomatikong gumagawa ang SDK ng mga transaksyon para sa NavigationView at List na may pagsukat ng oras ng rendering. Para sa Jetpack Compose, kinakailangan ang custom integration sa pamamagitan ng CompositionLocalProvider para maipasa ang konteksto ng Sentry sa mga Composables.
Buod
Gagawa kami ng mobile application na turnkey
Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.
Basahin din