Sentry একটি রিয়েল-টাইম ত্রুটি ট্র্যাকিং এবং অ্যাপ্লিকেশন পারফরম্যান্স মনিটরিং প্ল্যাটফর্ম যা ডেভেলপারদের প্রতিটি ক্র্যাশের পূর্ণ প্রসঙ্গ প্রদান করে। Sentry Documentation, 2025 অনুযায়ী, Sentry প্রতিদিন ১০ বিলিয়নেরও বেশি ইভেন্ট প্রক্রিয়া করে, যা iOS, Android, ওয়েব এবং ব্যাকএন্ডের জন্য ৯০+ ভাষা এবং ফ্রেমওয়ার্কের সাথে একীকরণ প্রদান করে।
মূল বিষয়
Sentry একটি ওপেন-সোর্স ক্র্যাশ রিপোর্টিং এবং পারফরম্যান্স মনিটরিং প্ল্যাটফর্ম, যা ২০১২ সালে প্রতিষ্ঠিত। এটি ডেভেলপারদের সম্পূর্ণ ডায়াগনস্টিক প্রসঙ্গসহ রিয়েল-টাইমে ত্রুটি বিজ্ঞপ্তি পেতে সক্ষম করে: কল স্ট্যাক, ক্র্যাশের মুহূর্তে ভেরিয়েবলের মান, ত্রুটির আগে ব্যবহারকারীর ক্রিয়াক্রম এবং পরিবেশের অবস্থা।
এগ্রিগেটেড ক্র্যাশ রিপোর্টিং সার্ভিস (Google Play Console, App Store Connect) থেকে ভিন্ন, যা কেবল পরিসংখ্যান এবং বেসিক গ্রাফ প্রদান করে, Sentry প্রতিটি ইভেন্ট আলাদাভাবে ত্রুটির ধরন অনুযায়ী গ্রুপিং এবং অ্যাপ সংস্করণ অনুযায়ী ফিল্টার করার ক্ষমতা সহ দেখায়। Sentry-তে Issue হল একই স্ট্যাক ট্রেসযুক্ত ইভেন্টের একটি গ্রুপ, যা আপনাকে হাজার হাজার অভিন্ন ক্র্যাশে ডুবে না থেকে পূর্ণ প্রসঙ্গসহ মূল কারণ ঠিক করতে মনোযোগ দিতে দেয়।
Sentry (2025) অনুযায়ী, Sentry SDK বাস্তবায়নের পর গড় ত্রুটি সনাক্তকরণ সময় ৩০ মিনিট থেকে ৩০ সেকেন্ডে কমে যায়, এবং স্বয়ংক্রিয় breadcrumbs এবং পরিবেশগত প্রসঙ্গের কারণে ডায়াগনস্টিক সময় ৬০% কমে যায়। প্ল্যাটফর্মটি সারা বিশ্বে ১০০,০০০-এরও বেশি সংস্থা ব্যবহার করে, যার মধ্যে Airbnb, Microsoft, Instagram এবং PayPal অন্তর্ভুক্ত, এবং প্রতিদিন বিলিয়ন ইভেন্ট প্রক্রিয়া করে।
Sentry সিস্টেম তিনটি প্রধান উপাদান নিয়ে গঠিত: অ্যাপ্লিকেশন পাশে SDK, Relay (প্রক্সি সার্ভার) এবং ইভেন্ট প্রক্রিয়াকরণ ব্যাকএন্ড। Sentry SDK হল একটি লাইব্রেরি যা অ্যাপ্লিকেশনে এম্বেড করা হয়, যা ব্যতিক্রমগুলি আটকায়, প্রসঙ্গ সংগ্রহ করে এবং JSON/HTTPS প্রোটোকলের মাধ্যমে Relay-তে ইভেন্ট পাঠায়।
Relay হল একটি মধ্যবর্তী সার্ভার যা কোম্পানির পরিকাঠামোতে স্থাপন করা যেতে পারে। এটি SDK থেকে ইভেন্ট গ্রহণ করে, নিয়ম অনুযায়ী ফিল্টার করে (PII ডেটা, অপ্রয়োজনীয় ইভেন্ট), বাফার করে এবং Sentry SaaS বা স্ব-হোস্টেড ইনস্ট্যান্সে ফরোয়ার্ড করে। Relay কম লেটেন্সি নিশ্চিত করে — সাধারণ ইভেন্ট প্রাপ্তির সময় ৫০০–১৫০০ মিলিসেকেন্ড।
Sentry সার্ভারে পাঠানোর আগে অনাকাঙ্ক্ষিত ইভেন্ট বাতিলের জন্য বিল্ট-ইন ফিল্টার প্রদান করে: টেস্ট পরিবেশ থেকে ত্রুটি, পুরানো অ্যাপ সংস্করণ থেকে ত্রুটি, একই ফিঙ্গারপ্রিন্টের ডুপ্লিকেট ইভেন্ট। Filtering একটি সাধারণ প্রোডাকশন প্রজেক্টে ৭০% পর্যন্ত ডেটা ভলিউম বাঁচায়, যা খরচ এবং ডিভাইস যোগাযোগ চ্যানেলের লোড কমায়।
মোবাইল প্ল্যাটফর্মের জন্য Sentry SDK ইনস্টল করতে ৫–১০ মিনিট সময় লাগে এবং 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 ২০% সেশনের জন্য পারফরম্যান্স ট্রেসিং সক্রিয় করে, enableAutoSessionTracking প্রতিটি অ্যাপ চালুর জন্য স্বয়ংক্রিয়ভাবে সেশন তৈরি করে।
iOS-এর জন্য SDK CocoaPods, Swift Package Manager এবং Carthage সমর্থন করে। ইনস্টলেশনের পর, SDK স্বয়ংক্রিয়ভাবে NSException, সিগন্যাল (SIGABRT, SIGSEGV) এবং Swift ত্রুটি আটকায়। Sentry Cocoa SDK iOS ১২+ এবং macOS ১০.১৩+ এর সাথে সামঞ্জস্যপূর্ণ, 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), বিভাগ এবং নির্বিচার ডেটা থাকে। যখন ত্রুটি ঘটে, গত ২–৫ মিনিটের (কনফিগারযোগ্য) সমস্ত breadcrumbs ইভেন্টের সাথে সংযুক্ত হয়। এই প্রসঙ্গ প্রায়শই স্ট্যাক ট্রেসের চেয়ে বেশি গুরুত্বপূর্ণ: ডেভেলপার দেখে যে ব্যবহারকারী পণ্য নির্বাচনের পর “পেমেন্ট”-এ ক্লিক করেছে, এবং তারপরই ক্র্যাশ ঘটেছে। ডিফল্টভাবে সর্বোচ্চ breadcrumbs-এর সংখ্যা ২০০, তারপর সবচেয়ে পুরানো রেকর্ড স্বয়ংক্রিয়ভাবে মুছে ফেলা হয়।
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-তে দেখবে যে ব্যবহারকারী ১৯.৯৯ 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 পাইপলাইনের একটি বাধ্যতামূলক পদক্ষেপ হওয়া উচিত।
সংস্করণ ২০২০ থেকে, Sentry-তে পারফরম্যান্স মনিটরিং অন্তর্ভুক্ত রয়েছে — distributed tracing-সহ লেনদেন নির্বাহ সময় মেট্রিক সংগ্রহ। Sentry-তে Transaction হল কাজের একটি পরিমাপযোগ্য একক: স্ক্রিন লোড, API অনুরোধ নির্বাহ, ব্যাকগ্রাউন্ড টাস্ক প্রক্রিয়াকরণ। প্রতিটি লেনদেনে চাইল্ড স্প্যান থাকে যা দেখায় কোন নির্দিষ্ট ধাপে সবচেয়ে বেশি সময় লেগেছে।
Sentry-তে পারফরম্যান্স মনিটরিং ত্রুটি ট্র্যাকিং-এর সাথে একীভূত: যদি একটি লেনদেন ত্রুটির সাথে শেষ হয়, সংশ্লিষ্ট স্প্যানটি “error” অবস্থা দ্বারা চিহ্নিত হয়, এবং ডেভেলপার পারফরম্যান্স মেট্রিক থেকে ব্যতিক্রমের বিবরণে যেতে পারে। Trace ID সমস্ত ইভেন্ট (ত্রুটি, লেনদেন, breadcrumbs) একটি একক সেশনে শেষ-থেকে-শেষ বিশ্লেষণের জন্য সংযুক্ত করে, একটি একক Sentry ড্যাশবোর্ডে Issues এবং Performance ট্যাবের মধ্যে নির্বিঘ্ন স্থানান্তর প্রদান করে।
Sentry Performance Benchmark (2024) অনুযায়ী, পারফরম্যান্স মনিটরিং সক্ষম (১০% নমুনা হার) অ্যাপ্লিকেশন ডিভাইসে ২–৫% বেশি ট্রাফিক এবং ১–২% বেশি CPU সম্পদ ব্যবহার করে। এই ওভারহেড ম্যানুয়াল প্রোফাইলিংয়ের তুলনায় পারফরম্যান্স ডায়াগনোসিস সময়ে ৭০% হ্রাস দ্বারা পুষিয়ে নেওয়া হয়।
সচরাচর জিজ্ঞাসা
Sentry আরও প্রসঙ্গ প্রদান করে: breadcrumbs, কাস্টম ডেটা, কর্মক্ষমতার সাথে ত্রুটির সংযোগ। Firebase Crashlytics বেসিক ক্র্যাশ রিপোর্টিং সহ একটি বিনামূল্যের টুল কিন্তু distributed tracing এবং কাস্টম breadcrumb ইনস্ট্রুমেন্টেশনের ক্ষমতা ছাড়া। Sentry গভীর ডায়াগনস্টিক প্রয়োজন এমন প্রকল্পগুলির জন্য উপযুক্ত।
Sentry প্রতি মাসে ৫,০০০ ইভেন্ট (ত্রুটি + লেনদেন) সহ একটি বিনামূল্যের প্ল্যান অফার করে। পরিশোধিত Team প্ল্যানের মূল্য প্রতি ব্যবহারকারী প্রতি মাসে $২৬ এবং এতে ১০০,০০০ ইভেন্ট অন্তর্ভুক্ত। বড় প্রকল্পের জন্য, সীমাহীন ভলিউম এবং কাস্টম মূল্য সহ Business প্ল্যান উপলব্ধ।
Sentry একটি বিল্ট-ইন Data Scrubbing ব্যবস্থা প্রদান করে: সংরক্ষণের আগে ইভেন্ট থেকে ইমেল, IP ঠিকানা, ক্রেডিট কার্ড এবং অন্যান্য PII ডেটা স্বয়ংক্রিয়ভাবে মুছে ফেলা। স্ক্রাবিং নিয়ম ওয়েব ইন্টারফেস বা Relay কনফিগারেশনে regex সমর্থন সহ কনফিগার করা হয়। SDK স্তরে স্ক্রাবিং সক্রিয় করার পরামর্শ দেওয়া হয় যাতে গোপনীয় ডেটা ব্যবহারকারীর ডিভাইস ছেড়ে না যায়।
হ্যাঁ, Sentry-র একটি সম্পূর্ণ ওপেন-সোর্স স্ব-হোস্টেড সংস্করণ রয়েছে। Self-hosted Sentry Docker Compose-এর মাধ্যমে স্থাপন করা হয় এবং SaaS সংস্করণের সমস্ত বৈশিষ্ট্য অন্তর্ভুক্ত করে। ন্যূনতম সার্ভার কনফিগারেশন প্রয়োজন: ৪ vCPU, ১৬ GB RAM, ইভেন্ট সংরক্ষণের জন্য ১০০ GB ডিস্ক স্থান।
হ্যাঁ, Sentry SDK সম্পূর্ণরূপে SwiftUI (iOS ১৩+) এবং Jetpack Compose (Android) সমর্থন করে। SwiftUI-র জন্য, SDK স্বয়ংক্রিয়ভাবে রেন্ডার সময় পরিমাপ-সহ NavigationView এবং List-এর জন্য লেনদেন তৈরি করে। Jetpack Compose-এর জন্য, Composables-এ Sentry প্রসঙ্গ পাস করতে CompositionLocalProvider-এর মাধ্যমে কাস্টম একীকরণ প্রয়োজন।
সারসংক্ষেপ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন