پرش به مطلب اصلی

سلامت نسخه

خطاها می‌گویند چه چیزی خراب شده. سلامت نسخه می‌گوید این خرابی به چند نفر از کاربرانتان خورده و آیا نسخه‌ای که تازه منتشر کرده‌اید از قبلی بهتر است یا بدتر.

پایهٔ آن نشست است: SDK وقتی برنامه به پیش‌زمینه می‌آید (یا روی سرور، وقتی درخواستی شروع می‌شود) یک نشست باز می‌کند و آن را با یک وضعیت می‌بندد. ارورا نشست‌ها را به تفکیک نسخه در صفحهٔ نسخه‌ها تجمیع می‌کند.

پیش‌نیازها​

  1. release روی همهٔ رویدادها. SDKهای موبایل خودشان آن را می‌گذارند — <package>@<versionName>+<versionCode> در اندروید و <bundleId>@<version>+<build> در iOS. در بقیهٔ پلتفرم‌ها release را در مقداردهی SDK تعیین کنید.
  2. ردیابی نشست روشن باشد. در SDKهای موبایل (enableAutoSessionTracking) و SDK مرورگر پیش‌فرض روشن است؛ خاموشش نکنید.

نشست‌ها هرگز نمونه‌برداری نمی‌شوند، به سقف جهش نمی‌خورند و هزینه‌ای ندارند: کوچک‌اند، و نرخ بدون کرشی که روی نمونه حساب شود غلط است.

وضعیت نشست​

وضعیتمعنی
سالمعادی تمام شده، بدون خطا
خطاداردست‌کم یک خطا در طول نشست ثبت شده، اما برنامه کرش نکرده
کرش‌کردهبا یک کرش مدیریت‌نشده تمام شده
غیرعادیبدون اینکه SDK بتواند ببندَدش تمام شده — سیستم‌عامل برنامه را بسته، یا ANR در اندروید

معیارها​

معیارتعریف
نشست‌ها / کاربرانتعداد نشست‌های شروع‌شده و کاربران یکتا (شناسهٔ کاربر یا نصب در SDK)
نشست‌های بدون کرش1 − نشست‌های کرش‌کرده / نشست‌ها
کاربران بدون کرش1 − کاربرانی که نشست کرش‌کرده داشته‌اند / کاربران
نرخ ANRکاربرانی که ANR داشته‌اند / کاربران — نشست‌های اندرویدی که با anr_foreground یا anr_background به‌طور غیرعادی تمام شده‌اند
میزان پذیرش (adoption)سهم این نسخه از کل نشست‌ها در بازهٔ انتخاب‌شده
میانگین مدت نشستمیانگین طول نشست‌هایی که مدتشان را گزارش کرده‌اند
خطادار / کرش‌کرده / غیرعادیتعداد نشست‌ها در هر وضعیت

صفحهٔ نسخه‌ها​

نسخه‌ها در نوار کناری، نسخه‌هایی را که نشست فرستاده‌اند فهرست می‌کند؛ هرکدام با میزان پذیرش، نشست‌ها و کاربران بدون کرش، تعداد نشست و کاربر، تعداد خطادار/کرش‌کرده/غیرعادی، نرخ ANR و میانگین مدت، به‌علاوهٔ نموداری از بازهٔ انتخاب‌شده در طول زمان.

بر اساس محیط و بازهٔ زمانی فیلتر کنید — ۲۴ ساعت، ۷، ۱۴، ۳۰ یا ۹۰ روز. نسخهٔ تازه‌ای که نسبت به نسخهٔ قبل، کاربران بدون کرش کمتری دارد نشانهٔ آن است که باید سراغ خطاهایش بروید.

دورریخته‌شده توسط SDK​

SDKها گزارش کلاینت (client report) هم می‌فرستند: شمار چیزهایی که پیش از رسیدن به ارورا دور ریخته‌اند، همراه با دلیل. صفحهٔ نسخه‌ها آن‌ها را زیر عنوان دورریخته‌شده توسط SDK نشان می‌دهد:

دلیلعلت رایج
سرریز صفصف ارسال SDK پر بوده
before_sendتابع beforeSend شما null برگردانده
نرخ نمونه‌بردارینمونه‌برداری سمت کلاینت (sampleRate، tracesSampleRate)
محدودیت نرخبه SDK گفته شده عقب بکشد (429)
خطای شبکهرویداد تحویل داده نشده

بالا رفتن خطای شبکه در موبایل روی اتصال‌های ضعیف طبیعی است؛ اما بالا رفتن before_send یا سرریز صف معمولاً یعنی پیکربندی جایی تغییر کرده.

نشست‌های حالت سرور​

SDKهای سمت سرور (پایتون، Node.js و دیگران) برای هر درخواست یک نشست نمی‌فرستند. آن‌ها در حالت درخواست (request mode) دسته‌های نشست از پیش تجمیع‌شده می‌فرستند (آیتم پاکت sessions): در هر بازهٔ زمانی، چند درخواست سالم، خطادار یا کرش‌کرده تمام شده‌اند. ارورا آن‌ها را در همان جمع نشست‌ها و نرخ‌های بدون کرش حساب می‌کند. تجمیع‌ها مدت تک‌تک نشست‌ها را ندارند، پس فقط نشست‌های منفرد در میانگین مدت نشست اثر دارند.

عیب‌یابی​

نشانهعلت / راه‌حل
صفحهٔ نسخه‌ها خالی استهیچ نشستی نمی‌رسد — ردیابی نشست خاموش است یا release تعیین نشده
نرخ ANR در iOS همیشه صفر استنرخ ANR فقط مخصوص اندروید است؛ هنگ‌های iOS به‌صورت خطای App Hang نشان داده می‌شوند
یک بیلد با دو نسخه نمایش داده می‌شودرشتهٔ نسخه میان پلتفرم‌ها یا بیلدها فرق دارد — آن را یکدست نگه دارید