Bugsnag একটি অ্যাপ্লিকেশন ত্রুটি মনিটরিং এবং স্থিতিশীলতা প্ল্যাটফর্ম যা সম্পূর্ণ ডায়াগনস্টিক প্রসঙ্গসহ প্রোডাকশন পরিবেশে স্বয়ংক্রিয়ভাবে বাগ শনাক্ত করে, গ্রুপ করে এবং অগ্রাধিকার নির্ধারণ করে। Bugsnag Documentation, 2025 অনুসারে, Bugsnag 7,000-এর বেশি ক্লায়েন্টের জন্য মাসিক 6 বিলিয়ন ইভেন্ট প্রসেস করে, য其中有 Airbnb, Lyft, Slack এবং PagerDuty অন্তর্ভুক্ত।
মূল বিষয়
Bugsnag একটি অ্যাপ্লিকেশন স্থিতিশীলতা মনিটরিং প্ল্যাটফর্ম যা 2013 সালে প্রতিষ্ঠিত এবং 2019 সালে SmartBear দ্বারা অধিগ্রহণ করা হয়। Bugsnag এবং এর প্রতিযোগীদের মধ্যে প্রধান পার্থক্য হল শুধু ত্রুটির সংখ্যার পরিবর্তে স্থিতিশীলতার উপর একটি মূল পণ্য মেট্রিক হিসাবে ফোকাস করা। প্ল্যাটফর্মটি iOS, Android, React Native, Flutter, ওয়েব এবং ব্যাকএন্ড পরিষেবাগুলির জন্য একটি ইউনিফাইড ড্যাশবোর্ড সরবরাহ করে।
Bugsnag-এ প্রতিটি ত্রুটি প্রসঙ্গের ভিত্তিতে একটি স্বয়ংক্রিয় তীব্রতা (critical, warning, info) রেটিং পায়: একটি ক্র্যাশ হয়েছে কিনা, একটি পেমেন্ট ফাংশন প্রভাবিত হয়েছে কিনা, বা ত্রুটিটি অনেক ব্যবহারকারীর জন্য পুনরাবৃত্তি হচ্ছে কিনা। টিম শুধু বাগের একটি তালিকা দেখে না, বরং ব্যবসায়িক প্রভাবের ইঙ্গিতসহ একটি অগ্রাধিকারপ্রাপ্ত ব্যাকলগ দেখে।
SmartBear (2024) অনুসারে, Bugsnag ব্যবহারকারী টিমগুলি স্বয়ংক্রিয় ডুপ্লিকেট গ্রুপিং এবং সম্পূর্ণ ইভেন্ট প্রসঙ্গের কারণে গড় সমাধানের সময় 40% হ্রাস করে। প্ল্যাটফর্মটি ত্রুটিগুলি থেকে স্বয়ংক্রিয় টাস্ক তৈরির জন্য Slack, PagerDuty, Jira, GitHub এবং GitLab-এর সাথে সংহত হয়।
Stability Score হল Bugsnag-এর মূল মেট্রিক, যা ত্রুটিমুক্তভাবে সম্পন্ন সেশনের শতাংশ দেখায়। মানটি একটি সময়কালে মোট সেশনের মধ্যে ক্র্যাশ-মুক্ত সেশনের অনুপাত হিসাবে গণনা করা হয়। 99.9% স্কোর মানে হল 1,000টি সেশনের মধ্যে 1টিতে ত্রুটি রয়েছে।
Stability Score থ্রেশহোল্ডগুলি CI/CD-এর সাথে সংহত: যদি একটি নতুন সংস্করণ ডিপ্লয় করার পরে স্কোর নির্ধারিত সীমার নিচে নেমে যায় (যেমন 99.5%), Bugsnag স্বয়ংক্রিয়ভাবে রিলিজ ব্লক করে বা Slack-এ একটি গুরুতর সতর্কতা পাঠায়। Release health dashboard প্রতিটি অ্যাপ্লিকেশন সংস্করণের জন্য স্কোরের গতিশীলতা দেখায়, যা স্থিতিশীলতার উপর একটি নির্দিষ্ট পরিবর্তনের প্রভাব ট্র্যাক করতে দেয়।
Bugsnag তিনটি তীব্রতা স্তরসহ একটি স্বয়ংক্রিয় ত্রুটি শ্রেণিবদ্ধকরণ অ্যালগরিদম ব্যবহার করে। Critical — অ্যাপ্লিকেশন ক্র্যাশ, পেমেন্ট পরিস্থিতিতে ত্রুটি যা 5% এর বেশি ব্যবহারকারীকে প্রভাবিত করে। Warning — অ-প্রাণঘাতী ত্রুটি (handled exceptions) যা পৃথক বৈশিষ্ট্যগুলিকে প্রভাবিত করে। Info — লগ, কম-অগ্রাধিকার সতর্কতা। এই পদ্ধতি অ্যালার্ট ক্লান্তি প্রতিরোধ করে, যেখানে শত শত বিজ্ঞপ্তি সত্যিই গুরুত্বপূর্ণ সমস্যাগুলিতে ফোকাস করতে বাধা দেয়।
| তীব্রতা | উদাহরণ | কর্ম |
|---|---|---|
| Critical | অ্যাপ্লিকেশন চালু হওয়ার সময় ক্র্যাশ | তাৎক্ষণিক বিজ্ঞপ্তি |
| Warning | অবতার লোড করতে ত্রুটি | পরবর্তী স্প্রিন্টের জন্য Jira টাস্ক |
| Info | QR স্ক্যান টাইমআউট | বিজ্ঞপ্তি ছাড়া লগিং |
Bugsnag SDK ইনস্টল করতে 5 মিনিট সময় লাগে: একটি নির্ভরতা যোগ করা এবং একটি প্রজেক্ট API কী দিয়ে আরম্ভ করা। Bugsnag Android SDK Kotlin এবং Java সমর্থন করে, স্বয়ংক্রিয়ভাবে Java ব্যতিক্রম, ANR এবং সিগন্যালের মাধ্যমে Native (C/C++) ত্রুটিগুলি বাধা দেয়।
SDK Gradle-এর মাধ্যমে যোগ করা হয় এবং Application.onCreate-এ আরম্ভ করা হয়। Bugsnag স্বয়ংক্রিয়ভাবে ডিভাইস তথ্য সংগ্রহ করে: মডেল, OS সংস্করণ, খালি মেমরি, ব্যাটারি স্তর। Auto-notify ডিফল্টরূপে সক্রিয় এবং সমস্ত অনহ্যান্ডল্ড ব্যতিক্রম Bugsnag সার্ভারে পাঠায়।
import com.bugsnag.android.Bugsnag
import com.bugsnag.android.Configuration
class App : Application() {
override fun onCreate() {
super.onCreate()
val config = Configuration("YOUR_API_KEY")
config.autoTrackSessions = true
config.launchDurationMillis = 5_000
Bugsnag.start(this, config)
}
}
কোডটি স্বয়ংক্রিয় সেশন ট্র্যাকিং এবং সর্বোচ্চ 5 সেকেন্ড স্টার্টআপ সময়সহ Bugsnag SDK আরম্ভ করে। যদি অ্যাপ্লিকেশনটি এই সময়ের মধ্যে চালু না হয়, Bugsnag একটি সতর্কতা হিসাবে "slow launch" ইভেন্ট রেকর্ড করে।
Bugsnag iOS SDK Swift এবং Objective-C সমর্থন করে, NSException, Mach ব্যতিক্রম (SIGABRT, SIGSEGV) এবং অপারেটিং সিস্টেম সিগন্যাল বাধা দেয়। SDK iOS 11+ এবং SwiftUI-এর সাথে সামঞ্জস্যপূর্ণ, সমস্ত UI ইভেন্টের জন্য স্বয়ংক্রিয়ভাবে breadcrumbs তৈরি করে: ট্যাপ, ট্রানজিশন, জেসচার।
import Bugsnag
class AppDelegate: UIResponder, UIApplicationDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions options: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
Bugsnag.start(withApiKey: "YOUR_API_KEY")
// অতিরিক্ত কনফিগারেশন
return true
}
}
Swift কোড ন্যূনতম কনফিগারেশনসহ Bugsnag শুরু করে। সমস্ত অনহ্যান্ডল্ড ব্যতিক্রম এবং ক্র্যাশ সম্পূর্ণ ডিভাইস প্রসঙ্গ এবং কল স্ট্যাকসহ স্বয়ংক্রিয়ভাবে Bugsnag ড্যাশবোর্ডে পাঠানো হয়।
Bugsnag-এ Breadcrumbs হল একটি ত্রুটির আগের ইভেন্টগুলির একটি কাঠামোবদ্ধ লগ। প্রতিটি breadcrumb-এ একটি টাইমস্ট্যাম্প, ধরন (navigation, request, state, error, manual) এবং নির্বিচারে মেটাডেটা থাকে। Bugsnag স্বয়ংক্রিয়ভাবে iOS এবং Android-এ UI ইভেন্ট, অ্যাপ্লিকেশন অবস্থা পরিবর্তন (background, foreground) এবং নেটওয়ার্ক অনুরোধের জন্য breadcrumbs রেকর্ড করে।
ডেভেলপাররা ব্যবসায়িক যুক্তির জন্য কাস্টম breadcrumbs যোগ করতে পারে: "ব্যবহারকারী কার্টে আইটেম যোগ করেছে", "অর্ডার তৈরি অনুরোধ পাঠানো হয়েছে"। যখন একটি ত্রুটি ঘটে, শেষ 30 সেকেন্ডের সমস্ত breadcrumbs ইভেন্টের সাথে সংযুক্ত হয়। Bugsnag "state"-ও সমর্থন করে — একটি নির্বিচারে ডেটা অভিধান যা সমস্ত সেশন ত্রুটির সাথে প্রেরিত হয়।
Bugsnag.leaveBreadcrumb(
message = "Order created",
metadata = mapOf(
"order_id" to "ORD-12345",
"total" to "49.99"
),
type = BreadcrumbType.STATE
)
Bugsnag.setExtraData(
"user_tier", "premium"
)
কোডটি অর্ডার তৈরি সম্পর্কে breadcrumb রেখে যায় এবং ব্যবহারকারীর প্ল্যান সম্পর্কে অতিরিক্ত তথ্য সেট করে। যখন এই সেশনে একটি ত্রুটি ঘটে, Bugsnag অর্ডার নম্বর এবং ব্যবহারকারীর ধরনসহ প্রসঙ্গ সংযুক্ত করে।
Bugsnag স্বয়ংক্রিয়ভাবে সেশন গণনা করে — প্রতিটি অ্যাপ্লিকেশন লঞ্চ একটি নতুন সেশন হিসাবে বিবেচিত হয়। ত্রুটিসহ সেশনের মোট সেশনের অনুপাত Stability Score গঠন করে। Session tracking মূল্য নির্ধারণকে প্রভাবিত করে: Bugsnag ট্র্যাক করা সেশনের সংখ্যার ভিত্তিতে লাইসেন্স করা হয়, ত্রুটির পরিমাণের ভিত্তিতে নয়, যা এটিকে Sentry এবং প্রতিযোগীদের প্রতি-ইভেন্ট মূল্য নির্ধারণ মডেল থেকে আলাদা করে।
Release tracking একটি প্রক্রিয়া যা প্রতিটি ত্রুটিকে একটি নির্দিষ্ট অ্যাপ্লিকেশন সংস্করণ এবং রিপোজিটরি কমিটের সাথে লিঙ্ক করে। Bugsnag স্বয়ংক্রিয়ভাবে Info.plist (iOS) বা build.gradle (Android) থেকে সংস্করণ শনাক্ত করে এবং ড্যাশবোর্ডে সংস্করণ অনুসারে ত্রুটি গণনা প্রদর্শন করে। এটি তাৎক্ষণিকভাবে দেখতে দেয় যে একটি সমস্যা সর্বশেষ রিলিজ দ্বারা প্রবর্তিত হয়েছে কিনা।
যদি সংস্করণ 2.4.1 ডিপ্লয় করার পরে গুরুতর ত্রুটির সংখ্যা 2.4.0-এর তুলনায় 3 গুণ বেড়ে যায়, Bugsnag এই সংস্করণটিকে "অস্থির" হিসাবে চিহ্নিত করে এবং একটি সতর্কতা পাঠায়। CI/CD ইন্টিগ্রেশন স্টেজিং বা প্রোডাকশনে বিল্ড প্রমোশন ব্লক করার অনুমতি দেয় যদি Stability Score থ্রেশহোল্ডের নিচে নেমে যায়। Jenkins, GitHub Actions এবং GitLab CI-এর প্লাগইনগুলি পাইপলাইনে স্থিতিশীলতা মেট্রিক পাঠায়।
Bugsnag Stability Benchmark (2024) অনুসারে, মোবাইল অ্যাপ্লিকেশনে 68% ত্রুটি নতুন সংস্করণ দ্বারা প্রবর্তিত হয়, দীর্ঘদিনের বাগ নয়। Release tracking ডিপ্লয়মেন্টের পরে রিগ্রেশন শনাক্তকরণ সময় ঘন্টা থেকে মিনিটে কমিয়ে আনে।
এরর মনিটরিং বাজারে তিনটি প্রধান খেলোয়াড় রয়েছে: Bugsnag, Sentry এবং Firebase Crashlytics। Bugsnag সেশন-ভিত্তিক মূল্য নির্ধারণ মডেল (ইভেন্টের পরিবর্তে), Stability Score-এ ফোকাস এবং স্বয়ংক্রিয় তীব্রতা অগ্রাধিকার দিয়ে আলাদা। Sentry distributed tracingসহ গভীর পারফরম্যান্স মনিটরিং অফার করে এবং ওপেন সোর্স। Crashlytics হল Firebase ইকোসিস্টেমে সংহত বেসিক বৈশিষ্ট্যসহ একটি বিনামূল্যের সমাধান।
| বৈশিষ্ট্য | Bugsnag | Sentry | Crashlytics |
|---|---|---|---|
| মূল্য (শুরু) | 5,000 সেশন পর্যন্ত বিনামূল্যে | 5,000 ইভেন্ট পর্যন্ত বিনামূল্যে | বিনামূল্যে |
| পারফরম্যান্স মনিটরিং | সীমিত | distributed tracingসহ সম্পূর্ণ | না |
| Flutter-এর জন্য SDK | হ্যাঁ | হ্যাঁ | সীমিত |
| সেল্ফ-হোস্টেড | না | হ্যাঁ (ওপেন সোর্স) | না |
| Stability Score | হ্যাঁ (মূল মেট্রিক) | না | না |
সরঞ্জামগুলির মধ্যে পছন্দ অগ্রাধিকারের উপর নির্ভর করে: যদি মূল মেট্রিক প্রোডাকশনে অ্যাপ্লিকেশন স্থিতিশীলতা হয়, Bugsnag সবচেয়ে স্বজ্ঞাত মেট্রিক সরবরাহ করে। যদি distributed tracingসহ গভীর পারফরম্যান্স বিশ্লেষণের প্রয়োজন হয় — Sentry। Google ইকোসিস্টেম ইন্টিগ্রেশনসহ বিনামূল্যের বেসিক মনিটরিংয়ের জন্য — Crashlytics।
সচরাচর জিজ্ঞাসিত প্রশ্ন
অ্যালগরিদম তিনটি বিষয় বিবেচনা করে: ব্যতিক্রমের ধরন (ক্র্যাশ বা handled), প্রভাবিত ব্যবহারকারীর সংখ্যা এবং পরিস্থিতির প্রসঙ্গ। Critical তীব্রতা বরাদ্দ করা হয় যদি ত্রুটিটি মূল স্ক্রিনে বা পেমেন্ট ফ্লোতে ঘটে এবং 1% এর বেশি ব্যবহারকারীকে প্রভাবিত করে। ডেভেলপার API বা SDK কনফিগারেশনের মাধ্যমে ম্যানুয়ালি তীব্রতা ওভাররাইড করতে পারে।
হ্যাঁ, Bugsnag React Native (নতুন আর্কিটেকচার সমর্থনসহ) এবং Flutter (Dart 3.x-এর সাথে সামঞ্জস্যপূর্ণ) এর জন্য SDK সরবরাহ করে। উভয় SDK নেভিগেশন, নেটওয়ার্ক অনুরোধ এবং অ্যাপ্লিকেশন অবস্থার জন্য স্বয়ংক্রিয় breadcrumbs সংগ্রহ, পাশাপাশি ব্যবসায়িক যুক্তির জন্য কাস্টম ইন্সট্রুমেন্টেশন সমর্থন করে।
হ্যাঁ, Bugsnag Jira-র সাথে দ্বি-মুখী ইন্টিগ্রেশন সরবরাহ করে: একটি নতুন ত্রুটি স্বয়ংক্রিয়ভাবে Jira-তে একটি টাস্ক তৈরি করতে পারে, এবং Jira-তে টাস্ক বন্ধ করলে Bugsnag-এ ত্রুটিটি "সমাধান করা" অবস্থায় চলে যায়। Jira Cloud এবং Jira Server (Jira Connect-এর মাধ্যমে) সমর্থিত।
Bugsnag SDK রিলিজ বিল্ডে APK/IPA আকারে প্রায় 1.5 MB যোগ করে। এটি Sentry (প্রায় 2 MB) থেকে কম কিন্তু Firebase Crashlytics (প্রায় 0.8 MB) থেকে বেশি। কম্পাইলেশন গতি বাড়াতে ডিবাগ বিল্ড থেকে SDK বাদ দেওয়ার পরামর্শ দেওয়া হয়, শুধুমাত্র পরীক্ষা এবং রিলিজ কনফিগারেশনের জন্য রাখুন।
হ্যাঁ, Bugsnag ব্যাকএন্ড ভাষা সমর্থন করে: Ruby, Python, Node.js, Java, .NET, Go, PHP। ব্যাকএন্ড ত্রুটিগুলি পরিষেবা অনুসারে গ্রুপ করে মোবাইল ত্রুটির মতো একই ড্যাশবোর্ডে প্রদর্শিত হয়। এটি এন্ড-টু-এন্ড স্থিতিশীলতা ট্র্যাক করতে দেয়: যদি API ডাউন হয়, ডেভেলপার দেখতে পারে সমস্যাটি ক্লায়েন্ট-সাইড নাকি সার্ভার-সাইড।
সারাংশ
আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব
IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।
আরও পড়ুন