Bạn có thể xuất dữ liệu Crashlytics vào BigQuery để tăng số lượt chuyển đổi bản phân tích. 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, đồng thời sử dụng nền tảng này để trực quan hoá cũng như các trang tổng quan tuỳ chỉnh thông qua Google Data Studio.
Bật tính năng BigQuery Export
- Chuyển đến Các công cụ 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 tính năng đồng bộ hoá dữ liệu hằng ngày từ dự án Firebase của bạn để BigQuery.
- Theo mặc định, tất cả các ứng dụng trong dự án của bạn đều 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 của 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 được đồng bộ hoá hằng ngày.
- Nếu bạn bật tính năng xuất trực tuyến BigQuery Crashlytics, thì tất cả các ứng dụng đã liên kết cũng sẽ có một bảng thời gian thực chứa liên tục cập nhật dữ liệu.
Cách huỷ kích hoạt tính năng BigQuery Export: huỷ liên kết dự á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 một 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. Firebase đặt tên cho
bảng dựa trên giá trị 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 cho ứng dụng có mã com.google.test
sẽ có trong 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 Crashlytics tính năng xuất trực tuyến BigQuery, 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 thể hiện 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 của 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ể dùng 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 bằng 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ố của ứng dụng kích hoạt cảnh báo và quy trình làm việc tuỳ chỉnh.
Crashlytics Tính năng xuất trực tuyến của BigQuery không hỗ trợ hộp cát BigQuery.
Khi bạn bật Crashlytics tính năng xuất trực tuyến BigQuery, ngoài bạn sẽ có một bảng theo thời gian thực. Sau đây là những điểm khác biệt mà bạn nên lưu ý giữa các bảng:
Bảng lô | Bảng theo thời gian thực |
---|---|
|
|
Bảng lô rất phù hợp cho việc phân tích dài hạn và xác định xu hướng theo thời gian bởi vì chúng ta lưu trữ các sự kiện một cách bền vững trước khi viết và chúng có thể được chèn vào bảng trong tối đa 30 ngày. Khi chúng tôi ghi dữ liệu vào bảng thời gian thực của bạn, chúng tôi ngay lập tức ghi dữ liệu đó vào BigQuery. Vì vậy, đây là tính năng lý tưởng cho các trang tổng quan trực tiếp và cảnh báo tuỳ chỉnh. Hai bảng này có thể được kết hợp với một truy vấn ghép để lấy lợi ích của cả hai. Xem truy vấn Ví dụ 9 bên dưới.
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. Người nhận hãy tìm hiểu cách sửa đổi điều này, xem Cập nhật thời hạn của 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 mục Crashlytics của BigQuery tích hợp rồi chọn hộp đánh dấu Bao gồm 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 về cách Trực quan 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. Xem Tạo chế độ xem để được hướng dẫn chi tiết.
Bạn có thể làm gì với dữ liệu đã xuất?
Tệp xuất sang BigQuery chứa dữ liệu thô về sự cố, 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 làm dữ liệu khác.
Làm việc với dữ liệu Firebase Crashlytics trong BigQuery
Các ví dụ sau minh hoạ các truy vấn mà bạn có thể chạy trên dữ liệu Crashlytics. Những truy vấn này tạo ra những báo cáo không có trong Crashlytics bảng điều khiển.
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 sự cố dữ liệu sự kiện 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 tìm cách khắc phục nhiều lỗi nhất có thể, một nhà phát triển tiềm năng cho rằng nhóm của mình đã sẵn sàng ra mắt ứng dụng chia sẻ ảnh mới của họ. Trước khi thực hiện, muốn kiểm tra số lượng sự cố mỗi ngày trong tháng vừa qua, để đảm bảo bug-bash 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ố rộng khắp 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 đang cân nhắc cách chỉ định 10 sự cố thường gặp 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ị hàng đầu 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à đó là thiết bị mới- phần lỗi cụ thể. Để đón đầu những mối lo ngại về khả năng tương thích hiện hữu, họ tổng hợp một truy vấn xác định 10 thiết bị gặp phải nhiều sự cố nhất sự cố 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 độ trò chơi của họ trải nghiệm nhiều nhất
sự cố. Để theo dõi số liệu thống kê đó, họ đặt một khoá Crashlytics tuỳ chỉnh
current_level
, đồng thời cập nhật 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ọ viết một truy vấn để báo cáo
phân phối giá trị current_level
được liên kết với mỗi 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 mã nhận dạng người dùng
Một nhà phát triển có một ứng dụng trong chương trình tiếp cận sớm. Hầu hết người dùng đều yêu thích ứng dụng này, nhưng có 3 đã gặp phải nhiều sự cố bất thường. Để đi đến cuối vấn đề cụ thể, họ sẽ viết một truy vấn lấy tất cả sự kiện lỗi đối với 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 sử dụng truy vấn từ Ví dụ 2 ở trên để xác định sự cố cụ thể mã vấn đề. 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 những người 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ố người dùng bị ảnh hưởng bởi một sự cố, được phân chia theo quốc gia
Giờ đây, đội ngũ này đã 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 từ Ví dụ 2 ở trên để xác định mã vấn đề sự cố. bây giờ, nhóm muốn xem sự cố này có lan tới người dùng ở nhiều quốc gia trên thế giới.
Để viết truy vấn này, nhóm cần phải:
Bật tính năng xuất sang BigQuery cho Google Analytics. Hãy xem bài viết Xuất dữ liệu dự án sang BigQuery.
Cập nhật ứng dụng để 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 để tham gia các sự kiện trong Google Analytics Tập dữ liệu BigQuery có sự cố trong Crashlytics Tập dữ liệu 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: 5 vấn đề hàng đầu cho đến thời điểm hiện tại
Yêu cầu bật Crashlytics tính năng xuất trực tuyến 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 phải bật Crashlytics tính năng xuất trực tuyến BigQuery.
Trong ví dụ này, chúng ta kết hợp các bảng theo lô và các bảng theo thời gian thực để thêm 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ỏ trùng lặp bất kỳ sự kiện chung nào trong 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 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ả những sự kiện kéo dài tối đa 2 ngày trước đường 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 vô hiệu hóa liên kết, Firebase sẽ xuất Crashlytics sự kiện 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.
Tập dữ liệu
Firebase Crashlytics tạo một tập dữ liệu mới trong BigQuery cho Crashlytics . Tập dữ liệu này bao gồm toàn bộ dự án của bạn, ngay cả khi dự án đó có nhiều ứng dụng.
Bảng
Firebase Crashlytics tạo một bảng trong tập dữ liệu cho mỗi ứng dụng trong dự án, trừ khi bạn đã chọn không tham gia xuất dữ liệu cho ứng dụng đó. Tên Firebase 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 cho ứng dụng Android có mã 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ẽ là
trong bảng có tên com_google_test_ANDROID_REALTIME
Các bảng chứa tập dữ liệu Crashlytics tiêu chuẩn ngoài bất kỳ dữ liệu tuỳ chỉnh nào Khoá Crashlytics 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 là giống nhau đối với sự cố, lỗi không nghiêm trọng và lỗi ANR. Nếu Crashlytics Xuất trực tuyến BigQuery được bật, sau đó là bảng theo thời gian thực sẽ có các cột giống như bảng lô. Các cột bên trong dữ liệu xuất là đượ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 thị trong các hàng thể hiện 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 |
mã_nhận_dạng_gói | STRING | Mã gói, ví dụ: com.google.gmail |
event_id | STRING | Mã nhận dạng duy nhất của sự kiện |
nghiêm trọng | BOOLEAN | Ứ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ể 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ể vấn đề tương ứng. |
event_timestamp | DẤU THỜI GIAN | Thời điểm sự kiện xảy ra |
device | RECORD | Thiết bị diễn ra sự kiện |
thiết bị.nhà sản xuất | STRING | Nhà sản xuất thiết bị |
thiết bị.model | STRING | Mẫu thiết bị |
thiết bị.cấu trúc | 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ớ đã sử dụng |
bộ nhớ.miễn phí | 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ị |
dung lượng lưu trữ.đã dùng | INT64 | Số byte bộ nhớ đã sử dụng |
dung lượng lưu trữ.miễn phí | INT64 | 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ị |
hệ_điều_hành.hiển_thị_phiên bản | STRING | Phiên bản hệ điều hành trên thiết bị |
operating_system.name | STRING | Tên hệ điều hành trên thiết bị |
điều_hành.modification_state | STRING | Thiết bị đã được sửa đổi hay chưa (ví dụ: đã bị bẻ khoá/bị can thiệp vào hệ thống) (ĐÃ SỬA ĐỔI hoặc CHƯA ĐƯỢC SỬA ĐỔI) |
điều hành_hệ thống.loại | STRING | Loại hệ điều hành chạy trên thiết bị (ví dụ: IOS, MACOS); chỉ có sẵn cho các ứng dụng 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 | |
người dùng | 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 người dùng |
email người dùng | 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ã nhận dạng 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 |
khoá_tuỳ_chỉnh_khoá. | STRING | Khoá do nhà phát triển xác định |
giá trị_khoá_tuỳ_chỉnh | 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 ứng dụng duy nhất và cài đặt thiết bị |
sự cố_sdk_các_phiên bản | STRING | Phiên bản Crashlytics SDK đã 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 | THÔNG TIN KHÁI QUÁT |
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 lập nhật ký |
log.message | STRING | Tin nhắn đã ghi nhật ký |
breadcrumb | BẢN GHI LẶP LẠI | Đường dẫn Google Analytics có dấu thời gian, nếu 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 kết với breadcrumb (tập hợp liên kết phân cấp) |
breadcrumbs.params | BẢN GHI LẶP LẠI | Các thông số liên quan đến breadcrumb (tập hợp liên kết phân cấp) |
breadcrumbs.params.key | STRING | 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_đổ lỗi | RECORD | Khung được xác định là nguyên nhân gốc gây ra sự cố hoặc lỗi |
blame_frame.line | INT64 | Số dòng của tệp của khung |
tệp blame_frame.file | STRING | Tên của tệp khung |
biểu tượng đổ lỗi | STRING | Biểu tượng ngậm nước hoặc biểu tượng thô nếu không chứa nước |
blame_frame.offset | INT64 | Độ lệch byte vào hình ảnh nhị phân chứa mã, chưa đặt cho Ngoại lệ cho Java |
blame_frame.address | INT64 | Địa chỉ trong hình ảnh nhị phân chứa mã, chưa đặt cho Java khung |
blame_frame.library | STRING | Tên hiển thị của thư viện chứa 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 |
đổ lỗi | BOOLEAN | Liệu kết quả phân tích của Crashlytics có xác định được khung này là nguyên nhân hay không về sự cố hoặc lỗi |
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. Ngoại lệ được lồng được trình bày theo thứ tự thời gian ngược (đọc: bản ghi cuối cùng là bản ghi đầu tiên đã gửi ngoại lệ) |
ngoại lệ.type | STRING | Loại ngoại lệ, ví dụ: java.lang.IllegalStateException |
ngoại lệ.exception_message | STRING | 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 cuối cùng (tức là bản ghi đầu tiên) |
ngoại lệ.tiêu đề | STRING | Tiêu đề của chuỗi tin nhắn |
ngoại lệ.phụ đề | STRING | Tiêu đề phụ của chuỗi tin nhắn |
ngoại lệ.bị đổ lỗi | BOOLEAN | Đúng nếu Crashlytics xác định ngoại lệ gây ra lỗi lỗi hoặc sự cố |
ngoại lệ.frames | 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 của 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 chứa nước |
ngoại lệ.frames.offset | INT64 | Độ lệch byte vào hình ảnh nhị phân chứa mã, chưa đặt cho Ngoại lệ cho Java |
ngoại lệ.frames.address | INT64 | Địa chỉ trong hình ảnh nhị phân chứa mã, chưa đặt cho Java khung |
ngoại lệ.frames.library | STRING | Tên hiển thị của thư viện chứa 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 kết quả phân tích của Crashlytics có xác định được khung này là nguyên nhân hay không về sự cố hoặc lỗi |
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 |
error.code | INT64 | Mã lỗi liên quan đến NSError tuỳ chỉnh đã ghi lại của ứng dụng |
error.title | STRING | Tiêu đề của chuỗi tin nhắn |
lỗi.phụ đề | STRING | Tiêu đề phụ của chuỗi tin nhắn |
lỗi.bị đổ lỗi | BOOLEAN | Liệu kết quả phân tích của Crashlytics có xác định được khung này là nguyên nhân hay không lỗi |
error.frame | 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 của khung |
tệp 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 chứa nước |
error.frames.offset | INT64 | Độ lệch byte vào hình ảnh nhị phân có 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 chứa 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 kết quả phân tích của Crashlytics có xác định được khung này là nguyên nhân hay không lỗi |
chuỗi | BẢN GHI LẶP LẠI | Các luồng hiển thị tại thời điểm diễn ra sự kiện |
Đề tài. | BOOLEAN | Luồng có gặp sự cố hay không |
thread.thread_name | STRING | Tên của 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 |
luồng.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 khi gặp sự cố luồng gốc |
luồng.signal_code | STRING | Mã của tín hiệu khiến ứng dụng gặp sự cố; chỉ hiển thị khi gặp sự cố luồng gốc |
thread.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 luồng gốc bị sự cố |
thread.code | INT64 | Chỉ dành cho ứng dụng Apple: Mã lỗi của NSError tuỳ chỉnh được ghi lại của ứng dụng |
string.title | STRING | Tiêu đề của chuỗi tin nhắn |
Đề tài.Phụ đề | STRING | Tiêu đề phụ của chuỗi tin nhắn |
luồng.bị đổ lỗi | BOOLEAN | Liệu kết quả phân tích của Crashlytics có xác định được khung này là nguyên nhân hay không về sự cố hoặc lỗi |
thread.frames | BẢN GHI LẶP LẠI | Khung của luồng |
luồng.frames.line | INT64 | Số dòng của tệp của khung |
luồng.frames.file | STRING | Tên của tệp khung |
luồng.frames.symbol | STRING | Biểu tượng ngậm nước hoặc biểu tượng thô nếu không thể đọc |
thread.frames.offset | INT64 | Độ lệch byte vào hình ảnh nhị phân có 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 chứa 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.blmed | BOOLEAN | Liệu kết quả phân tích của Crashlytics có xác định được khung này là nguyên nhân hay không lỗi |
unity_metadata.unity_version | STRING | 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 gỡ lỗi |
unity_metadata.processor_type | STRING | Loại đơn vị 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 | Dung lượng 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 của thiết bị đồ hoạ |
unity_metadata.graphics_device_vendor_id | INT64 | Giá trị nhận dạng của 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 độ chương trình đổ bóng của đồ hoạ |
unity_metadata.graphics_render_target_count | INT64 | Số lượng mục tiêu hiển thị đồ hoạ |
unity_metadata.graphics_copy_texture_support?hl=vi | STRING | Hỗ trợ sao chép hoạ tiết đồ hoạ như định nghĩa 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ị hoạ tiết |
unity_metadata.screen_size_px | STRING | Kích thước màn hình tính bằng pixel, được định dạng thành chiều rộng x chiều cao |
unity_metadata.screen_Độ phân giải_dpi | STRING | DPI của màn hình ở dạng số có dấu phẩy động |
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 Crashlytics tập dữ liệu trong BigQuery 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 thử làm theo 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 thông tin toàn diện tập hợp phương diện và chỉ số từ giản đồ BigQuery Crashlytics đã xuất. Nếu bạn đã bật Crashlytics tính năng xuất trực tuyến BigQuery, bạn có thể xem thông tin đó 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 làm mẫu để nhanh chóng tạo báo cáo mới và hình ảnh trực quan dựa trên dữ liệu sự cố thô trong ứng dụng của bạn:
- Mở mẫu Trang tổng quan của Data Studio 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 > [your-project-name] > firebase_crashlytics > [tên-bảng-của-bạn]. Bạn luôn có thể chọn bảng lô; nếu Crashlytics Tính năng xuất trực tuyến của BigQuery đã bật, bạn có thể chọn bảng thời gian thực.
- Trong phần Cấu hình, hãy đặt Crashlytics Cấp mẫu 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 Crashlytics Mẫu trang tổng quan Data Studio.