Sentry ایک ریئل ٹائم خرابی سے باخبر رہنے اور ایپلیکیشن کارکردگی کی نگرانی کا پلیٹ فارم ہے جو ڈویلپرز کو ہر کریش کا مکمل سیاق و سباق فراہم کرتا ہے۔ Sentry Documentation, 2025 کے مطابق، Sentry روزانہ 10 بلین سے زیادہ واقعات پر کارروائی کرتا ہے، جو iOS، Android، ویب اور بیک اینڈ کے لیے 90+ زبانوں اور فریم ورکس کے ساتھ انضمام فراہم کرتا ہے۔
اہم نکات
Sentry ایک اوپن سورس کریش رپورٹنگ اور کارکردگی کی نگرانی کا پلیٹ فارم ہے، جس کی بنیاد 2012 میں رکھی گئی۔ یہ ڈویلپرز کو مکمل تشخیصی سیاق و سباق (کال اسٹیک، کریش کے وقت متغیرات کی اقدار، خرابی سے پہلے صارف کے اقدامات کا سلسلہ اور ماحول کی حالت) کے ساتھ ریئل ٹائم میں خرابی کی اطلاعات حاصل کرنے کی اجازت دیتا ہے۔
مجموعی کریش رپورٹنگ سروسز (Google Play Console, App Store Connect) کے برعکس، جو صرف اعدادوشمار اور بنیادی گراف فراہم کرتی ہیں، Sentry ہر واقعہ کو انفرادی طور پر خرابی کی قسم کے لحاظ سے گروپ کرنے اور ایپ ورژن کے مطابق فلٹر کرنے کی صلاحیت کے ساتھ دکھاتا ہے۔ Sentry میں Issue ایک ہی اسٹیک ٹریس والے واقعات کا گروپ ہے، جو آپ کو ہزاروں ایک جیسے کریش میں ڈوبنے کے بجائے مکمل سیاق و سباق کے ساتھ بنیادی وجہ کو ٹھیک کرنے پر توجہ مرکوز کرنے دیتا ہے۔
Sentry (2025) کے مطابق، Sentry SDK لاگو کرنے کے بعد اوسط خرابی کا پتہ لگانے کا وقت 30 منٹ سے کم ہو کر 30 سیکنڈ رہ جاتا ہے، اور خودکار breadcrumbs اور ماحولیاتی سیاق و سباق کی بدولت تشخیص کا وقت 60% کم ہو جاتا ہے۔ یہ پلیٹ فارم دنیا بھر میں 100,000 سے زیادہ تنظیمیں استعمال کرتی ہیں، جن میں Airbnb، Microsoft، Instagram اور PayPal شامل ہیں، اور روزانہ اربوں واقعات پر کارروائی کرتا ہے۔
Sentry نظام تین اہم اجزاء پر مشتمل ہے: ایپلیکیشن کی طرف SDK، Relay (پراکسی سرور) اور واقعات کی پروسیسنگ بیک اینڈ۔ Sentry SDK ایک لائبریری ہے جو ایپلیکیشن میں شامل کی جاتی ہے، جو استثنیات کو روکتی ہے، سیاق و سباق جمع کرتی ہے اور JSON/HTTPS پروٹوکول کے ذریعے Relay کو واقعات بھیجتی ہے۔
Relay ایک درمیانی سرور ہے جسے کمپنی کے بنیادی ڈھانچے میں تعینات کیا جا سکتا ہے۔ یہ SDK سے واقعات وصول کرتا ہے، قواعد (PII ڈیٹا، غیر ضروری واقعات) کے مطابق فلٹر کرتا ہے، بفر کرتا ہے اور Sentry SaaS یا خود میزبان مثال کو بھیجتا ہے۔ Relay کم تاخیر کو یقینی بناتا ہے — عام واقعہ وصولی کا وقت 500–1500 ملی سیکنڈ ہے۔
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
}
}
}
کوڈ Android ایپلیکیشن میں Sentry SDK کو ابتدا کرتا ہے۔ پیرامیٹر tracesSampleRate = 0.2 20% سیشنز کے لیے کارکردگی ٹریسنگ کو فعال کرتا ہے، enableAutoSessionTracking ہر ایپ لانچ کے لیے خود بخود سیشن بناتا ہے۔
iOS کے لیے SDK 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 خود بخود بٹن دبانے، اسکرین کی منتقلی، HTTP درخواستوں اور سسٹم اطلاعات کے لیے breadcrumbs ریکارڈ کرتا ہے۔ ڈویلپر کاروباری منطق کے لیے کسٹم breadcrumbs شامل کر سکتا ہے۔
ہر breadcrumb میں ایک ٹائم سٹیمپ، واقعہ کی قسم (navigation, http, ui, error)، زمرہ اور صوابدیدی ڈیٹا ہوتا ہے۔ جب خرابی واقع ہوتی ہے، پچھلے 2–5 منٹ (قابل ترتیب) کے تمام breadcrumbs واقعہ سے منسلک ہو جاتے ہیں۔ یہ سیاق و سباق اکثر خود اسٹیک ٹریس سے زیادہ اہم ہوتا ہے: ڈویلپر دیکھتا ہے کہ صارف نے پروڈکٹ منتخب کرنے کے بعد “ادائیگی کریں” پر کلک کیا، اور اس کے بعد کریش ہوا۔ ڈیفالٹ میں 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، صارف نام، ای میل) منسلک کرنے کی اجازت دیتا ہے۔ User context ایک ہی سیشن کے تمام واقعات کے ساتھ خود بخود بھیجا جاتا ہے، جس سے خرابیوں کو صارفین کے لحاظ سے گروپ کیا جا سکتا ہے اور یہ تعین کیا جا سکتا ہے کہ کسی مخصوص بگ سے کتنے صارف متاثر ہوئے۔ رازداری کی پالیسی پر عمل کرنا اور اگر ایپلیکیشن کی پالیسی اجازت نہیں دیتی تو ذاتی ڈیٹا نہ بھیجنا ضروری ہے۔
iOS اور Android کی پروڈکشن بلڈز میں، کوڈ عام طور پر کمپریسڈ یا مبہم ہوتا ہے۔ پروسیسنگ کے بغیر، خرابی کا اسٹیک “UserViewModel.fetchData()” کی بجائے “a.b()” جیسے ناقابل فہم ناموں پر مشتمل ہوگا۔ Source maps (JavaScript) اور debug symbols (iOS کے لیے dSYM، Android کے لیے ProGuard mapping) پڑھنے کے قابل اسٹیک کو بحال کرتے ہیں۔
Android کے لیے، Sentry ریلیز بلڈ کے دوران Gradle پلگ ان کے ذریعے خود بخود ProGuard mapping فائلیں اپ لوڈ کرتا ہے۔ iOS کے لیے dSYM فائلیں اپ لوڈ کرنے کی ضرورت ہے — Sentry آرکائیونگ کے دوران خودکار اپ لوڈ کے لیے ایک اسکرپٹ فراہم کرتا ہے۔ ڈیبگ علامات کے بغیر، Sentry میں خرابی کا اسٹیک ڈویلپر کے لیے بیکار ہوگا، اس لیے انہیں اپ لوڈ کرنے کا عمل CI/CD پائپ لائن کا لازمی مرحلہ ہونا چاہیے۔
ورژن 2020 کے بعد سے، Sentry میں کارکردگی کی نگرانی شامل ہے — تقسیم شدہ ٹریسنگ کے ساتھ لین دین کے عمل کے وقت کے میٹرکس کا جمع کرنا۔ Sentry میں Transaction کام کی ایک قابل پیمائش اکائی ہے: اسکرین لوڈ، API درخواست پر عمل، پس منظر کے کام کی پروسیسنگ۔ ہر لین دین میں ذیلی اسپین ہوتے ہیں جو دکھاتے ہیں کہ کن مخصوص مراحل میں سب سے زیادہ وقت لگا۔
Sentry میں کارکردگی کی نگرانی خرابی سے باخبر رہنے کے ساتھ مربوط ہے: اگر کوئی لین دین خرابی کے ساتھ ختم ہوتا ہے، تو متعلقہ اسپین کو “error” کی حیثیت سے نشان زد کیا جاتا ہے، اور ڈویلپر کارکردگی کے میٹرکس سے استثنیٰ کی تفصیلات تک جا سکتا ہے۔ Trace ID تمام واقعات (خرابیاں، لین دین، breadcrumbs) کو ایک ہی سیشن میں اختتام سے آخر تک تجزیہ کے لیے جوڑتا ہے، ایک ہی Sentry ڈیش بورڈ میں Issues اور Performance ٹیبز کے درمیان ہموار منتقلی فراہم کرتا ہے۔
Sentry Performance Benchmark (2024) کے مطابق، کارکردگی کی نگرانی فعال (10% نمونہ لینے کی شرح) والی ایپلیکیشن ڈیوائس پر 2–5% زیادہ ٹریفک اور 1–2% زیادہ CPU وسائل استعمال کرتی ہے۔ یہ اضافی بوجھ دستی پروفائلنگ کے مقابلے میں کارکردگی کی تشخیص کے وقت میں 70% کمی سے پورا ہوتا ہے۔
اکثر پوچھے گئے سوالات
Sentry زیادہ سیاق و سباق فراہم کرتا ہے: breadcrumbs، حسب ضرورت ڈیٹا، خرابیوں کو کارکردگی سے جوڑنا۔ Firebase Crashlytics ایک مفت ٹول ہے جس میں بنیادی کریش رپورٹنگ ہے لیکن تقسیم شدہ ٹریسنگ اور کسٹم breadcrumb آلات کی صلاحیت کے بغیر۔ 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 کے لیے، Composables میں Sentry سیاق و سباق منتقل کرنے کے لیے CompositionLocalProvider کے ذریعے حسب ضرورت انضمام درکار ہے۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں