Bạn có thể xuất dữ liệu Crashlytics của mình sang 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 nhà cung cấp đám mây khác và sử dụng dữ liệu đó để trực quan hóa và trang tổng quan tùy chỉnh với Google Data Studio.
Bật tính năng xuất BigQuery
- Chuyển đến trang Tích hợp trong bảng điều khiển 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 của mình với BigQuery:
- Firebase thiết lập đồng bộ hóa hàng ngày dữ liệu của bạn 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à bạn thêm vào dự án sau này sẽ tự động được liên kết với BigQuery. Bạn có thể quản lý ứng dụng nào gửi dữ liệu .
- Firebase xuấ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, bảng này bao gồm một bảng lô chứa dữ liệu từ quá trình đồng bộ hóa hàng ngày.
- Nếu bạn bật tính năng xuất phát trực tuyến Crashlytics BigQuery, tất cả các ứng dụng được liên kết cũng sẽ có bảng thời gian thực chứa dữ liệu cập nhật liên tục.
Để hủy kích hoạt tính năng xuất BigQuery, hãy hủy liên kết dự án của bạn trong bảng điều khiển Firebase.
Dữ liệu nào được xuất sang BigQuery?
Dữ liệu Firebase Crashlytics được xuất sang tập dữ liệu BigQuery có tên firebase_crashlytics
. Theo mặc định, các bảng riêng lẻ sẽ được tạo bên 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 mã 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 cho ứng dụng có ID com.google.test
sẽ nằm trong bảng có tên com_google_test_ANDROID
. Bảng bó này được cập nhật một lần mỗi ngày. Nếu bạn bật tính năng xuất phát trực tuyến Crashlytics BigQuery, dữ liệu Firebase Crashlytics cũng sẽ được truyền trực tuyến theo thời gian thực tới 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à ANR.
Bật tính năng xuất phát trực tuyến Crashlytics BigQuery
Bạn có thể truyền trực tuyến dữ liệu Crashlytics của mình theo thời gian thực bằng BigQueryStreaming . Bạn có thể sử dụng nó cho bất kỳ mục đích nào yêu cầu dữ liệu trực tiếp, chẳng hạn như trình bày thông tin trong bảng điều khiển trực tiếp, xem buổi giới thiệu trực tiếp hoặc theo dõi các sự cố ứng dụng kích hoạt cảnh báo và quy trình làm việc tùy chỉnh.
Tính năng xuất phát trực tuyến BigQuery của Crashlytics không khả dụng cho hộp cát BigQuery.
Khi bạn bật tính năng xuất phát trực tuyến Crashlytics BigQuery, ngoài bảng lô, bạn sẽ có một bảng thời gian thực. Dưới đây là những khác biệt bạn cần lưu ý giữa các bảng:
Bảng lô | Bảng thời gian thực |
---|---|
|
|
Bảng lô lý 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ữ lâu dài các sự kiện trước khi viết chúng và chúng có thể được điền lại vào bảng trong tối đa 90 ngày. Khi ghi dữ liệu vào bảng thời gian thực của bạn, chúng tôi sẽ ghi dữ liệu đó ngay vào BigQuery và do đó, đây là giải pháp lý tưởng cho các trang tổng quan trực tiếp và cảnh báo tùy chỉnh. Hai bảng này có thể được kết hợp với một truy vấn ghép để tận dụng được lợi ích của cả hai. Xem truy vấn Ví dụ 9 bên dưới.
Theo mặc định, bảng 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 điều này, hãy xem Cập nhật hết hạn phân vùng .
Bật tính năng phát trực tuyến BigQuery của Crashlytics
Để bật tính năng phát trực tuyến, hãy điều hướng đến phần Crashlytics của trang tích hợp BigQuery và chọn hộp kiểm Bao gồm tính năng phát trực tuyến .
Mẫu phòng dữ liệu
Để bật dữ liệu thời gian thực trong mẫu Data Studio của bạn, hãy làm theo hướng dẫn trong Trực quan hóa dữ liệu Crashlytics đã xuất bằng Data Studio .
Lượt xem
Bạn có thể biến các truy vấn mẫu bên dưới thành dạng xem bằng giao diện người dùng BigQuery. Xem Tạo chế độ xem để 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 của 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 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 Firebase Crashlytics trong BigQuery
Các ví dụ sau minh họa các truy vấn bạn có thể chạy trên dữ liệu Crashlytics của mình. Các truy vấn này tạo ra các báo cáo không có sẵn trong bảng điều khiển Crashlytics.
Ví dụ về truy vấn Crashlytics
Các ví dụ sau đây minh họa cách tạo báo cáo tổng hợp dữ liệu sự kiện va chạm 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ể, nhà phát triển chính 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 của họ. Trước khi làm vậy, họ muốn kiểm tra số lượng sự cố mỗi ngày trong tháng qua, để chắc chắn rằng việc sửa 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
Để sắp xếp thứ tự ưu tiên hợp lý cho các kế hoạch sản xuất, người quản lý dự án cân nhắc cách chỉ ra 10 sự cố phổ biến nhất trong sản phẩm của họ. Họ 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: Top 10 thiết bị gặp sự cố
Mùa thu là mùa điện thoại mới! Nhà phát triển biết điều đó cũng có nghĩa là mùa sự cố mới dành riêng cho thiết bị đang đến. Để giải quyết những lo ngại về khả năng tương thích đang rình rập, 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 khóa tùy 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 nhiều sự cố nhất. Để giúp họ theo dõi chỉ số đó, họ đặt khóa Crashlytics tùy chỉnh current_level
và cập nhật khóa đó mỗi khi người dùng đạt đến cấp độ mới.
Mục tiêu-C
CrashlyticsKit setIntValue:3 forKey:@"current_level";
Nhanh
Crashlytics.sharedInstance().setIntValue(3, forKey: "current_level");
Java
Crashlytics.setInt("current_level", 3);
Với khóa đó trong quá trình xuất BigQuery, họ sẽ viết truy vấn để báo cáo việc phân bổ các giá trị current_level
liên quan đến từng sự kiện sự cố:
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 User ID
Một nhà phát triển có ứng dụng ở chế độ truy cập sớm. Hầu hết người dùng của họ đều thích nó, nhưng ba người đã gặp phải một số sự cố bất thường. Để đi đến tận cùng của vấn đề, họ viết một truy vấn lấy tất cả các sự kiện sự cố cho những người dùng đó bằng cách sử dụng ID 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 sự cố sự cố cụ thể
Một nhà phát triển đã phát hành một lỗi nghiêm trọng đối với một nhóm người thử nghiệm phiên bản beta. Nhóm đã có thể sử dụng truy vấn từ Ví dụ 2 ở trên để xác định ID sự cố sự cố cụ thể. Bây giờ họ muốn chạy truy vấn để trích xuất danh sách người dùng ứng dụng bị ảnh hưởng bởi 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ố lượng người dùng bị ảnh hưởng bởi sự cố sự cố, chia theo quốc gia
Hiện nhóm đã phát hiện một lỗi nghiêm trọng trong quá trình triển khai bản phát hành mới. Họ có thể sử dụng truy vấn từ Ví dụ 2 ở trên để xác định ID sự cố sự cố cụ thể. Nhóm hiện muốn xem liệu sự cố này có lan sang người dùng ở các quốc gia khác nhau trên thế giới hay không.
Để viết truy vấn này, nhóm sẽ cần:
Bật tính năng xuất BigQuery cho Google Analytics. Xem Xuất dữ liệu dự án sang BigQuery .
Cập nhật ứng dụng của họ để chuyển ID người dùng vào cả SDK Google Analytics và SDK Crashlytics.
Mục tiêu-C
CrashlyticsKit setUserIdentifier:@"123456789"; FIRAnalytics setUserID:@"12345678 9";
Nhanh
Crashlytics.sharedInstance().setUserIdentifier("123456789"); Analytics.setUserID("123456789");
Java
Crashlytics.setUserIdentifier("123456789"); mFirebaseAnalytics.setUserId("123456789");
Viết truy vấn sử dụng trường ID người dùng để tham gia 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 Crashlytics BigQuery:
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: Top 5 vấn đề tính đến thời điểm hiện tại
Yêu cầu bật tính năng xuất phát trực tuyến Crashlytics BigQuery
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 phát trực tuyến Crashlytics BigQuery.
Trong ví dụ này, chúng tôi kết hợp các bảng lô và bảng thời gian thực để thêm thông tin thời gian thực vào dữ liệu lô đáng tin cậy. Vì event_id
là khóa chính nên chúng ta có thể sử dụng DISTINCT event_id
để loại bỏ bất kỳ sự kiện chung nào khỏi hai 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 lược đồ 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à ANR), bao gồm các sự kiện từ tối đa hai ngày trước khi liên kết, với tùy chọn chèn lấp tối đa chín mươi ngày.
Từ thời điểm đó cho đến khi bạn tắt liên kết, Firebase xuất các sự kiện Crashlytics hàng ngày. Có thể mất vài phút để dữ liệu có sẵn trong BigQuery sau mỗi lần xuất.
Bộ dữ liệu
Firebase Crashlytics tạo tập dữ liệu mới trong BigQuery cho dữ liệu Crashlytics. Tập dữ liệu bao gồm toàn bộ dự án của bạn, ngay cả khi dự án có nhiều ứng dụng.
Những cái bàn
Firebase Crashlytics 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ừ khi 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 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 cho ứng dụng Android có ID com.google.test
sẽ nằm trong bảng có tên com_google_test_ANDROID
và dữ liệu 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 bên cạnh bất kỳ khóa Crashlytics tùy chỉnh nào 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 bảng giống hệt nhau đối với sự cố, lỗi không nghiêm trọng và ANR. Nếu tính năng xuất phát trực tuyến BigQuery của Crashlytics được bật thì bảng thời gian thực sẽ có các cột giống như bảng lô. Các cột trong quá trình 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 hiện diện trong các hàng biểu thị các sự kiện không có dấu vết ngăn xếp.
Tên trường | Loại dữ liệu | Sự miêu tả |
---|---|---|
nền tảng | SỢI DÂY | Ứng dụng Apple hoặc Android |
gói_nhận dạng | SỢI DÂY | ID gói, ví dụ: com.google.gmail |
sự kiện_id | SỢI DÂY | ID duy nhất cho sự kiện |
tử vong | BOOLEAN | Liệu ứng dụng có bị lỗi hay không |
lỗi_type | SỢI DÂY | Loại lỗi của sự kiện (FATAL, NON_FATAL, ANR) |
vấn đề_id | SỢI DÂY | Vấn đề liên quan đến sự kiện |
biến_id | SỢI DÂY | Biến thể vấn đề liên quan đến sự kiện này Lưu ý rằng không phải tất cả các sự kiện đều có biến thể vấn đề liên quan. |
sự kiện_timestamp | DẤU THỜI GIAN | Khi sự kiện xảy ra |
thiết bị | GHI | Thiết bị xảy ra sự kiện vào |
nhà sản xuất thiết bị | SỢI DÂY | Nhà sản xuất thiết bị |
mô hình thiết bị | SỢI DÂY | Mẫu thiết bị |
thiết bị.kiến trúc | SỢI DÂY | X86_32, X86_64, ARMV7, ARM64, ARMV7S hoặc ARMV7K |
ký ức | GHI | Trạng thái bộ nhớ của thiết bị |
bộ nhớ.sử dụng | INT64 | Byte bộ nhớ được sử dụng |
bộ nhớ.miễn phí | INT64 | Byte bộ nhớ còn lại |
kho | GHI | Bộ lưu trữ liên tục của thiết bị |
lưu trữ.sử dụng | INT64 | Byte lưu trữ được sử dụng |
lưu trữ.miễn phí | INT64 | Số byte lưu trữ còn lại |
hệ điều hành | GHI | Thông tin chi tiết về hệ điều hành trên thiết bị |
Operating_system.display_version | SỢI DÂY | Phiên bản hệ điều hành trên thiết bị |
điều hành_system.name | SỢI DÂY | Tên hệ điều hành trên thiết bị |
Operating_system.modification_state | SỢI DÂY | Cho dù thiết bị đã được sửa đổi hay chưa, ví dụ như đã jailbreak/root (ĐÃ SỬA ĐỔI hoặc KHÔNG ĐƯỢC SỬA ĐỔI) |
điều hành_system.type | SỢI DÂY | Loại hệ điều hành đang chạy trên thiết bị (ví dụ: iOS, MACOS); chỉ khả dụng cho các ứng dụng nền tảng của Apple |
Operating_system.device_type | SỢI DÂY | Loại thiết bị (ví dụ: MOBILE, TABLET, TV, v.v.); còn được gọi là "danh mục thiết bị" |
ứng dụng | GHI | Ứng dụng đã tạo ra sự kiện |
ứng dụng.build_version | SỢI DÂY | Phiên bản xây dựng của ứng dụng |
ứng dụng.display_version | SỢI DÂY | |
người dùng | GHI | Tùy chọn: Thông tin được thu thập về người dùng ứng dụng |
tên tài khoản | SỢI DÂY | Tùy chọn: Tên người dùng |
Email người dùng | SỢI DÂY | Tùy chọn: Địa chỉ email của người dùng |
tên người dùng | SỢI DÂY | Tùy chọn: ID dành riêng cho ứng dụng được liên kết với người dùng |
custom_keys | BẢN GHI LẶP LẠI | Cặp khóa-giá trị do nhà phát triển xác định |
custom_keys.key | SỢI DÂY | Khóa do nhà phát triển xác định |
custom_keys.value | SỢI DÂY | Giá trị do nhà phát triển xác định |
cài đặt_uuid | SỢI DÂY | ID xác định một ứng dụng và cài đặt thiết bị duy nhất |
Crashlytics_sdk_versions | SỢI DÂY | Phiên bản SDK Crashlytics đã tạo ra sự kiện |
app_orientation | SỢI DÂY | CHÂN DUNG, CẢNH QUAN, FACE_UP hoặc FACE_DOWN |
thiết bị_định hướng | SỢI DÂY | CHÂN DUNG, CẢNH QUAN, FACE_UP hoặc FACE_DOWN |
tiến trình_trạng thái | SỢI DÂY | NỀN hoặc TIỀN NỀN |
nhật ký | BẢN GHI LẶP LẠI | Thông báo nhật ký được đánh dấu thời gian được tạo bởi trình ghi nhật ký Crashlytics, nếu được bật |
nhật ký.timestamp | DẤU THỜI GIAN | Khi nhật ký được tạo |
nhật ký.tin nhắn | SỢI DÂY | Tin nhắn được ghi lại |
vụn bánh mì | BẢN GHI LẶP LẠI | Đường dẫn Google Analytics được đánh dấu thời gian, nếu được bật |
breadcrumbs.timestamp | DẤU THỜI GIAN | Dấu thời gian liên quan đến đường dẫn |
breadcrumbs.name | SỢI DÂY | Tên gắn liền với breadcrumb |
breadcrumbs.params | BẢN GHI LẶP LẠI | Các tham số liên quan đến breadcrumb |
breadcrumbs.params.key | SỢI DÂY | Khóa tham số được liên kết với đường dẫn |
Breadcrumbs.params.value | SỢI DÂY | Một giá trị tham số được liên kết với đường dẫn |
đổ lỗi_frame | GHI | Khung được xác định là nguyên nhân gốc rễ của sự cố hoặc lỗi |
đổ lỗi_frame.line | INT64 | Số dòng của tập tin của khung |
đổ lỗi_frame.file | SỢI DÂY | Tên của tập tin khung |
đổ lỗi_frame.symbol | SỢI DÂY | Biểu tượng ngậm nước hoặc biểu tượng thô nếu nó không thể ngậm nước |
đổ lỗi_frame.offset | INT64 | Độ lệch byte thành hình ảnh nhị phân chứa mã, không được đặt cho các ngoại lệ Java |
đổ lỗi_frame.địa chỉ | INT64 | Địa chỉ trong ảnh nhị phân chứa mã, chưa được đặt cho khung Java |
đổ lỗi_frame.library | SỢI DÂY | Tên hiển thị của thư viện bao gồm khung |
đổ lỗi_frame.owner | SỢI DÂY | NHÀ PHÁT TRIỂN, NHÀ CUNG CẤP, THỜI GIAN CHẠY, NỀN TẢNG hoặc HỆ THỐNG |
đổ lỗi_frame.blamed | BOOLEAN | Phân tích của Crashlytics có xác định được khung hình này là nguyên nhân gây ra sự cố hoặc lỗi hay không |
ngoại lệ | BẢN GHI LẶP LẠI | Chỉ dành cho Android: Ngoại lệ xảy ra trong sự kiện này. Các ngoại lệ lồng nhau được trình bày theo thứ tự thời gian đảo ngược (đọc: bản ghi cuối cùng là ngoại lệ đầu tiên được ném) |
ngoại lệ.type | SỢI DÂY | Loại ngoại lệ, ví dụ java.lang.IllegalStateException |
ngoại lệ.Exception_message | SỢI DÂY | Một thông báo liên quan đến ngoại lệ |
ngoại lệ.nested | BOOLEAN | Đúng cho tất cả trừ ngoại lệ được ném cuối cùng (tức là bản ghi đầu tiên) |
ngoại lệ.title | SỢI DÂY | Tiêu đề của chủ đề |
ngoại lệ.subtitle | SỢI DÂY | Phụ đề của chủ đề |
ngoại lệ.blamed | BOOLEAN | Đúng nếu Crashlytics xác định ngoại lệ là nguyên nhân gây ra lỗi hoặc sự cố |
ngoại lệ.frames | BẢN GHI LẶP LẠI | Các khung liên quan đến ngoại lệ |
ngoại lệ.frames.line | INT64 | Số dòng của tập tin của khung |
ngoại lệ.frames.file | SỢI DÂY | Tên của tập tin khung |
ngoại lệ.frames.symbol | SỢI DÂY | Biểu tượng ngậm nước hoặc biểu tượng thô nếu nó không thể ngậm nước |
ngoại lệ.frames.offset | INT64 | Độ lệch byte thành hình ảnh nhị phân chứa mã, không được đặt cho các ngoại lệ Java |
ngoại lệ.frames.address | INT64 | Địa chỉ trong ảnh nhị phân chứa mã, chưa được đặt cho khung Java |
ngoại lệ.frames.library | SỢI DÂY | Tên hiển thị của thư viện bao gồm khung |
ngoại lệ.frames.owner | SỢI DÂY | 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 | Phân tích của Crashlytics có xác định được khung hình này là nguyên nhân gây ra sự cố hoặc lỗi hay không |
lỗi | BẢN GHI LẶP LẠI | Chỉ ứng dụng của Apple: lỗi không nghiêm trọng |
lỗi.queue_name | SỢI DÂY | Hàng đợi mà luồng đang chạy |
lỗi.code | INT64 | Mã lỗi liên quan đến NSError được ghi nhật ký tùy chỉnh của ứng dụng |
lỗi.title | SỢI DÂY | Tiêu đề của chủ đề |
lỗi.phụ đề | SỢI DÂY | Phụ đề của chủ đề |
lỗi.bị đổ lỗi | BOOLEAN | Phân tích của Crashlytics có xác định được khung hình này có phải là nguyên nhân gây ra lỗi hay không |
lỗi.frames | BẢN GHI LẶP LẠI | Các khung của stacktrace |
lỗi.frames.line | INT64 | Số dòng của tập tin của khung |
lỗi.frames.file | SỢI DÂY | Tên của tập tin khung |
error.frames.symbol | SỢI DÂY | Biểu tượng ngậm nước hoặc biểu tượng thô nếu nó không thể ngậm nước |
error.frames.offset | INT64 | Phần bù byte thành hình ảnh nhị phân chứa mã |
error.frames.address | INT64 | Địa chỉ trong ảnh nhị phân chứa mã |
error.frames.library | SỢI DÂY | Tên hiển thị của thư viện bao gồm khung |
lỗi.frames.owner | SỢI DÂY | 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 | Phân tích của Crashlytics có xác định được khung hình này có phải là nguyên nhân gây ra lỗi hay không |
chủ đề | BẢN GHI LẶP LẠI | Chủ đề có mặt tại thời điểm diễn ra sự kiện |
chủ đề.crashed | BOOLEAN | Liệu chủ đề có bị hỏng hay không |
chủ đề.thread_name | SỢI DÂY | Tên của chủ đề |
chủ đề.queue_name | SỢI DÂY | Chỉ ứng dụng của Apple: Hàng đợi mà luồng đang chạy |
chủ đề.signal_name | SỢI DÂY | 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ị lỗi |
chủ đề.signal_code | SỢI DÂY | Mã tín hiệu khiến ứng dụng gặp sự cố; chỉ hiện diện trên các chủ đề gốc bị lỗi |
chủ đề.crash_address | INT64 | Địa chỉ của tín hiệu khiến ứng dụng gặp sự cố; chỉ hiện diện trên các chủ đề gốc bị lỗi |
chủ đề.code | INT64 | Chỉ ứng dụng Apple: Mã lỗi của NSError được ghi nhật ký tùy chỉnh của ứng dụng |
chủ đề.title | SỢI DÂY | Tiêu đề của chủ đề |
chủ đề.subtitle | SỢI DÂY | Phụ đề của chủ đề |
chủ đề.blamed | BOOLEAN | Phân tích của Crashlytics có xác định được khung hình này là nguyên nhân gây ra sự cố hoặc lỗi hay không |
chủ đề.frames | BẢN GHI LẶP LẠI | Các khung của sợi |
chủ đề.frames.line | INT64 | Số dòng của tập tin của khung |
chủ đề.frames.file | SỢI DÂY | Tên của tập tin khung |
thread.frames.symbol | SỢI DÂY | Biểu tượng ngậm nước hoặc biểu tượng thô nếu nó không thể thủy hóa được |
chủ đề.frames.offset | INT64 | Phần bù byte thành hình ảnh nhị phân chứa mã |
thread.frames.address | INT64 | Địa chỉ trong ảnh nhị phân chứa mã |
chủ đề.frames.library | SỢI DÂY | Tên hiển thị của thư viện bao gồm khung |
chủ đề.frames.owner | SỢI DÂY | NHÀ PHÁT TRIỂN, NHÀ CUNG CẤP, THỜI GIAN CHẠY, NỀN TẢNG hoặc HỆ THỐNG |
chủ đề.frames.blamed | BOOLEAN | Phân tích của Crashlytics có xác định được khung hình này có phải là nguyên nhân gây ra lỗi hay không |
unity_metadata.unity_version | SỢI DÂY | Phiên bản Unity chạy trên thiết bị này |
unity_metadata.debug_build | BOOLEAN | Nếu đây là bản dựng gỡ lỗi |
unity_metadata.processor_type | SỢI DÂY | Loại bộ xử lý |
unity_metadata.processor_count | INT64 | Số lượng bộ xử lý (lõi) |
unity_metadata.processor_tần số_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ớ đồ họa tính bằng MB |
unity_metadata.graphics_device_id | INT64 | Mã nhận dạng của thiết bị đồ họa |
unity_metadata.graphics_device_vendor_id | INT64 | Mã nhận dạng của nhà cung cấp bộ xử lý đồ họa |
unity_metadata.graphics_device_name | SỢI DÂY | Tên thiết bị đồ họa |
unity_metadata.graphics_device_vendor | SỢI DÂY | Nhà cung cấp thiết bị đồ họa |
unity_metadata.graphics_device_version | SỢI DÂY | Phiên bản của thiết bị đồ họa |
unity_metadata.graphics_device_type | SỢI DÂY | Loại thiết bị đồ họa |
unity_metadata.graphics_shader_level | INT64 | Mức độ đổ bóng của đồ họa |
unity_metadata.graphics_render_target_count | INT64 | Số lượng mục tiêu hiển thị đồ họa |
unity_metadata.graphics_copy_texture_support | SỢI DÂY | Hỗ trợ sao chép kết cấu đồ họa như được xác định trong Unity API |
unity_metadata.graphics_max_texture_size | INT64 | Kích thước tối đa dành riêng cho việc hiển thị kết cấu |
unity_metadata.screen_size_px | SỢI DÂY | Kích thước của màn hình tính bằng pixel, được định dạng là chiều rộng x chiều cao |
unity_metadata.screen_solution_dpi | SỢI DÂY | PI của màn hình dưới dạng số dấu phẩy động |
unity_metadata.screen_refresh_rate_hz | INT64 | Tốc độ làm mới của màn hình tính bằng Hz |
Trực quan hóa dữ liệu Crashlytics đã xuất bằng Data Studio
Google Data Studio biến tập dữ liệu Crashlytics của bạn trong BigQuery thành các báo cáo dễ đọc, dễ chia sẻ và có thể tùy chỉnh hoàn toàn.
Để 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 toàn diện các thứ nguyên và chỉ số từ giản đồ Crashlytics BigQuery đã xuất. Nếu đã bật tính năng xuất phát trực tuyến Crashlytics BigQuery, bạn có thể xem dữ liệu đó trên trang Xu hướng 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 hóa mới dựa trên dữ liệu sự cố thô của ứng dụng của riêng bạn:
- Mở mẫu Bảng điều khiển Crashlytics Data Studio .
- Nhấp vào Sử dụng mẫu ở góc trên bên phải.
- Trong danh sách thả xuống Nguồn dữ liệu mới , chọn Tạo nguồn dữ liệu mới .
- Nhấp vào Chọn trên thẻ BigQuery .
- Chọn 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ảng bó của bạn luôn có sẵn để chọn; nếu bật tính năng xuất phát trực tuyến Crashlytics BigQuery, thay vào đó, bạn có thể chọn bảng thời gian thực của mình.
- Trong Cấu hình , đặt cấp độ Mẫu Crashlytics thành Mặc định .
- Bấm 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, nhấp vào Tạo báo cáo để tạo bản sao của mẫu Bảng điều khiển Crashlytics Data Studio.