| Chọn nền tảng: | iOS+ Android Web Flutter Unity |
Trong bảng điều khiển Firebase (DevOps và Mức độ tương tác > Trang tổng quan Crashlytics), bạn có thể nhấp vào một vấn đề để xem báo cáo Sự kiện chi tiết. Bạn có thể tuỳ chỉnh các báo cáo đó và quản lý hoạt động thu thập dữ liệu đo từ xa để hiểu rõ hơn về những gì đang xảy ra trong ứng dụng web của mình:
- Báo cáo các ngoại lệ được xử lý theo phương thức lập trình
- Thêm khoá tuỳ chỉnh
- Buộc xoá bản ghi dữ liệu đo từ xa cho các quy trình ngắn hạn
- Định cấu hình tốc độ lấy mẫu
- Tắt hoặc bật tính năng thu thập dữ liệu đo từ xa
Báo cáo các ngoại lệ được xử lý theo phương thức lập trình
Bạn có thể ghi lại các ngoại lệ được xử lý theo cách thủ công bằng recordError. Lỗi định tuyến và các ngoại lệ chưa nắm bắt được sẽ tự động được ghi lại bằng ranh giới lỗi của khung.
Sau đây là cách theo dõi tỷ lệ lỗi và thuộc tính chẩn đoán trên người dùng:
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);
}
}
Thêm khoá tuỳ chỉnh
Khoá siêu dữ liệu tuỳ chỉnh giúp bạn hiểu được trạng thái cụ thể của ứng dụng hoặc quy trình làm việc của người dùng dẫn đến sự cố.
Bạn có thể ghi lại hoạt động của người dùng, trạng thái phiên và thông tin chẩn đoán trực tiếp dưới dạng thuộc tính tùy chỉnh khoá-giá trị bằng cách sử dụng tham số siêu dữ liệu không bắt buộc khi gọi 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'
});
Các thuộc tính tùy chỉnh này được lưu giữ trong báo cáo ngoại lệ và xuất hiện trong thẻ Keys (Khoá) trong chế độ xem vấn đề của Crashlytics trang tổng quan.
Buộc xoá bản ghi dữ liệu đo từ xa
Theo mặc định, công cụ đo từ xa trên web sẽ gộp các bản ghi thành các phân đoạn bộ nhớ để tiết kiệm pin, hiệu suất CPU và băng thông mạng. Tuy nhiên, đối với môi trường thực thi ngắn hạn, nhật ký phải được tải lên ngay trước khi bối cảnh thực thi bị huỷ.
Bạn có thể sử dụng lệnh flush không đồng bộ để gửi ngay tất cả lỗi trong hàng đợi đến phần phụ trợ:
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();
}
Định cấu hình tốc độ lấy mẫu
Nếu lấy mẫu một tỷ lệ phiên người dùng để kiểm soát khối lượng và chi phí đo từ xa, bạn có thể định cấu hình việc lấy mẫu bằng bất kỳ lựa chọn nào sau đây:
- Cách 1 (nên dùng): Định cấu hình tốc độ lấy mẫu trong bảng điều khiển Firebase
- Cách 2: Đặt tốc độ lấy mẫu bằng Firebase Telemetry API Quản trị
Cách 1 (nên dùng): Định cấu hình tốc độ lấy mẫu trong bảng điều khiển Firebase
Trong bảng điều khiển Firebase, hãy chuyển đến trang tổng quan DevOps và mức độ tương tác > Crashlytics.
Chọn ứng dụng web của bạn trong bộ chọn thả xuống ở đầu trang.
Nhấp vào Định cấu hình lấy mẫu ở góc trên cùng bên phải của trang tổng quan.
Đặt tỷ lệ phần trăm Tốc độ lấy mẫu (từ
0%đến100%) để kiểm soát tỷ lệ phần trăm sự kiện và phiên được thu thập từ ứng dụng.
Cách 2: Đặt tốc độ lấy mẫu bằng Firebase Telemetry API Quản trị
Bạn có thể sử dụng API Quản trị dữ liệu đo từ xa của Firebase (firebasetelemetryadmin.googleapis.com/v1alpha) để quản lý chế độ cài đặt thu thập dữ liệu đo từ xa cho các ứng dụng Firebase của mình.
Định cấu hình các biến bắt buộc sau đây trong dòng lệnh:
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)Tìm CONFIG_NAME của bạn rồi định cấu hình nó làm một biến trong dòng lệnh:
Chế độ cài đặt dữ liệu đo từ xa được quản lý bằng tài nguyên
Config, vì vậy, bạn cần tìm CONFIG_NAME cụ thể cho ứng dụng web của mình.Liệt kê các cấu hình trong dự án và lọc theo FIREBASE_APP_ID. Cờ
curl -Gvà--data-urlencodeđảm bảo chuỗi bộ lọc AIP-160 được mã hoá URL chính xác:curl -G \ -H "Authorization: Bearer $TOKEN" \ --data-urlencode "filter=app_id=\"${APP_ID}\"" \ "https://firebasetelemetryadmin.googleapis.com/v1alpha/projects/${PROJECT_ID}/locations/${LOCATION}/configs"Trong phản hồi JSON, hãy tìm trường
namecho ứng dụng của bạn (projects/PROJECT_ID/locations/LOCATION/configs/<CONFIG_ID>), rồi đặt trường đó làm biếnCONFIG_NAME:CONFIG_NAME="CONFIG_NAME"
Đặt tốc độ lấy mẫu:
Để điều chỉnh tốc độ lấy mẫu, hãy sử dụng phương thức
PATCHđể cập nhật trườngsampling_rate. Bạn phải chỉ địnhupdateMask=sampling_ratetrong các tham số truy vấn. Tốc độ lấy mẫu là một giá trị kép đại diện cho tỷ lệ phần trăm số phiên cần thu thập (ví dụ:0.25cho 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"
Tắt hoặc bật tính năng thu thập dữ liệu đo từ xa
Theo mặc định, tính năng thu thập dữ liệu đo từ xa sẽ được bật khi bạn thiết lập Crashlytics cho ứng dụng web của mình. Nếu cần tắt hoặc bật lại tính năng thu thập dữ liệu đo từ xa một cách linh động sau khi cài đặt SDK Crashlytics, bạn có thể quản lý các điểm cuối thu thập bằng API Quản trị Firebase Telemetry (firebasetelemetryadmin.googleapis.com/v1alpha).
Trước khi có thể tắt hoặc bật dữ liệu đo từ xa, bạn cần đặt các biến sau:
Định cấu hình các biến bắt buộc sau đây trong dòng lệnh:
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)Tìm CONFIG_NAME của bạn rồi định cấu hình nó làm một biến trong dòng lệnh:
Chế độ cài đặt dữ liệu đo từ xa được quản lý bằng tài nguyên
Config, vì vậy, bạn cần tìm CONFIG_NAME cụ thể cho ứng dụng web của mình.Liệt kê các cấu hình trong dự án và lọc theo FIREBASE_APP_ID. Cờ
curl -Gvà--data-urlencodeđảm bảo chuỗi bộ lọc AIP-160 được mã hoá URL chính xác:curl -G \ -H "Authorization: Bearer $TOKEN" \ --data-urlencode "filter=app_id=\"${APP_ID}\"" \ "https://firebasetelemetryadmin.googleapis.com/v1alpha/projects/${PROJECT_ID}/locations/${LOCATION}/configs"Trong phản hồi JSON, hãy tìm trường
namecho ứng dụng của bạn (projects/PROJECT_ID/locations/LOCATION/configs/<CONFIG_ID>), rồi đặt trường đó làm biếnCONFIG_NAME:CONFIG_NAME="CONFIG_NAME"
Tắt tính năng thu thập dữ liệu đo từ xa
Sử dụng phương thức tuỳ chỉnh :disable để tắt tính năng thu thập dữ liệu đo từ xa:
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}' \
"https://firebasetelemetryadmin.googleapis.com/v1alpha/${CONFIG_NAME}:disable"
Bật lại tính năng thu thập dữ liệu đo từ xa
Để bật lại tính năng thu thập dữ liệu đo từ xa, hãy gọi phương thức :enable:
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}' \
"https://firebasetelemetryadmin.googleapis.com/v1alpha/${CONFIG_NAME}:enable"