سلامت نسخه
خطاها میگویند چه چیزی خراب شده. سلامت نسخه میگوید این خرابی به چند نفر از کاربرانتان خورده و آیا نسخهای که تازه منتشر کردهاید از قبلی بهتر است یا بدتر.
پایهٔ آن نشست است: SDK وقتی برنامه به پیشزمینه میآید (یا روی سرور، وقتی درخواستی شروع میشود) یک نشست باز میکند و آن را با یک وضعیت میبندد. ارورا نشستها را به تفکیک نسخه در صفحهٔ نسخهها تجمیع میکند.
پیشنیازها
releaseروی همهٔ رویدادها. SDKهای موبایل خودشان آن را میگذارند —<package>@<versionName>+<versionCode>در اندروید و<bundleId>@<version>+<build>در iOS. در بقیهٔ پلتفرمهاreleaseرا در مقداردهی SDK تعیین کنید.- ردیابی نشست روشن باشد. در 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 نشان داده میشوند |
| یک بیلد با دو نسخه نمایش داده میشود | رشتهٔ نسخه میان پلتفرمها یا بیلدها فرق دارد — آن را یکدست نگه دارید |