| انتخاب پلاتفرم: | iOS+ Android Web Flutter Unity |
در کنسول Firebase (DevOps و تعامل > داشبورد Crashlytics)، میتوانید روی مشکلی کلیک کنید و گزارش رویداد دقیقی دریافت کنید. میتوانید این گزارشها را سفارشیسازی کنید و مجموعه دورسنجیتان را مدیریت کنید تا به شما کمک کند آنچه را در برنامه وب شما اتفاق میافتد بهتر درک کنید:
- گزارش کردن استثناهای رسیدگیشده بهصورت برنامهنویسی
- افزودن کلیدهای سفارشی
- پاکسازی اجباری سوابق دورسنجی برای روالهای کوتاهمدت
- پیکربندی نرخ نمونهبرداری
- غیرفعال یا فعال کردن جمعآوری دورسنجی
گزارش کردن استثناهای رسیدگیشده بهصورت برنامهنویسیشده
میتوانید استثناهای رسیدگیشده را بهصورت دستی بااستفاده از recordError ضبط کنید. خطاهای مسیریابی و استثناهای گرفتهنشده بهطور خودکار توسط مرزهای خطای چارچوب شما ضبط میشوند.
در اینجا نحوه ردیابی شیوع خرابی و مشخصههای عیبیابی در بین کاربران شما آورده شده است:
import { recordError, getCrashlytics } from '@firebase/crashlytics';
import { app } from './lib/firebase';
const crashlytics = getCrashlytics(app);
async function submitPaymentForm() {
try {
await api.processTransaction();
} catch (error) {
// Manually record handled exceptions with diagnostic context
recordError(crashlytics, error, {
userTier: 'Premium Gold',
checkoutStage: 'BillingAddressVerification',
transactionCode: 'tx_8412_err',
retryAttempts: 2
});
showFallbackBanner(error);
}
}
افزودن کلیدهای سفارشی
کلیدهای فراداده سفارشی به شما کمک میکنند تا وضعیت خاص برنامه یا گردش کار کاربر را که منجر به ازکارافتادگی شده است درک کنید.
میتوانید فعالیتهای کاربر، وضعیتهای جلسه، و جزئیات عیبیابی را مستقیماً بهعنوان
ویژگیهای سفارشی مقدار کلید بااستفاده از پارامتر فراداده اختیاری هنگام فراخوانی
recordError ثبت کنید:
import { recordError, getCrashlytics } from '@firebase/crashlytics';
import { app } from './lib/firebase'; // Shared initialization script
const crashlytics = getCrashlytics(app);
// Pass custom key-value diagnostic metadata within recordError
recordError(crashlytics, error, {
userTier: 'Premium Gold',
checkoutStage: 'BillingAddressVerification',
transactionCode: 'tx_8412_err',
retryAttempts: 2,
breadcrumb: 'User opened shopping cart',
lastAction: 'Click Checkout Button'
});
این مشخصههای سفارشی در گزارش استثنا نگهداری میشوند و در برگه کلیدها در نمای مشکل Crashlytics داشبورد ظاهر میشوند.
پاکسازی اجباری سوابق دورسنجی
بهطور پیشفرض، موتور دورسنجی وب گزارشها را در بخشهای حافظه دستهبندی میکند تا عمر باتری، عملکرد واحد پردازش مرکزی، و پهنای باند شبکه را حفظ کند. بااینحال، برای محیطهای اجرای کوتاهمدت، گزارشها باید بلافاصله قبلاز نابود شدن بافت اجرا بارگذاری شوند.
میتوانید از فرمان ناهمگام flush برای ارسال فوری همه خطاهای صفبندیشده به
باطن استفاده کنید:
import { recordError, flush, getCrashlytics } from '@firebase/crashlytics';
import { app } from './lib/firebase';
const crashlytics = getCrashlytics(app);
async function handleApplicationCrash(error: Error) {
// Capture the error with immediate priority
recordError(crashlytics, error, { priority: 'IMMEDIATE' });
// Force an immediate upload before the process terminates or reloads
await flush(crashlytics);
// Safe to terminate or refresh the current execution context
window.location.reload();
}
پیکربندی نرخ نمونهبرداری
اگر برای کنترل حجم و هزینه دورسنجی، نسبتی از جلسههای کاربر را نمونهبرداری میکنید، میتوانید نمونهبرداری را بااستفاده از هرکدام از گزینههای زیر پیکربندی کنید:
- گزینه ۱ (توصیهشده): پیکربندی نرخ نمونهبرداری در کنسول Firebase
- گزینه ۲: تنظیم نرخ نمونهبرداری بااستفاده از Firebase Telemetry Admin API
گزینه ۱ (توصیهشده): پیکربندی نرخ نمونهبرداری در کنسول Firebase
در کنسول Firebase، به داشبورد DevOps و تعامل > Crashlytics بروید.
برنامه وب خود را از انتخابگر کرکرهای در بالای صفحه انتخاب کنید.
روی پیکربندی نمونهگیری در گوشه بالا سمت راست داشبورد کلیک کنید.
درصد نرخ نمونهبرداری (بین
0%و100%) را برای کنترل درصد رویدادها و جلسههای جمعآوریشده از کارخواهها تنظیم کنید.
گزینه ۲: تنظیم کردن نرخ نمونهبرداری بااستفاده از Firebase Telemetry Admin API
میتوانید از Firebase Telemetry Admin API
(firebasetelemetryadmin.googleapis.com/v1alpha) برای مدیریت تنظیمات جمعآوری دورسنجی
برای برنامههای Firebase خود استفاده کنید.
متغیرهای الزامی زیر را در پایانه خود پیکربندی کنید:
PROJECT_ID="PROJECT_ID" LOCATION="LOCATION" # for example, global APP_ID="FIREBASE_APP_ID" # for example, 1:1234567890:web:abcdef123456 TOKEN=$(gcloud auth application-default print-access-token)CONFIG_NAME خود را پیدا کنید و سپس آن را بهعنوان متغیر در پایانه خود پیکربندی کنید:
تنظیمات دورسنجی بااستفاده از منبع
Configمدیریت میشود، بنابراین باید CONFIG_NAME خاصی را برای برنامه وب خود پیدا کنید.میتوانید فهرست پیکربندیهای موجود در پروژه خود را ببینید و براساس FIREBASE_APP_ID فیلتر کنید. پرچمهای
curl -Gو--data-urlencodeتضمین میکنند که رشته فیلتر AIP-160 بهدرستی کدبندی نشانی وب شده است:curl -G \ -H "Authorization: Bearer $TOKEN" \ --data-urlencode "filter=app_id=\"${APP_ID}\"" \ "https://firebasetelemetryadmin.googleapis.com/v1alpha/projects/${PROJECT_ID}/locations/${LOCATION}/configs"در پاسخ JSON، فیلد
nameرا برای برنامهتان (projects/PROJECT_ID/locations/LOCATION/configs/<CONFIG_ID>) پیدا کنید، و سپس آن را بهعنوان متغیرCONFIG_NAMEتنظیم کنید:CONFIG_NAME="CONFIG_NAME"
نرخ نمونهبرداری را تنظیم کنید:
برای تنظیم نرخ نمونهبرداری، از روش
PATCHبرای بهروزرسانی فیلدsampling_rateاستفاده کنید. بایدupdateMask=sampling_rateرا در پارامترهای پُرسمان مشخص کنید. نرخ نمونهبرداری مقدار دوبرابری است که نشاندهنده درصد جلسههایی است که باید جمعآوری شود (برای مثال،0.25برای ۲۵٪):# Example: Set sampling rate to 25% curl -X PATCH \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d "{ \"sampling_rate\": 0.25, \"app_id\": \"${APP_ID}\" }" \ "https://firebasetelemetryadmin.googleapis.com/v1alpha/${CONFIG_NAME}?updateMask=sampling_rate"
غیرفعال یا فعال کردن جمعآوری دورسنجی
بهطور پیشفرض، وقتی Crashlytics را برای برنامه وب خود راهاندازی میکنید، جمعآوری دورسنجی فعال میشود. اگر لازم است جمعآوری دورسنجی را بهطور پویا پساز نصب کردن کیت توسعه نرمافزار Crashlytics غیرفعال یا دوباره فعال کنید، میتوانید نقاط پایانی مجموعه را بااستفاده از Firebase Telemetry Admin API (firebasetelemetryadmin.googleapis.com/v1alpha) مدیریت کنید.
قبلاز اینکه بتوانید دورسنجی را غیرفعال یا فعال کنید، باید متغیرهای زیر را تنظیم کنید:
متغیرهای الزامی زیر را در پایانه خود پیکربندی کنید:
PROJECT_ID="PROJECT_ID" LOCATION="LOCATION" # for example, global APP_ID="FIREBASE_APP_ID" # for example, 1:1234567890:web:abcdef123456 TOKEN=$(gcloud auth application-default print-access-token)CONFIG_NAME خود را پیدا کنید و سپس آن را بهعنوان متغیر در پایانه خود پیکربندی کنید:
تنظیمات دورسنجی بااستفاده از منبع
Configمدیریت میشود، بنابراین باید CONFIG_NAME خاصی را برای برنامه وب خود پیدا کنید.میتوانید فهرست پیکربندیهای موجود در پروژه خود را ببینید و براساس FIREBASE_APP_ID فیلتر کنید. پرچمهای
curl -Gو--data-urlencodeتضمین میکنند که رشته فیلتر AIP-160 بهدرستی کدبندی نشانی وب شده است:curl -G \ -H "Authorization: Bearer $TOKEN" \ --data-urlencode "filter=app_id=\"${APP_ID}\"" \ "https://firebasetelemetryadmin.googleapis.com/v1alpha/projects/${PROJECT_ID}/locations/${LOCATION}/configs"در پاسخ JSON، فیلد
nameرا برای برنامهتان (projects/PROJECT_ID/locations/LOCATION/configs/<CONFIG_ID>) پیدا کنید، و سپس آن را بهعنوان متغیرCONFIG_NAMEتنظیم کنید:CONFIG_NAME="CONFIG_NAME"
غیرفعال کردن جمعآوری دورسنجی
از روش سفارشی :disable برای غیرفعال کردن جمعآوری دورسنجی استفاده کنید:
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}' \
"https://firebasetelemetryadmin.googleapis.com/v1alpha/${CONFIG_NAME}:disable"
فعال کردن مجدد جمعآوری دورسنجی
برای فعال کردن مجدد جمعآوری دورسنجی، روش :enable را فراخوانی کنید:
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}' \
"https://firebasetelemetryadmin.googleapis.com/v1alpha/${CONFIG_NAME}:enable"