مفاهیم کلیدی دیدبان

آشنایی با اصطلاحات اساسی، ساختار دسته‌بندی و داده‌های پایش سلامت در دیدبان.

۱. پروژه (Project)

پروژه در دیدبان نشان‌دهنده یک اپلیکیشن مستقل است که خطاهای آن پایش می‌شود. هر پروژه دارای کلیدهای دسترسی اختصاصی (API Keys) برای دریافت گزارش‌ها و آپلود فایل‌های نمادگذاری است.

۲. رخداد (Event)

یک رخداد، گزارش وقوع یک خطای مشخص روی دستگاه یک کاربر است. هر رخداد شامل اطلاعات کاملی از قبیل زمان وقوع، استک تریس فریم‌ها، مشخصات دستگاه (مدل، سیستم‌عامل، پردازنده)، نسخه برنامه و تاریخچه ردپاهای متنی (Breadcrumbs) می‌باشد.

۳. ایشو (Issue)

ایشو حاصل گروه‌بندی هوشمند رخدادهای مشابه است. اگر ۱۰۰۰ کاربر به دلیل یک خطای مشترک دچار کرش شوند، دیدبان ۱۰۰۰ رخداد را در قالب یک ایشو جمع‌آوری می‌کند تا تیم توسعه تنها با یک مورد کاری مشخص روبرو شود.

تفاوت ایشو (Issue) و رخداد (Event)
Issue #104 (Open)NullPointerException in CheckoutViewModel.kt:184fp_a89f92e4
evt_9842Samsung Galaxy S24 • Android 14 • 14:02
evt_9855Google Pixel 8 • Android 15 • 14:15
evt_9910Xiaomi 13 • Android 13 • 14:48

۴. اثرانگشت (Fingerprint)

اثرانگشت یک شناسه هش پایدار است که دیدبان با نرمال‌سازی فریم‌های استک و نوع استثنا تولید می‌کند. خطاهایی که فریم‌های اصلی و علل فنی یکسانی دارند، اثرانگشت یکسانی دریافت کرده و به همان ایشو متصل می‌شوند.

۵. نسخه اپلیکیشن (Release)

نسخه اپلیکیشن بر اساس شناسه پکیج و کد نسخه (Version Code در اندروید و Build Number در iOS) شناسایی می‌شود. نام نسخه (Version Name) صرفاً عنوان نمایشی برای توسعه‌دهنده است. نسخه‌ها امکان ردیابی اولین مشاهده و آخرین مشاهده هر خطا را فراهم می‌آورند.

ردپاها وقایع متنی مختصری هستند که توسعه‌دهنده به‌صورت دستی قبل از وقوع خطا ثبت می‌کند (مانند ورود به صفحه پرداخت یا انتخاب روش پرداخت). دیدبان حداکثر ۵۰ مورد اخیر را در یک بافر محدود ذخیره کرده و به گزارش کرش ضمیمه می‌کند.

۷. نمادگذاری و رمزگشایی (Symbolication)

فرآیند تبدیل آدرس‌های حافظه خام یا نام‌های مبهم‌شده کامپایلر به توابع، نام کلاس‌ها و شماره خطوط واقعی پروژه است:

  • R8 / ProGuard (Android JVM): Obfuscated classes retraced to Kotlin/Java sources.
  • Native Symbols (Android NDK): GNU Build IDs mapping native offsets to C/C++ source lines.
  • dSYM Bundles (iOS): Mach-O UUIDs mapping CPU program counters to Swift/Objective-C code.

۸. سشن و سلامت اپ (Session & App Health)

دیدبان با پایش سشن‌های فعال در پیش‌زمینه (Foreground Sessions)، نرخ سلامت برنامه (Crash-Free Sessions و Healthy Sessions) را به‌صورت دقیق و بدون عددسازی محاسبه می‌کند. این داده‌ها مخرج کسر آمارهای واقعی پایداری هستند.