Bạn có thể xuất dữ liệu Crashlytics vào BigQuery để phân tích thêm. BigQuery cho phép bạn phân tích dữ liệu bằng BigQuery SQL, xuất dữ liệu đó sang một nhà cung cấp dịch vụ đám mây khác và sử dụng dữ liệu này để trực quan hoá cũng như tạo trang tổng quan tuỳ chỉnh bằng Google Data Studio.
Bật tính năng BigQuery Export
- Chuyển đến trang Tích hợp trong bảng điều khiển của Firebase.
- Trong thẻ BigQuery, hãy nhấp vào Liên kết.
- Làm theo hướng dẫn trên màn hình để bật BigQuery.
Khi bạn liên kết dự án với BigQuery:
- Firebase thiết lập tính năng đồng bộ hoá dữ liệu hằng ngày từ dự án Firebase với BigQuery.
- Theo mặc định, tất cả ứng dụng trong dự án của bạn đều được liên kết với BigQuery và mọi ứng dụng mà sau này bạn thêm vào dự án sẽ tự động được liên kết với BigQuery. Bạn có thể quản lý các ứng dụng gửi dữ liệu.
- Firebase xuất một bản sao dữ liệu hiện có của bạn sang BigQuery. Đối với mỗi ứng dụng được liên kết, tệp này bao gồm một bảng lô chứa dữ liệu của quá trình đồng bộ hoá hằng ngày.
- Nếu bạn bật tính năng xuất trực tuyến BigQuery của Crashlytics, thì tất cả ứng dụng được liên kết cũng sẽ có một bảng theo thời gian thực chứa dữ liệu được cập nhật liên tục.
Để tắt tính năng BigQuery Export, hãy huỷ liên kết dự án của bạn trong bảng điều khiển của Firebase.
Dữ liệu nào được xuất sang BigQuery?
Dữ liệu của Firebase Crashlytics được xuất sang một tập dữ liệu BigQuery có tên là
firebase_crashlytics
. Theo mặc định, các bảng riêng lẻ sẽ được tạo trong
tập dữ liệu Crashlytics cho từng ứng dụng trong dự án của bạn. Firebase đặt tên cho các bảng dựa trên giá trị nhận dạng gói của ứng dụng, với các dấu chấm được chuyển đổi thành dấu gạch dưới và tên nền tảng được thêm vào cuối.
Ví dụ: dữ liệu của ứng dụng có mã nhận dạng com.google.test
sẽ nằm trong một bảng có tên là com_google_test_ANDROID
. Bảng lô này được cập nhật mỗi ngày một lần. Nếu bạn bật tính năng xuất trực tuyến BigQuery của Crashlytics, thì dữ liệu của Firebase Crashlytics cũng sẽ được truyền theo thời gian thực đến com_google_test_ANDROID_REALTIME
.
Mỗi hàng trong bảng biểu thị một sự kiện xảy ra trong ứng dụng, bao gồm sự cố, lỗi không nghiêm trọng và lỗi ANR.
Bật tính năng xuất trực tuyến BigQuery của Crashlytics
Bạn có thể truyền trực tuyến dữ liệu trên Crashlytics theo thời gian thực bằng BigQueryStreaming. Bạn có thể sử dụng API này cho bất kỳ mục đích nào cần dữ liệu trực tiếp, chẳng hạn như trình bày thông tin trong trang tổng quan trực tiếp, xem bản phát hành trực tiếp hoặc theo dõi các sự cố về ứng dụng nhằm kích hoạt cảnh báo và quy trình tuỳ chỉnh.
Tính năng xuất trực tuyến BigQuery của Crashlytics không có sẵn cho hộp cát BigQuery.
Khi bật tính năng xuất trực tuyến BigQuery của Crashlytics, ngoài bảng lô, bạn sẽ có một bảng theo thời gian thực. Dưới đây là những điểm khác biệt giữa các bảng mà bạn cần lưu ý:
Bảng lô | Bảng theo thời gian thực |
---|---|
|
|
Bảng lô là lựa chọn lý tưởng cho hoạt động phân tích dài hạn và xác định xu hướng theo thời gian, vì chúng tôi lưu trữ các sự kiện một cách bền vững trước khi viết và có thể bổ sung các sự kiện đó vào bảng trong tối đa 30 ngày. Khi ghi dữ liệu vào bảng theo thời gian thực, chúng tôi sẽ ghi dữ liệu đó ngay vào BigQuery. Vì vậy, đây là lựa chọn lý tưởng dành cho trang tổng quan trực tiếp và cảnh báo tuỳ chỉnh. Bạn có thể kết hợp 2 bảng này với một truy vấn ghép để tận dụng lợi ích của cả hai. Xem truy vấn Ví dụ 9 dưới đây.
Theo mặc định, bảng theo thời gian thực có thời gian hết hạn phân vùng là 30 ngày. Để tìm hiểu cách sửa đổi chế độ này, hãy xem phần Cập nhật thời hạn phân vùng.
Bật tính năng truyền trực tuyến BigQuery của Crashlytics
Để bật tính năng truyền trực tuyến, hãy chuyển đến phần Crashlytics trong trang tích hợp BigQuery rồi chọn hộp đánh dấu Bao gồm tính năng truyền trực tuyến.
Mẫu Data Studio
Để bật dữ liệu theo thời gian thực trong mẫu Data Studio, hãy làm theo hướng dẫn trong bài viết Hình ảnh hoá dữ liệu Crashlytics đã xuất bằng Data Studio.
Chế độ xem
Bạn có thể chuyển các truy vấn mẫu bên dưới thành chế độ xem bằng cách sử dụng giao diện người dùng BigQuery. Hãy xem phần Tạo thành phần hiển thị để biết hướng dẫn chi tiết.
Bạn có thể làm gì với dữ liệu đã xuất?
Dữ liệu xuất BigQuery chứa dữ liệu sự cố thô bao gồm loại thiết bị, hệ điều hành, ngoại lệ (ứng dụng Android) hoặc lỗi (ứng dụng của Apple) và nhật ký Crashlytics, cũng như các dữ liệu khác.
Làm việc với dữ liệu của Firebase Crashlytics trong BigQuery
Các ví dụ sau đây minh hoạ những truy vấn mà bạn có thể chạy trên dữ liệu Crashlytics. Các truy vấn này tạo ra những báo cáo không có trong trang tổng quan Crashlytics.
Ví dụ về truy vấn Crashlytics
Các ví dụ sau đây minh hoạ cách tạo báo cáo tổng hợp dữ liệu sự kiện sự cố thành các bản tóm tắt dễ hiểu hơn.
Ví dụ 1: Sự cố theo ngày
Sau khi cố gắng khắc phục nhiều lỗi nhất có thể, một nhà phát triển hàng đầu cho rằng nhóm của cô cuối cùng đã sẵn sàng ra mắt ứng dụng chia sẻ ảnh mới. Trước khi làm điều này, họ muốn kiểm tra số lượng sự cố mỗi ngày trong tháng qua để đảm bảo lỗi của họ đã giúp ứng dụng ổn định hơn theo thời gian:
SELECT COUNT(DISTINCT event_id) AS number_of_crashes, FORMAT_TIMESTAMP("%F", event_timestamp) AS date_of_crashes FROM `projectId.firebase_crashlytics.package_name_ANDROID` GROUP BY date_of_crashes ORDER BY date_of_crashes DESC LIMIT 30;
Ví dụ 2: Tìm các sự cố phổ biến nhất
Để ưu tiên hợp lý các kế hoạch sản xuất, một nhà quản lý dự án sẽ cân nhắc cách chỉ ra 10 sự cố phổ biến nhất trong sản phẩm của họ. Chúng tạo ra một truy vấn cung cấp các điểm dữ liệu thích hợp:
SELECT DISTINCT issue_id, COUNT(DISTINCT event_id) AS number_of_crashes, COUNT(DISTINCT installation_uuid) AS number_of_impacted_user, blame_frame.file, blame_frame.line FROM `projectId.firebase_crashlytics.package_name_ANDROID` WHERE event_timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(),INTERVAL 168 HOUR) AND event_timestamp < CURRENT_TIMESTAMP() GROUP BY issue_id, blame_frame.file, blame_frame.line ORDER BY number_of_crashes DESC LIMIT 10;
Ví dụ 3: 10 thiết bị gặp sự cố hàng đầu
Mùa thu là mùa mới trên điện thoại! Một nhà phát triển biết rằng điều đó cũng có nghĩa là mùa này gặp các vấn đề mới liên quan đến thiết bị. Để chuẩn bị cho những mối lo ngại đáng lo ngại về khả năng tương thích, họ đưa ra một truy vấn xác định 10 thiết bị đã gặp nhiều sự cố nhất trong tuần qua:
SELECT device.model, COUNT(DISTINCT event_id) AS number_of_crashes FROM `projectId.firebase_crashlytics.package_name_ANDROID` WHERE event_timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 168 HOUR) AND event_timestamp < CURRENT_TIMESTAMP() GROUP BY device.model ORDER BY number_of_crashes DESC LIMIT 10;
Ví dụ 4: Lọc theo khoá tuỳ chỉnh
Một nhà phát triển trò chơi muốn biết cấp độ nào trong trò chơi của họ gặp phải nhiều sự cố nhất. Để giúp họ theo dõi số liệu thống kê đó, họ đặt một khoá Crashlytics tuỳ chỉnh
current_level
và cập nhật khoá này mỗi khi người dùng đạt đến một cấp mới.
Objective-C
CrashlyticsKit setIntValue:3 forKey:@"current_level";
Swift
Crashlytics.sharedInstance().setIntValue(3, forKey: "current_level");
Java
Crashlytics.setInt("current_level", 3);
Với khoá đó trong BigQuery Export, họ sẽ viết một truy vấn để báo cáo việc phân phối các giá trị current_level
được liên kết với từng sự kiện lỗi:
SELECT COUNT(DISTINCT event_id) AS num_of_crashes, value FROM `projectId.firebase_crashlytics.package_name_ANDROID` UNNEST(custom_keys) WHERE key = "current_level" GROUP BY key, value ORDER BY num_of_crashes DESC
Ví dụ 5: Trích xuất mã nhận dạng người dùng
Nhà phát triển có một ứng dụng ở giai đoạn tiếp cận sớm. Hầu hết người dùng yêu thích ứng dụng này, nhưng 3 ứng dụng gặp phải một số lượng sự cố bất thường. Để tìm hiểu sâu hơn về vấn đề này, họ sẽ viết một truy vấn lấy tất cả sự kiện sự cố cho những người dùng đó, bằng cách sử dụng mã nhận dạng người dùng của họ:
SELECT * FROM `projectId.firebase_crashlytics.package_name_ANDROID` WHERE user.id IN ("userid1", "userid2", "userid3") ORDER BY user.id
Ví dụ 6: Tìm tất cả người dùng gặp phải một sự cố cụ thể
Một nhà phát triển đã phát hành một lỗi nghiêm trọng cho một nhóm người kiểm thử phiên bản thử nghiệm. Nhóm này có thể sử dụng truy vấn trong Ví dụ 2 ở trên để xác định mã sự cố cụ thể. Bây giờ, họ muốn chạy một truy vấn để trích xuất danh sách người dùng ứng dụng chịu ảnh hưởng của sự cố này:
SELECT user.id as user_id FROM `projectId.firebase_crashlytics.package_name_ANDROID` WHERE issue_id = "YOUR_ISSUE_ID" AND application.display_version = "" AND user.id != "" ORDER BY user.id;
Ví dụ 7: Số người dùng chịu ảnh hưởng của một sự cố (tính theo quốc gia)
Hiện tại, nhóm phát triển đã phát hiện một lỗi nghiêm trọng trong quá trình ra mắt một bản phát hành mới. Họ có thể sử dụng truy vấn trong Ví dụ 2 ở trên để xác định mã sự cố cụ thể. Bây giờ, nhóm muốn biết liệu sự cố này có lan ra người dùng ở nhiều quốc gia trên thế giới hay không.
Để viết truy vấn này, nhóm cần phải:
Bật tính năng xuất dữ liệu của BigQuery cho Google Analytics. Xem bài viết Xuất dữ liệu dự án sang BigQuery.
Hãy cập nhật ứng dụng của họ để chuyển mã nhận dạng người dùng vào cả SDK Google Analytics và SDK Crashlytics.
Objective-C
CrashlyticsKit setUserIdentifier:@"123456789"; FIRAnalytics setUserID:@"12345678 9";
Swift
Crashlytics.sharedInstance().setUserIdentifier("123456789"); Analytics.setUserID("123456789");
Java
Crashlytics.setUserIdentifier("123456789"); mFirebaseAnalytics.setUserId("123456789");
Viết một truy vấn sử dụng trường mã nhận dạng người dùng để kết hợp các sự kiện trong tập dữ liệu BigQuery của Google Analytics có sự cố trong tập dữ liệu BigQuery của Crashlytics:
SELECT DISTINCT c.issue_id, a.geo.country, COUNT(DISTINCT c.user.id) as num_users_impacted FROM `projectId.firebase_crashlytics.package_name_ANDROID` c INNER JOIN `projectId.analytics_YOUR_TABLE.events_*` a on c.user.id = a.user_id WHERE c.issue_id = "YOUR_ISSUE_ID" AND a._TABLE_SUFFIX BETWEEN '20190101' AND '20200101' GROUP BY c.issue_id, a.geo.country, c.user.id
Ví dụ 8: 5 vấn đề hàng đầu cho đến nay
Yêu cầu bật tính năng xuất trực tuyến BigQuery của Crashlytics
SELECT issue_id, COUNT(DISTINCT event_id) AS events FROM `your_project.firebase_crashlytics.package_name_ANDROID_REALTIME` WHERE DATE(event_timestamp) = CURRENT_DATE() GROUP BY issue_id ORDER BY events DESC LIMIT 5;
Ví dụ 9: 5 vấn đề hàng đầu kể từ DATE, kể cả hôm nay
Yêu cầu bật tính năng xuất trực tuyến BigQuery của Crashlytics.
Trong ví dụ này, chúng tôi kết hợp các bảng theo lô và bảng theo thời gian thực để thêm thông tin theo thời gian thực vào dữ liệu lô đáng tin cậy. Vì event_id
là khoá chính, nên chúng ta có thể sử dụng DISTINCT event_id
để loại bỏ mọi sự kiện phổ biến khỏi 2 bảng.
SELECT issue_id, COUNT(DISTINCT event_id) AS events FROM ( SELECT issue_id, event_id, event_timestamp FROM `your_project.firebase_crashlytics.package_name_ANDROID_REALTIME` UNION ALL SELECT issue_id, event_id, event_timestamp FROM `your_project.firebase_crashlytics.package_name_ANDROID`) WHERE event_timestamp >= "2020-01-13" GROUP BY issue_id ORDER BY events DESC LIMIT 5;
Tìm hiểu giản đồ Firebase Crashlytics trong BigQuery
Khi bạn liên kết Crashlytics với BigQuery, Firebase sẽ xuất các sự kiện gần đây (sự cố, lỗi không nghiêm trọng và lỗi ANR), bao gồm cả các sự kiện diễn ra trong tối đa 2 ngày trước khi liên kết, với lựa chọn chèn lấp tối đa 30 ngày.
Từ thời điểm đó cho đến khi bạn tắt mối liên kết, Firebase sẽ xuất các sự kiện Crashlytics hằng ngày. Có thể mất vài phút để dữ liệu có trong BigQuery sau mỗi lần xuất.
Tập dữ liệu
Firebase Crashlytics sẽ tạo một tập dữ liệu mới trong BigQuery cho dữ liệu Crashlytics. Tập dữ liệu này bao gồm toàn bộ dự án của bạn, ngay cả khi tập dữ liệu đó có nhiều ứng dụng.
Bảng
Firebase Crashlytics sẽ tạo một bảng trong tập dữ liệu cho từng ứng dụng trong dự án của bạn, trừ phi bạn đã chọn không xuất dữ liệu cho ứng dụng đó. Firebase đặt tên cho các bảng dựa trên mã nhận dạng gói của ứng dụng, với dấu chấm được chuyển đổi thành dấu gạch dưới và tên nền tảng được thêm vào cuối.
Ví dụ: dữ liệu của ứng dụng Android có mã com.google.test
sẽ nằm trong bảng có tên là com_google_test_ANDROID
và dữ liệu theo thời gian thực (nếu được bật) sẽ nằm trong bảng có tên com_google_test_ANDROID_REALTIME
Các bảng chứa một bộ dữ liệu Crashlytics tiêu chuẩn ngoài các khoá Crashlytics tuỳ chỉnh do nhà phát triển xác định.
Hàng
Mỗi hàng trong bảng biểu thị một lỗi mà ứng dụng gặp phải.
Cột
Các cột trong một bảng giống nhau dành cho sự cố, lỗi không nghiêm trọng và lỗi ANR. Nếu bạn bật tính năng xuất trực tuyến BigQuery của Crashlytics, thì bảng theo thời gian thực sẽ có các cột giống với bảng lô. Các cột bên trong dữ liệu xuất được liệt kê ở bên dưới.
Không có dấu vết ngăn xếp
Các cột xuất hiện trong hàng đại diện cho sự kiện không có dấu vết ngăn xếp.
Tên trường | Loại dữ liệu | Mô tả |
---|---|---|
platform | STRING | Ứng dụng của Apple hoặc Android |
Bundle_identifier | STRING | Mã gói, ví dụ: com.google.gmail |
mã sự kiện [event_id] | STRING | Mã nhận dạng duy nhất của sự kiện |
tử_quan trọng | BOOLEAN | Liệu ứng dụng có gặp sự cố hay không |
loại_lỗi | STRING | Loại lỗi của sự kiện (FATAL, NON_FATAL, ANR) |
mã_vấn_đề | STRING | Vấn đề liên quan đến sự kiện |
mã_biến_thể | STRING | Biến thể của vấn đề liên quan đến sự kiện này Xin lưu ý rằng không phải sự kiện nào cũng có biến thể của vấn đề liên quan. |
event_timestamp | DẤU THỜI GIAN | Thời điểm xảy ra sự kiện |
device | RECORD | Thiết bị xảy ra sự kiện |
device.manufaturer | STRING | Nhà sản xuất thiết bị |
device.model | STRING | Mẫu thiết bị |
kiến trúc thiết bị | STRING | X86_32, X86_64, ARMV7, ARM64, ARMV7S hoặc ARMV7K |
bộ nhớ | RECORD | Trạng thái bộ nhớ của thiết bị |
bộ nhớ.đã dùng | INT64 | Số byte bộ nhớ đã dùng |
dung lượng bộ nhớ trống | INT64 | Số byte bộ nhớ còn lại |
lượng nước giữ lại | RECORD | Bộ nhớ liên tục của thiết bị |
bộ nhớ đã dùng | INT64 | Số byte bộ nhớ đã sử dụng |
dung lượng lưu trữ.miễn phí | INT64 | Số byte bộ nhớ còn lại |
hệ_ điều hành | RECORD | Thông tin chi tiết về hệ điều hành trên thiết bị |
kênh_system.display_version | STRING | Phiên bản hệ điều hành trên thiết bị |
operating_system.name | STRING | Tên của hệ điều hành trên thiết bị |
hệ_điều_hành.modification_state | STRING | Liệu thiết bị có bị sửa đổi hay không, chẳng hạn như bị bẻ khoá/can thiệp vào hệ thống (Sửa đổi) hay Không được sửa đổi |
hệ_ điều_hành.loại | STRING | Loại hệ điều hành chạy trên thiết bị (ví dụ: IOS, MACOS); chỉ có trên các ứng dụng trên nền tảng của Apple |
hệ_ điều hành.device_type | STRING | Loại thiết bị (ví dụ: THIẾT BỊ DI ĐỘNG, MÁY TÍNH BẢNG, TV, v.v.); còn được gọi là "danh mục thiết bị" |
ứng dụng | RECORD | Ứng dụng đã tạo ra sự kiện |
application.build_version | STRING | Phiên bản bản dựng của ứng dụng |
application.display_version | STRING | |
user | RECORD | Không bắt buộc: Thông tin được thu thập về người dùng ứng dụng |
user.name | STRING | Không bắt buộc: Tên của người dùng |
user.email. | STRING | Không bắt buộc: Địa chỉ email của người dùng |
user.id | STRING | Không bắt buộc: Mã dành riêng cho ứng dụng được liên kết với người dùng |
khoá_tuỳ_chỉnh | BẢN GHI LẶP LẠI | Cặp khoá-giá trị do nhà phát triển xác định |
custom_keys.key | STRING | Khoá do nhà phát triển xác định |
custom_keys.value | STRING | Giá trị do nhà phát triển xác định |
cài đặt_uuid | STRING | Mã nhận dạng giúp xác định một lượt cài đặt thiết bị và ứng dụng riêng biệt |
Crashlytics_sdk_versions | STRING | Phiên bản SDK Crashlytics đã tạo sự kiện |
hướng_ứng_dụng | STRING | PORTRAIT, LANDSCAPE, FACE_UP hoặc FACE_DOWN |
hướng_thiết_bị | STRING | PORTRAIT, LANDSCAPE, FACE_UP hoặc FACE_DOWN |
trạng thái_tiến_trình | STRING | BỐI CẢNH hoặc BỐI CẢNH |
nhật ký | BẢN GHI LẶP LẠI | Thông điệp nhật ký có dấu thời gian do trình ghi nhật ký Crashlytics tạo, nếu được bật |
log.timestamp | DẤU THỜI GIAN | Thời điểm tạo nhật ký |
log.message | STRING | Tin nhắn đã ghi lại |
breadcrumb | BẢN GHI LẶP LẠI | Đường dẫn Google Analytics có dấu thời gian, nếu được bật |
breadcrumbs.timestamp | DẤU THỜI GIAN | Dấu thời gian liên kết với breadcrumb (tập hợp liên kết phân cấp) |
breadcrumbs.name | STRING | Tên liên quan đến breadcrumb (tập hợp liên kết phân cấp) |
breadcrumbs.params | BẢN GHI LẶP LẠI | Tham số liên quan đến breadcrumb (tập hợp liên kết phân cấp) |
breadcrumbs.params.key | STRING | Một khoá tham số liên kết với breadcrumb (tập hợp liên kết phân cấp) |
breadcrumbs.params.value | STRING | Một giá trị tham số liên kết với breadcrumb (tập hợp liên kết phân cấp) |
khung_nguyên_bắc | RECORD | Khung được xác định là nguyên nhân gốc của sự cố hoặc lỗi |
blame_frame.line | INT64 | Số dòng của tệp khung |
blame_frame.file | STRING | Tên của tệp khung |
blame_frame.symbol | STRING | Biểu tượng ngậm nước hoặc biểu tượng thô nếu không thể uống nước |
blame_frame.offset | INT64 | Độ lệch byte vào hình ảnh nhị phân chứa mã, không được đặt cho các trường hợp ngoại lệ về Java |
blame_frame.address | INT64 | Địa chỉ trong hình ảnh nhị phân chứa mã, chưa được đặt cho các khung Java |
blame_frame.library | STRING | Tên hiển thị của thư viện bao gồm khung |
blame_frame.owner | STRING | NHÀ PHÁT TRIỂN, NHÀ CUNG CẤP, THỜI GIAN CHẠY, NỀN TẢNG hoặc HỆ THỐNG |
blame_frame.blamed | BOOLEAN | Liệu phân tích của Crashlytics xác định rằng khung này có phải là nguyên nhân gây ra sự cố hoặc lỗi không |
ngoại lệ | BẢN GHI LẶP LẠI | Chỉ dành cho Android: Các ngoại lệ xảy ra trong sự kiện này. Các trường hợp ngoại lệ lồng nhau được trình bày theo thứ tự thời gian ngược (đọc: bản ghi cuối cùng là trường hợp ngoại lệ đầu tiên được gửi) |
ngoại lệ.type | STRING | Loại ngoại lệ, ví dụ: java.lang.IllegalStateException |
ngoại lệ.exception_message | STRING | Một thông báo liên quan đến trường hợp ngoại lệ |
ngoại lệ.nested | BOOLEAN | Đúng cho tất cả trừ trường hợp ngoại lệ được gửi sau cùng (tức là bản ghi đầu tiên) |
ngoại lệ.title | STRING | Tiêu đề của chuỗi thư |
ngoại lệ.phụ đề | STRING | Tiêu đề phụ của chuỗi bài đăng |
ngoại lệ.blamed | BOOLEAN | Đúng nếu Crashlytics xác định trường hợp ngoại lệ gây ra lỗi hoặc sự cố |
ngoại lệ.khung | BẢN GHI LẶP LẠI | Các khung được liên kết với ngoại lệ |
ngoại lệ.frames.line | INT64 | Số dòng của tệp khung |
ngoại lệ.frames.file | STRING | Tên của tệp khung |
ngoại lệ.frames.symbol | STRING | Biểu tượng ngậm nước hoặc biểu tượng thô nếu không thể uống nước |
ngoại lệ.frames.offset | INT64 | Độ lệch byte vào hình ảnh nhị phân chứa mã, không được đặt cho các trường hợp ngoại lệ về Java |
ngoại lệ.frames.address | INT64 | Địa chỉ trong hình ảnh nhị phân chứa mã, chưa được đặt cho các khung Java |
ngoại lệ.frames.library | STRING | Tên hiển thị của thư viện bao gồm khung |
ngoại lệ.frames.owner | STRING | NHÀ PHÁT TRIỂN, NHÀ CUNG CẤP, THỜI GIAN CHẠY, NỀN TẢNG hoặc HỆ THỐNG |
ngoại lệ.frames.blamed | BOOLEAN | Liệu phân tích của Crashlytics xác định rằng khung này có phải là nguyên nhân gây ra sự cố hoặc lỗi không |
error | BẢN GHI LẶP LẠI | Chỉ dành cho ứng dụng của Apple: lỗi không nghiêm trọng |
error.queue_name | STRING | Hàng đợi mà luồng đang chạy |
mã lỗi | INT64 | Mã lỗi liên kết với NSError được ghi tuỳ chỉnh của ứng dụng |
error.title [tiêu_đề] | STRING | Tiêu đề của chuỗi thư |
lỗi.phụ đề | STRING | Tiêu đề phụ của chuỗi bài đăng |
lỗi.bị lỗi | BOOLEAN | Liệu phân tích của Crashlytics xác định rằng khung này có phải là nguyên nhân gây ra lỗi hay không |
error.frames | BẢN GHI LẶP LẠI | Các khung của dấu vết ngăn xếp |
error.frames.line | INT64 | Số dòng của tệp khung |
error.frames.file | STRING | Tên của tệp khung |
error.frames.symbol | STRING | Biểu tượng ngậm nước hoặc biểu tượng thô nếu không thể uống nước |
error.frames.offset | INT64 | Độ lệch byte vào hình ảnh nhị phân chứa mã |
error.frames.address | INT64 | Địa chỉ trong hình ảnh nhị phân chứa mã |
error.frames.library | STRING | Tên hiển thị của thư viện bao gồm khung |
error.frames.owner | STRING | NHÀ PHÁT TRIỂN, NHÀ CUNG CẤP, THỜI GIAN CHẠY, NỀN TẢNG hoặc HỆ THỐNG |
error.frames.blamed | BOOLEAN | Liệu phân tích của Crashlytics xác định rằng khung này có phải là nguyên nhân gây ra lỗi hay không |
chuỗi | BẢN GHI LẶP LẠI | Các chuỗi tin nhắn xuất hiện tại thời điểm diễn ra sự kiện |
thread.crashed | BOOLEAN | Liệu luồng có gặp sự cố hay không |
thread.thread_name | STRING | Tên chuỗi |
thread.queue_name | STRING | Chỉ dành cho ứng dụng của Apple: Hàng đợi mà luồng đang chạy |
thread.signal_name | STRING | Tên của tín hiệu khiến ứng dụng gặp sự cố, chỉ xuất hiện trên các luồng gốc bị sự cố |
thread.signal_code | STRING | Mã của tín hiệu khiến ứng dụng gặp sự cố; chỉ xuất hiện trên các luồng gốc bị sự cố |
thread.crash_address | INT64 | Địa chỉ của tín hiệu khiến ứng dụng gặp sự cố; chỉ xuất hiện trên các luồng gốc bị sự cố |
thread.code | INT64 | Chỉ dành cho ứng dụng của Apple: Mã lỗi NSError được ghi tuỳ chỉnh của ứng dụng |
thread.title [tiêu_đề] | STRING | Tiêu đề của chuỗi thư |
thread.subtitle | STRING | Tiêu đề phụ của chuỗi bài đăng |
thread.blamed | BOOLEAN | Liệu phân tích của Crashlytics xác định rằng khung này có phải là nguyên nhân gây ra sự cố hoặc lỗi không |
thread.frames | BẢN GHI LẶP LẠI | Các khung của chuỗi |
thread.frames.line | INT64 | Số dòng của tệp khung |
thread.frames.file | STRING | Tên của tệp khung |
thread.frames.symbol | STRING | Biểu tượng ngậm nước hoặc biểu tượng thô nếu không khó đọc |
thread.frames.offset | INT64 | Độ lệch byte vào hình ảnh nhị phân chứa mã |
thread.frames.address | INT64 | Địa chỉ trong hình ảnh nhị phân chứa mã |
thread.frames.library | STRING | Tên hiển thị của thư viện bao gồm khung |
thread.frames.owner | STRING | NHÀ PHÁT TRIỂN, NHÀ CUNG CẤP, THỜI GIAN CHẠY, NỀN TẢNG hoặc HỆ THỐNG |
thread.frames.blamed | BOOLEAN | Liệu phân tích của Crashlytics xác định rằng khung này có phải là nguyên nhân gây ra lỗi hay không |
unity_metadata.unity_version | STRING | Phiên bản Unity đang chạy trên thiết bị này |
unity_metadata.debug_build | BOOLEAN | Nếu đây là bản gỡ lỗi |
unity_metadata.processor_type | STRING | Loại bộ xử lý |
unity_metadata.processor_count | INT64 | Số lượng bộ xử lý (lõi) |
unity_metadata.processor_frequency_mhz | INT64 | Tần số của(các) bộ xử lý tính bằng MHz |
unity_metadata.system_memory_size_mb | INT64 | Kích thước bộ nhớ của hệ thống tính bằng Mb |
unity_metadata.graphics_memory_size_mb | INT64 | Bộ nhớ đồ hoạ tính bằng MB |
unity_metadata.graphics_device_id | INT64 | Giá trị nhận dạng thiết bị đồ hoạ |
unity_metadata.graphics_device_vendor_id | INT64 | Giá trị nhận dạng nhà cung cấp bộ xử lý đồ hoạ |
unity_metadata.graphics_device_name | STRING | Tên của thiết bị đồ hoạ |
unity_metadata.graphics_device_vendor | STRING | Nhà cung cấp thiết bị đồ hoạ |
unity_metadata.graphics_device_version | STRING | Phiên bản của thiết bị đồ hoạ |
unity_metadata.graphics_device_type | STRING | Loại thiết bị đồ hoạ |
unity_metadata.graphics_shader_level | INT64 | Cấp độ đổ bóng của đồ hoạ |
unity_metadata.graphics_ kết_target_count | INT64 | Số lượng mục tiêu hiển thị đồ hoạ |
unity_metadata.graphics_copy_texture_support | STRING | Hỗ trợ sao chép hoạ tiết đồ hoạ như xác định trong API Unity |
unity_metadata.graphics_max_texture_size | INT64 | Kích thước tối đa dành riêng cho việc kết xuất hoạ tiết |
unity_metadata.screen_size_px | STRING | Kích thước của màn hình tính bằng pixel, ở định dạng chiều rộng x chiều cao |
unity_metadata.screen_Resolution_dpi | STRING | DPI của màn hình dưới dạng số thực |
unity_metadata.screen_refresh_rate_hz | INT64 | Tốc độ làm mới màn hình (tính bằng Hz) |
Trực quan hoá dữ liệu Crashlytics đã xuất bằng Data Studio
Google Data Studio biến các tập dữ liệu Crashlytics trong BigQuery của bạn thành các báo cáo dễ đọc, dễ chia sẻ và hoàn toàn có thể tuỳ chỉnh.
Để tìm hiểu thêm về cách sử dụng Data Studio, hãy xem hướng dẫn bắt đầu nhanh về Data Studio, Chào mừng bạn đến với Data Studio.
Sử dụng mẫu báo cáo Crashlytics
Data Studio có một báo cáo mẫu cho Crashlytics bao gồm một tập hợp các phương diện và chỉ số toàn diện từ giản đồ BigQuery của Crashlytics đã xuất. Nếu đã bật tính năng xuất trực tuyến BigQuery của Crashlytics, bạn có thể xem dữ liệu đó trên trang Xu hướng theo thời gian thực của mẫu Data Studio.Bạn có thể sử dụng mẫu làm mẫu để nhanh chóng tạo báo cáo và hình ảnh trực quan mới dựa trên dữ liệu sự cố chưa qua xử lý của ứng dụng:
- Mở mẫu Trang tổng quan Data Studio của Crashlytics.
- Nhấp vào Sử dụng mẫu ở góc trên bên phải.
- Trong trình đơn thả xuống Nguồn dữ liệu mới, hãy chọn Tạo nguồn dữ liệu mới.
- Nhấp vào Chọn trên thẻ BigQuery.
- Chọn một bảng chứa dữ liệu Crashlytics đã xuất bằng cách chọn Dự án của tôi > [tên dự án của bạn] > firebase_crashlytics > [tên-bảng của bạn]. Bạn luôn có thể chọn bảng lô để chọn; nếu đã bật tính năng xuất trực tuyến BigQuery của Crashlytics, thì bạn có thể chọn bảng theo thời gian thực.
- Trong phần Cấu hình, hãy đặt Cấp mẫu Crashlytics thành Mặc định.
- Nhấp vào Kết nối để tạo nguồn dữ liệu mới.
- Nhấp vào Thêm vào báo cáo để quay lại mẫu Crashlytics.
- Cuối cùng, hãy nhấp vào Tạo báo cáo để tạo bản sao cho mẫu Trang tổng quan Data Studio của Crashlytics.