Sentry — bu nima, prinsiplari va xatolarni yig'ish

Muallif: IT Sectr Nashr etilgan: 2026-05-29 O'qish vaqti: 8 daq

Sentry — bu real vaqt rejimida ilovalardagi xatolarni kuzatish va ishlash samaradorligini monitoring qilish platformasi bo'lib, dasturchilarga har bir nosozlikning to'liq kontekstini taqdim etadi. Sentry Documentation, 2025 ma'lumotlariga ko'ra, Sentry kuniga 10 milliarddan ortiq hodisalarni qayta ishlaydi, iOS, Android, veb va backend uchun 90+ til va freymvorklar bilan integratsiyani ta'minlaydi.

Asosiy ma'lumotlar

  • Sentry — 90+ til va platformalarni qo'llab-quvvatlovchi, ochiq kodli xato kuzatish va samaradorlik monitoring platformasi.
  • Error events — to'liq stacktrace, o'zgaruvchilar qiymatlari va qurilma holati bilan istisnolarni avtomatik yig'ish.
  • Breadcrumbs — xatodan oldingi foydalanuvchi harakatlari va tizim hodisalarining ketma-ketligi.
  • Source maps — ishlab chiqarishda o'qiladigan chaqiruvlar stekini tiklash uchun minimallashtirilgan kodni deobfuskatsiyalash.
  • Performance Tracing — barcha xizmatlar bo'ylab distributed tracing bilan tranzaksiyalarning bajarilish vaqtini monitoring qilish.

Ishlanmada Sentry nima

Sentry — 2012-yilda asos solingan, ochiq kodli crash-reporting va samaradorlik monitoring platformasi. Dasturchilarga real vaqtda xatolar haqida to'liq diagnostik kontekst bilan bildirishnomalar olish imkonini beradi: chaqiruvlar steki, nosozlik paytida o'zgaruvchilar qiymatlari, xatodan oldingi foydalanuvchi harakatlari ketma-ketligi va muhit holati.

Faqat statistika va asosiy grafiklarni taqdim etuvchi agregatsiyalashgan crash-reporting xizmatlaridan (Google Play Console, App Store Connect) farqli o'laroq, Sentry har bir hodisani alohida ko'rsatadi, xato turi bo'yicha guruhlash va ilova versiyasi bo'yicha filtrlash imkonini beradi. Sentry-da Issue — bir xil stacktrace-ga ega hodisalar guruhi bo'lib, minglab bir xil krashlarda cho'kib qolmaslikka, to'liq kontekst bilan asosiy sababni bartaraf etishga e'tibor qaratishga imkon beradi.

Sentry (2025) ma'lumotlariga ko'ra, Sentry SDK joriy etilgandan so'ng xatoni aniqlashning o'rtacha vaqti 30 daqiqadan 30 soniyagacha qisqaradi, tashxis vaqti esa avtomatik breadcrumbs va muhit konteksti tufayli 60% ga kamayadi. Platforma butun dunyo bo'ylab 100.000 dan ortiq tashkilotlar, jumladan Airbnb, Microsoft, Instagram va PayPal tomonidan qo'llaniladi va kuniga milliardlab hodisalarni qayta ishlaydi.

Sentry arxitekturasi: SDK, Relay va hodisalarni qayta ishlash

Sentry tizimi uchta asosiy komponentdan iborat: ilova tomonidagi SDK, Relay (proksi-server) va hodisalarni qayta ishlash backend-i. Sentry SDK — ilovaga o'rnatilgan, istisnolarni tutuvchi, kontekst yig'uvchi va hodisalarni JSON/HTTPS protokoli orqali Relay-ga yuboruvchi kutubxona.

Sentry Relay

Relay — kompaniya infratuzilmasida joylashtirilishi mumkin bo'lgan oraliq server. SDK-dan hodisalarni qabul qiladi, qoidalar bo'yicha filtrlaydi (PII ma'lumotlari, keraksiz hodisalar), buferlaydi va Sentry SaaS yoki o'z instansiyasiga uzatadi. Relay past jo'natish kechikishini ta'minlaydi — hodisani qabul qilishning odatiy vaqti 500–1500 ms.

Inbound Data Filter

Sentry serverga yubormasdan istalmagan hodisalarni rad etish uchun o'rnatilgan filtrlarni taqdim etadi: test muhitlaridagi xatolar, ilovaning eski versiyalaridagi xatolar, bir xil fingerprint-ga ega takrorlanuvchi hodisalar. Filtering odatdagi ishlab chiqarish loyihasida ma'lumotlar hajmining 70% gacha tejaydi, iste'mol narxini va qurilmaning aloqa kanali yukini kamaytiradi.

iOS va Android uchun Sentry SDK sozlamalari

Mobil platformalar uchun Sentry SDK o'rnatish 5–10 daqiqa davom etadi va bog'liqlikni qo'shish hamda DSN kaliti bilan ishga tushirishni talab qiladi. DSN (Data Source Name) — Sentry-dagi loyihaning noyob identifikatori bo'lib, hodisalarni qaerga yuborishni ko'rsatadi.

Android-da sozlash

Android uchun Sentry Gradle plagini orqali avtomatik instrumentatsiyani ta'minlaydi. Plagin kompilyatsiya bosqichida bayt-kodni o'zgartirib, barcha Activity, Fragment va tarmoq chaqiruvlari uchun o'ramlar qo'shadi. Auto-instrumentation build.gradle da bitta variant bilan yoqiladi va kodni o'zgartirmasdan ilova hayotiy siklidan breadcrumbs olish imkonini beradi.

kotlin
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
        }
    }
}

Kod Android ilovasida Sentry SDK-ni ishga tushiradi. tracesSampleRate = 0.2 parametri sessiyalarning 20% i uchun performance tracing-ni yoqadi, enableAutoSessionTracking ilovaning har bir ishga tushirilishi uchun avtomatik sessiyalar yaratadi.

iOS-da sozlash

iOS SDK CocoaPods, Swift Package Manager va Carthage-ni qo'llab-quvvatlaydi. O'rnatilgandan so'ng SDK avtomatik ravishda NSException, signallarni (SIGABRT, SIGSEGV) va Swift xatolarini tutadi. Sentry Cocoa SDK iOS 12+ va macOS 10.13+ bilan mos keladi, Swift Concurrency (async/await) va URLSession avtomatik instrumentatsiyasini qo'llab-quvvatlaydi.

swift
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-dagi kod avtomatik samaradorlik ko'rsatkichlarini yig'ish bilan Sentry SDK-ni faollashtiradi. enableAutoPerformanceTracing qo'shimcha kodlarsiz ekranlarning yuklanish vaqti va HTTP so'rovlari monitoringini yoqadi.

Breadcrumbs — xatodan oldingi hodisalarning xronologik ketma-ketligi. Sentry avtomatik ravishda tugmalarni bosish, ekranlar orasidagi o'tishlar, HTTP so'rovlari va tizim bildirishnomalari uchun breadcrumbs yozadi. Dasturchi biznes mantig'i uchun maxsus breadcrumbs qo'shishi mumkin.

Har bir breadcrumb vaqt tamg'asi, hodisa turi (navigation, http, ui, error), kategoriya va ixtiyoriy ma'lumotlarni o'z ichiga oladi. Xato yuz berganda, oxirgi 2–5 daqiqadagi (sozlanishi) barcha breadcrumbs hodisaga biriktiriladi. Bu kontekst ko'pincha stacktrace-ning o'zidan muhimroq: dasturchi foydalanuvchi mahsulotni tanlagandan so'ng “To'lash” tugmasini bosganini va shundan keyin krash sodir bo'lganini ko'radi. Standart bo'yicha maksimal breadcrumbs soni 200 ta, undan keyin eng eski yozuvlar avtomatik o'chiriladi.

kotlin
Sentry.addBreadcrumb(
    Breadcrumb().apply {
        category = "payment"
        message = "User tapped Pay button"
        type = "user"
        level = BreadcrumbLevel.INFO
        data["amount"] = "19.99"
        data["currency"] = "USD"
    }
)

Kod to'lov stsenariysida foydalanuvchi harakati uchun maxsus breadcrumb qo'shadi. Agar bu harakatdan keyin xato yuz bersa, dasturchi Sentry-da foydalanuvchi 19.99 USD summa bilan “Pay” tugmasini bosganini ko'radi, bu to'lov oqimida muammoni tez lokalizatsiya qilish imkonini beradi.

User context

Sentry hodisalarga foydalanuvchi haqida ma'lumot biriktirish imkonini beradi: ID, foydalanuvchi nomi, email. User context bir sessiyaning barcha hodisalari bilan avtomatik uzatiladi, xatolarni foydalanuvchilar bo'yicha guruhlash va ma'lum bir bag qancha foydalanuvchiga ta'sir qilganini aniqlash imkonini beradi. Maxfiylik siyosatiga rioya qilish va ilova siyosati ruxsat bermasa, shaxsiy ma'lumotlarni uzatmaslik muhim.

Source maps va nosozliklarni tuzatish belgilari

iOS va Android ning ishlab chiqarish versiyalarida kod odatda minimallashtirilgan yoki xiralashtirilgan. Qayta ishlanmasa, xato steki “a.b()” o'rniga “UserViewModel.fetchData()” kabi tushunarsiz nomlarni o'z ichiga oladi. Source maps (JavaScript) va debug symbols (iOS uchun dSYM, Android uchun ProGuard mapping) o'qiladigan stekni tiklaydi.

Android uchun Sentry release versiyasini qurishda Gradle plagini orqali ProGuard mapping fayllarini avtomatik yuklaydi. iOS uchun dSYM fayllarini yuklash talab qilinadi — Sentry arxivlash bosqichida avtomatik yuklash uchun skriptni taqdim etadi. Nosozliklarni tuzatish belgilari bo'lmasa, Sentry-dagi xato steki dasturchi uchun foydasiz bo'ladi, shuning uchun ularni yuklash jarayoni CI/CD pipeline-ning majburiy bosqichi bo'lishi kerak.

Sentry orqali samaradorlik monitoringi

2020 versiyasidan boshlab, Sentry samaradorlik monitoringini — distributed tracing bilan tranzaksiyalarning bajarilish vaqti ko'rsatkichlarini yig'ishni o'z ichiga oladi. Sentry-da Transaction — o'lchanadigan ish birligi: ekranni yuklash, API so'rovini bajarish, fon vazifasini qayta ishlash. Har bir tranzaksiya eng ko'p vaqt olgan qadamlarni ko'rsatuvchi bola spannlarni o'z ichiga oladi.

Sentry-da samaradorlik monitoringi error tracking bilan integratsiyalashgan: agar tranzaksiya xato bilan yakunlansa, tegishli span “error” statusi bilan belgilanadi va dasturchi samaradorlik ko'rsatkichidan istisno tafsilotlariga o'tishi mumkin. Trace ID barcha hodisalarni (xatolar, tranzaksiyalar, breadcrumbs) yagona sessiyada bog'laydi, Sentry platformasining yagona dashboardida Issues va Performance yorliqlari o'rtasida uzluksiz o'tishni ta'minlaydi.

Sentry Performance Benchmark (2024) ma'lumotlariga ko'ra, samaradorlik monitoringi yoqilgan ilova (tanlab olish chastotasi 10%) qurilmada 2–5% ko'proq trafik va 1–2% ko'proq CPU resurslarini sarflaydi. Bu yuk qo'lda profillash bilan solishtirganda samaradorlik diagnostikasi vaqtini 70% qisqartirish bilan kompensatsiya qilinadi.

Tez-tez beriladigan savollar

Sentry Firebase Crashlytics-dan qanday farq qiladi?

Sentry ko'proq kontekstni taqdim etadi: breadcrumbs, maxsus ma'lumotlar, xatolarning samaradorlik bilan bog'liqligi. Firebase Crashlytics — asosiy crash-reporting bilan bepul vosita, lekin distributed tracing va breadcrumbs maxsus instrumentatsiyasi imkoniyatisiz. Sentry chuqur diagnostika talab qiladigan loyihalar uchun mos keladi.

Sentry mobil ilova uchun qancha turadi?

Sentry oyiga 5 000 ta hodisa (xatolar + tranzaksiyalar) uchun bepul tarifni taklif qiladi. Team pullik tarifi foydalanuvchi boshiga oyiga 26 dollar turadi va 100 000 ta hodisani o'z ichiga oladi. Katta loyihalar uchun cheksiz hajm va individual narx bilan Business tarifi mavjud.

Sentry xatolardagi shaxsiy ma'lumotlarni qanday qayta ishlaydi?

Sentry o'rnatilgan Data Scrubbing mexanizmini taqdim etadi: email, IP manzillar, kredit kartalari va boshqa PII ma'lumotlarini hodisalardan saqlashdan oldin avtomatik olib tashlash. Skrubing qoidalari veb-interfeysda yoki Relay konfiguratsiyasida muntazam ifodalar yordami bilan sozlanadi. Maxfiy ma'lumotlar foydalanuvchi qurilmasini tark etmasligi uchun skrubingni SDK darajasida yoqish tavsiya etiladi.

Sentry-ni o'z serverlarimda ishga tushirish mumkinmi?

Ha, Sentry to'liq ochiq kodli self-hosted versiyaga ega. Self-hosted Sentry Docker Compose orqali joylashtiriladi va SaaS versiyasining barcha funksiyalarini o'z ichiga oladi. Minimal server konfiguratsiyasi talab qilinadi: 4 vCPU, 16 GB RAM, hodisalarni saqlash uchun 100 GB disk maydoni.

Sentry SwiftUI va Jetpack Compose-ni qo'llab-quvvatlaydimi?

Ha, Sentry SDK SwiftUI (iOS 13+) va Jetpack Compose (Android) ni to'liq qo'llab-quvvatlaydi. SwiftUI uchun SDK render vaqtini o'lchash bilan NavigationView va List uchun avtomatik tranzaksiyalar yaratadi. Jetpack Compose uchun Composables-ga Sentry kontekstini uzatish uchun CompositionLocalProvider orqali maxsus integratsiya talab qilinadi.

Xulosa

  • Sentry — 100.000 dan ortiq tashkilotlar tomonidan qo'llaniladigan, ochiq kodli xato kuzatish va samaradorlik monitoring platformasi.
  • Arxitektura qurilmada SDK, Relay proksi va self-hosted va SaaS joylashtirishni qo'llab-quvvatlovchi hodisalarni qayta ishlash backend-ni o'z ichiga oladi.
  • Breadcrumbs murakkab bag'larni tashxislash uchun muhim bo'lgan, xatodan oldingi foydalanuvchi harakatlari xronologiyasini taqdim etadi.
  • Source maps va dSYM xiralashtirilgan ishlab chiqarish kodidan o'qiladigan chaqiruvlar stekini tiklaydi.
  • Performance Tracing error tracking bilan integratsiyalashgan bo'lib, yagona trace ID orqali vaqt ko'rsatkichlaridan xato tafsilotlariga o'tish imkonini beradi.
  • Auto-instrumentation qo'lda kod yozmasdan Activity, ViewController, HTTP so'rovlari va ilova hayotiy siklini qamrab oladi.
  • Sentry joriy etilishi har qanday ishlab chiqarish ilovasi uchun tavsiya etiladi: bepul tarif kichik va o'rta loyihalar uchun yetarli bo'lgan oyiga 5 000 ta hodisani qamrab oladi.

Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz

IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.

Loyihani muhokama qilish

Shuningdek o'qing