| เลือกแพลตฟอร์ม | iOS+ Android เว็บ 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
บังคับล้างบันทึกการตรวจวัดระยะไกล
โดยค่าเริ่มต้น เครื่องมือวัดระยะไกลบนเว็บจะจัดกลุ่มบันทึกเป็นกลุ่มหน่วยความจำเพื่อประหยัดอายุการใช้งานแบตเตอรี่ ประสิทธิภาพของ CPU และแบนด์วิดท์เครือข่าย อย่างไรก็ตาม สำหรับสภาพแวดล้อมการดำเนินการที่มีอายุสั้น ต้องอัปโหลดบันทึกทันทีก่อนที่บริบทการดำเนินการจะถูกทำลาย
คุณใช้คำสั่ง 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();
}
กำหนดค่าอัตราการสุ่มตัวอย่าง
หากคุณสุ่มตัวอย่างสัดส่วนของเซสชันผู้ใช้เพื่อควบคุมปริมาณและค่าใช้จ่ายในการส่งข้อมูลทางไกล คุณสามารถกำหนดค่าการสุ่มตัวอย่างได้โดยใช้ตัวเลือกต่อไปนี้
- ตัวเลือกที่ 1 (แนะนำ): กำหนดค่าอัตราการสุ่มตัวอย่างในคอนโซล Firebase
- ตัวเลือกที่ 2: ตั้งค่าอัตราการสุ่มตัวอย่างโดยใช้ Firebase Telemetry Admin API
ตัวเลือกที่ 1 (แนะนำ): กำหนดค่าอัตราการสุ่มตัวอย่างในคอนโซล Firebase
ในคอนโซล Firebase ให้ไปที่ DevOps และการมีส่วนร่วม > แดชบอร์ด Crashlytics
เลือกเว็บแอปจากตัวเลือกแบบเลื่อนลงที่ด้านบนของหน้า
คลิกกำหนดค่าการสุ่มตัวอย่างที่มุมขวาบนของแดชบอร์ด
ตั้งค่าเปอร์เซ็นต์อัตราการสุ่มตัวอย่าง (ระหว่าง
0%ถึง100%) เพื่อควบคุมเปอร์เซ็นต์ของเหตุการณ์และเซสชันที่รวบรวมจากไคลเอ็นต์
ตัวเลือกที่ 2: ตั้งค่าอัตราการสุ่มตัวอย่างโดยใช้ 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 ได้รับการเข้ารหัส URL อย่างถูกต้อง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สำหรับ 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 สำหรับเว็บแอป หากต้องการปิดใช้หรือเปิดใช้การเก็บรวบรวมข้อมูลทางไกลอีกครั้งแบบไดนามิกหลังจากติดตั้ง SDK ของ 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 ได้รับการเข้ารหัส URL อย่างถูกต้อง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"