您可以將Firebase Crashlytics資料匯出至 BigQuery: 進一步分析BigQuery 可讓您使用 BigQuery SQL,匯出至其他雲端服務供應商,並用於 視覺化呈現和自訂資訊主頁。
啟用匯出到 BigQuery 功能
- 前往 Firebase 控制台中的 「整合」頁面。
- 在「BigQuery」資訊卡中,按一下「連結」。
- 按照畫面上的指示啟用匯出至 BigQuery 的功能。
啟用匯出至 BigQuery 的功能後,會發生以下情況:
根據預設,專案中的所有應用程式會連結至「BigQuery」和 您稍後加入專案的應用程式會自動連結至 BigQuery。你可以 管理該傳送資料的應用程式。
Firebase 會設定每天同步處理 Firebase 專案的資料 BigQuery。
Firebase 匯出現有資料的副本 至 BigQuery。對於每個連結的應用程式,此資料會包含批次表格 包含每日同步的資料
如果發生以下情況: 啟用 Crashlytics 串流匯出至 BigQuery功能, 所有連結的應用程式都會有即時資料表,內含持續更新的項目 資料。
如要停用匯出至 BigQuery 的功能,請在 Firebase 控制台中取消連結專案。
哪些資料會匯出至「BigQuery」?
Firebase Crashlytics 資料會匯出至名為「BigQuery」的資料集
firebase_crashlytics
。根據預設,系統會為專案中的每個應用程式在 Crashlytics 資料集中建立個別資料表。Firebase 會將
當中的表格是以應用程式 ID 為依據,半形句號轉換為底線,且
附加在結尾處的平台名稱
例如,來自套件名稱為 com.google.test
的 Android 應用程式資料
位於名為 com_google_test_ANDROID
的資料表中這個批次資料表已更新
每天一次如果啟用 Crashlytics 串流匯出到
BigQuery,Crashlytics的資料也會即時串流播放
至名為 com_google_test_ANDROID_REALTIME
的資料表。
表格中的每一列都代表應用程式發生的事件,包括 當機、一般錯誤和 ANR 事件
將 Crashlytics 串流資料匯出至 BigQuery
你可以透過下列方式即時串流Crashlytics資料: BigQuery 串流處理。 這個 API 可用於任何需要即時資料的用途,例如進行簡報 查看即時資訊主頁中的資訊、即時觀看推出作業,或監控 以及觸發快訊和自訂工作流程的應用程式問題。
啟用 Crashlytics 串流匯出至 BigQuery 功能後, 除了批次表格外,系統還會提供即時表格。接著來介紹 請留意資料表之間的差異:
批次資料表 | 即時資料表 |
---|---|
|
批次表格非常適合長期分析並找出變化趨勢 因為我們必須在寫入事件之前儲存資料,而且這些事件可以補充 資料表最多保留 30 天當我們將資料寫入即時資料表時,會立即將資料寫入 BigQuery,因此非常適合用於即時資訊主頁和自訂快訊。這兩種表格 結合查詢來取得 好處
根據預設,即時資料表的分區到期時間為 30 天。目的地: 要瞭解如何修改這項設定,請參閱 設定分區到期時間 BigQuery說明文件中。
啟用 Crashlytics 串流匯出至 BigQuery
- 前往 Firebase 控制台中的 「整合」頁面。
- 在「BigQuery」資訊卡中,按一下「管理」。
- 勾選「包含串流」核取方塊。
這樣就能為所有已連結的應用程式啟用串流功能。
你可以如何處理匯出的資料?
匯出至 BigQuery 的資料包含原始當機資料,包括裝置類型 作業系統、例外狀況 (Android 應用程式) 或錯誤 (Apple 應用程式),以及 Crashlytics 記錄以及其他資料。
確實檢查匯出的「Crashlytics」資料及其資料表 結構定義 (見本頁後半部)
使用數據分析範本
如要在數據分析範本中啟用即時資料,請按照 操作說明 使用數據分析將匯出的 Crashlytics 資料視覺化。
建立檢視表
您可以使用 BigQuery UI 將查詢轉換為檢視表。 如需詳細操作說明,請參閱 在「資料檢視」頁面中建立資料檢視: BigQuery 說明文件。
執行查詢
下列範例示範您可以在 Crashlytics 資料上執行的查詢,以產生報表,將當機事件資料匯總至更容易理解的摘要中。由於這類報表 該機構可在 Firebase 控制台的 Crashlytics 資訊主頁中補充資料 協助您分析及瞭解當機資料
範例 1:每日當機次數
在盡可能修正錯誤後,您認為團隊終於 即可啟動新的相片分享應用程式。開始前,請先查看 在過去一個月內每天當機的次數,藉此確保您的 Bug-bash 讓 長期下來應用程式就越穩定
以下是 Android 應用程式的查詢範例。如果是 iOS 應用程式,請使用軟體包 ID 和 IOS
(而非套件名稱和 ANDROID
)。
SELECT
COUNT(DISTINCT event_id) AS number_of_crashes,
FORMAT_TIMESTAMP("%F", event_timestamp) AS date_of_crashes
FROM
`PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID`
GROUP BY
date_of_crashes
ORDER BY
date_of_crashes DESC
LIMIT 30;
範例 2:找出最普遍的當機事件
如要妥善安排製作計畫的優先順序,建議您找出前 10 名 常見當機情形您將產生一個查詢 資料點
以下是 Android 應用程式的查詢範例。如果是 iOS 應用程式,請使用軟體包 ID 和 IOS
(而非套件名稱和 ANDROID
)。
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
`PROJECT_ID.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;
示例 3:前 10 大當機裝置
秋天是換新手機的季節!貴公司知道這也代表 裝置發生問題的日期,尤其是 Android 裝置。為了提前 變得越來越少,成功建立查詢後 過去一週 (168 小時) 發生當機次數最多的裝置。
以下是 Android 應用程式的查詢範例。如果是 iOS 應用程式,請使用軟體包 ID
和 IOS
(而非套件名稱和 ANDROID
)。
SELECT
device.model,
COUNT(DISTINCT event_id) AS number_of_crashes
FROM
`PROJECT_ID.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;
範例 4:依自訂鍵篩選
您是遊戲開發人員,想要瞭解遊戲的哪個關卡最常當機。
為了幫助追蹤這項統計資料,您設定了
自訂 Crashlytics 鍵
稱為 current_level
,每當使用者達到新關卡時,就更新此屬性。
Swift
Crashlytics.sharedInstance().setIntValue(3, forKey: "current_level");
Objective-C
CrashlyticsKit setIntValue:3 forKey:@"current_level";
Java
Crashlytics.setInt("current_level", 3);
將鍵匯出至 BigQuery 後,您就能將查詢寫入以下位置:
回報與個別當機事件相關的 current_level
值分佈情形
活動。
以下是 Android 應用程式的查詢範例。如果是 iOS 應用程式,請使用軟體包 ID
和 IOS
(而非套件名稱和 ANDROID
)。
SELECT
COUNT(DISTINCT event_id) AS num_of_crashes,
value
FROM
`PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID`
UNNEST(custom_keys)
WHERE
key = "current_level"
GROUP BY
key,
value
ORDER BY
num_of_crashes DESC
範例 5:User ID 擷取
您有一個處於搶先體驗階段的 Android 應用程式。大部分使用者都喜歡這個功能 發生異常當機次數為了釐清問題的真正原因,您可以撰寫查詢,使用這些使用者的使用者 ID 來提取所有當機事件:
以下是 Android 應用程式的查詢範例。如果是 iOS 應用程式,請使用軟體包 ID
和 IOS
(而非套件名稱和 ANDROID
)。
SELECT *
FROM
`PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID`
WHERE
user.id IN ("USER_ID_1", "USER_ID_2", "USER_ID_3")
ORDER BY
user.id
範例 6:找出面臨特定當機問題的所有使用者
您的團隊不小心將重大錯誤發布給一群 Beta 版測試人員。 您的團隊可以使用上述「找出最常見的當機情形」範例中的查詢,找出特定的當機問題 ID。您的團隊現在想執行查詢,擷取受此當機情形影響的應用程式使用者名單。
以下是 Android 應用程式的查詢範例。如果是 iOS 應用程式,請使用軟體包 ID
和 IOS
(而非套件名稱和 ANDROID
)。
SELECT user.id as user_id
FROM
`PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID`
WHERE
issue_id = "ISSUE_ID"
AND application.display_version = "APP_VERSION"
AND user.id != ""
ORDER BY
user.id;
示例 7:受到當機問題影響的使用者人數 (按國家/地區細分)
您的團隊在推出新版本時偵測到重大錯誤。您可以使用上述「找出最常見的當機情形」範例中的查詢,找出特定的當機問題 ID。您的團隊現在想瞭解這個當機問題是否已擴散到世界各地的使用者。
如要編寫這項查詢,您的團隊必須執行下列操作:
啟用將 Google Analytics 資料匯出至「BigQuery」的功能。 請參閱「將專案資料匯出至 BigQuery」。
更新應用程式,將使用者 ID 同時傳遞至 Google Analytics SDK 和 Crashlytics SDK
Swift
Crashlytics.sharedInstance().setUserIdentifier("123456789"); Analytics.setUserID("123456789");
Objective-C
CrashlyticsKit setUserIdentifier:@"123456789"; FIRAnalytics setUserID:@"12345678 9";
Java
Crashlytics.setUserIdentifier("123456789"); mFirebaseAnalytics.setUserId("123456789");
撰寫查詢,使用 User-ID 欄位彙整 Crashlytics 資料集中有 Google Analytics 個發生當機情形的資料集。
以下是 Android 應用程式的查詢範例。如果是 iOS 應用程式,請使用 軟體包 ID 和
IOS
(而非套件名稱和ANDROID
)。SELECT DISTINCT c.issue_id, a.geo.country, COUNT(DISTINCT c.user.id) as num_users_impacted FROM `PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID` c INNER JOIN `PROJECT_ID.analytics_TABLE_NAME.events_*` a on c.user.id = a.user_id WHERE c.issue_id = "ISSUE_ID" AND a._TABLE_SUFFIX BETWEEN '20190101' AND '20200101' GROUP BY c.issue_id, a.geo.country, c.user.id
示例 8:目前為止的前 5 大問題
以下是 Android 應用程式的查詢範例。如果是 iOS 應用程式,請使用軟體包 ID
和 IOS
(而非套件名稱和 ANDROID
)。
SELECT
issue_id,
COUNT(DISTINCT event_id) AS events
FROM
`PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID_REALTIME`
WHERE
DATE(event_timestamp) = CURRENT_DATE()
GROUP BY
issue_id
ORDER BY
events DESC
LIMIT
5;
示例 9:自 DATE 至今的前 5 大問題,包括今天
你也可以透過拼接查詢,合併批次和即時資料表並新增
即時處理可靠的批次資料因為 event_id
是主要帳戶
鍵時,可以使用 DISTINCT event_id
從兩個範例中刪除重複的常見事件
。
以下是 Android 應用程式的查詢範例。如果是 iOS 應用程式,請使用軟體包 ID
和 IOS
(而非套件名稱和 ANDROID
)。
SELECT issue_id, COUNT(DISTINCT event_id) AS events FROM ( SELECT issue_id, event_id, event_timestamp FROM `PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID_REALTIME` UNION ALL SELECT issue_id, event_id, event_timestamp FROM `PROJECT_ID.firebase_crashlytics.PACKAGE_NAME_ANDROID`) WHERE event_timestamp >= "YYYY_MM_DD" GROUP BY issue_id ORDER BY events DESC LIMIT 5;
瞭解 BigQuery 中的 Crashlytics 結構定義
當您設定將Crashlytics資料匯出至「BigQuery」和 Firebase 時 匯出近期事件 (當機、一般錯誤和 ANR),包括事件 從連結算起的兩天前,使用者可選擇 候補 長達 30 天
從那時開始,直到停用匯出功能為止 每日 Crashlytics 個事件。資料可能需要幾分鐘才能顯示 BigQuery會在每個匯出完成後顯示。
資料集
Crashlytics 會在「BigQuery」中為 Crashlytics 建立新的資料集 資料。資料集涵蓋整個專案,即使專案包含多個應用程式亦然。
資料表
Crashlytics 會在資料集內為專案中的每個應用程式建立資料表。 除非您選擇不匯出該應用程式的資料。Firebase 會將 當中的表格是以應用程式 ID 為依據,半形句號轉換為底線,且 附加在結尾處的平台名稱
例如,來自套件名稱為 com.google.test
的 Android 應用程式資料
位於名為「com_google_test_ANDROID
」的表格中,且會提供即時資料
(如果啟用) 存在於名為「com_google_test_ANDROID_REALTIME
」的資料表中
除了任一資料表外,資料表還包含一組標準的 Crashlytics 資料 自訂 Crashlytics 鍵 您在應用程式中定義的定義。
資料列
每個在資料表中的資料列都代表應用程式遇到的某個錯誤。
欄
當機事件、一般錯誤和 ANR 情形表中的資料欄相同。如果 已啟用「Crashlytics 串流匯出到 BigQuery」功能,之後 即時資料表的欄會與批次資料表相同。請注意,資料列中可能會有代表事件的資料欄,但這些事件沒有堆疊追蹤記錄。
匯出項目中的資料欄如下表所示:
欄位名稱 | 資料類型 | 說明 |
---|---|---|
platform |
STRING | 在 Firebase 專案中註冊的應用程式平台
(有效值:IOS 或 ANDROID )
|
bundle_identifier |
STRING | 應用程式在 Firebase 專案中註冊的專屬 ID (例如 com.google.gmail 如果是 Apple 平台應用程式,則為應用程式的軟體包 ID。 如果是 Android 應用程式,則為應用程式的套件名稱。 |
event_id |
STRING | 事件的專屬 ID |
is_fatal |
BOOLEAN | 應用程式是否當機 |
error_type |
STRING | 事件的錯誤類型 (例如 FATAL 、
NON_FATAL 、ANR 等) |
issue_id |
STRING | 與事件相關的問題 |
variant_id |
STRING | 與這個事件相關聯的問題變化版本 請注意,並非所有事件都有相關聯的問題變化版本。 |
event_timestamp |
TIMESTAMP | 事件發生時間 |
device |
RECORD | 發生事件的裝置 |
device.manufacturer |
STRING | 裝置製造商 |
device.model |
STRING | 裝置型號 |
device.architecture |
STRING | 例如 X86_32 、X86_64 、ARMV7
ARM64 、ARMV7S 或 ARMV7K |
memory |
RECORD | 裝置的記憶體狀態 |
memory.used |
INT64 | 已使用的記憶體位元組數 |
memory.free |
INT64 | 剩餘的記憶體位元組數 |
storage |
RECORD | 裝置的永久儲存空間 |
storage.used |
INT64 | 已使用的儲存空間位元組數 |
storage.free |
INT64 | 剩餘的儲存空間位元組數 |
operating_system |
RECORD | 裝置上作業系統的詳細資料 |
operating_system.display_version |
STRING | 裝置上的作業系統版本 |
operating_system.name |
STRING | 裝置上的作業系統名稱 |
operating_system.modification_state |
STRING | 裝置是否曾遭修改
(例如,越獄解鎖的應用程式為 MODIFIED ,而已取得 Root 權限的應用程式為
UNMODIFIED ) |
operating_system.type |
STRING | (僅限 Apple 應用程式) 裝置上執行的作業系統類型 (例如
IOS 、MACOS 等) |
operating_system.device_type |
STRING | 裝置類型 (例如 MOBILE 、TABLET 、
TV 等);也稱為「裝置類別」 |
application |
RECORD | 產生事件的應用程式 |
application.build_version |
STRING | 應用程式的建構版本 |
application.display_version |
STRING | |
user |
RECORD | (選用) 收集的應用程式使用者相關資訊 |
user.name |
STRING | (選填) 使用者名稱 |
user.email |
STRING | (選用) 使用者的電子郵件地址 |
user.id |
STRING | (選用) 與使用者相關聯的應用程式專屬 ID |
custom_keys |
重複紀錄 | 開發人員定義的鍵/值組合 |
custom_keys.key |
STRING | 開發人員定義的鍵 |
custom_keys.value |
STRING | 開發人員定義的值 |
installation_uuid |
STRING | 可識別專屬應用程式和裝置安裝的 ID |
crashlytics_sdk_versions |
STRING | 產生事件的 Crashlytics SDK 版本 |
app_orientation |
STRING | 例如 PORTRAIT 、LANDSCAPE 、
FACE_UP 、FACE_DOWN 等 |
device_orientation |
STRING | 例如 PORTRAIT 、LANDSCAPE 、
FACE_UP 、FACE_DOWN 等 |
process_state |
STRING | BACKGROUND 或FOREGROUND |
logs |
重複紀錄 | Crashlytics 記錄器產生的時間戳記記錄訊息 (如果已啟用) |
logs.timestamp |
TIMESTAMP | 記錄建立時間 |
logs.message |
STRING | 記錄的訊息 |
breadcrumbs |
重複錄音 | 已加上時間戳記 Google Analytics 導覽標記、 如果已啟用 |
breadcrumbs.timestamp |
TIMESTAMP | 與導覽標記相關聯的時間戳記 |
breadcrumbs.name |
STRING | 與導覽標記相關聯的名稱 |
breadcrumbs.params |
重複紀錄 | 與導覽標記相關聯的參數 |
breadcrumbs.params.key |
STRING | 與導覽標記相關聯的參數鍵 |
breadcrumbs.params.value |
STRING | 與導覽標記相關聯的參數值 |
blame_frame |
RECORD | 經認定為當機或錯誤的根本原因 |
blame_frame.line |
INT64 | 影格檔案的行號 |
blame_frame.file |
STRING | 框架檔案名稱 |
blame_frame.symbol |
STRING | 已充水的符號,如果無法充水,則為原始符號 |
blame_frame.offset |
INT64 | 包含程式碼的二進位映像檔中的位元組偏移量 針對 Java 例外狀況,請取消設定 |
blame_frame.address |
INT64 | 二進位映像檔中的地址,其中包含程式碼 為 Java 頁框取消設定 |
blame_frame.library |
STRING | 包含框架的程式庫顯示名稱 |
blame_frame.owner |
STRING | 例如 DEVELOPER 、VENDOR 、
RUNTIME 、PLATFORM 或 SYSTEM |
blame_frame.blamed |
BOOLEAN | Crashlytics 是否判定這個影格是當機原因 或發生錯誤 |
exceptions |
重複紀錄 | (僅限 Android) 事件期間發生的例外狀況。巢狀 例外狀況會按時間順序由新至舊顯示,也就是說, 最後一個記錄是擲回的第一個例外狀況 |
exceptions.type |
STRING | 例外狀況類型
(例如:java.lang.IllegalStateException) |
exceptions.exception_message |
STRING | 與例外狀況相關的訊息 |
exceptions.nested |
BOOLEAN | 除了最後一次擲回的例外狀況 (也就是第一筆記錄) 外,其他所有例外狀況都為 True |
exceptions.title |
STRING | 討論串的標題 |
exceptions.subtitle |
STRING | 討論串的副標題 |
exceptions.blamed |
BOOLEAN | 如果 Crashlytics 判定負責 錯誤或當機 |
exceptions.frames |
重複錄音 | 與例外狀況相關的影格 |
exceptions.frames.line |
INT64 | 影格檔案的行號 |
exceptions.frames.file |
STRING | 框架檔案名稱 |
exceptions.frames.symbol |
STRING | 已充水的符號,如果無法充水,則為原始符號 |
exceptions.frames.offset |
INT64 | 包含程式碼的二進位映像檔中的位元組偏移量 針對 Java 例外狀況,請取消設定 |
exceptions.frames.address |
INT64 | 二進位映像檔中的地址,其中包含程式碼 為 Java 頁框取消設定 |
exceptions.frames.library |
STRING | 包含框架的程式庫顯示名稱 |
exceptions.frames.owner |
STRING | 例如 DEVELOPER 、VENDOR 、
RUNTIME 、PLATFORM 或 SYSTEM |
exceptions.frames.blamed |
BOOLEAN | Crashlytics 是否判定這個影格是當機原因 或發生錯誤 |
error |
重複紀錄 | (僅限 Apple 應用程式) 一般錯誤 |
error.queue_name |
STRING | 執行執行緒的佇列 |
error.code |
INT64 | 與應用程式自訂記錄 NSError 相關聯的錯誤代碼 |
error.title |
STRING | 討論串的標題 |
error.subtitle |
STRING | 討論串的副標題 |
error.blamed |
BOOLEAN | Crashlytics 是否判斷這個影格是錯誤的原因 |
error.frames |
重複紀錄 | 堆疊追蹤的框架 |
error.frames.line |
INT64 | 影格檔案的行號 |
error.frames.file |
STRING | 框架檔案名稱 |
error.frames.symbol |
STRING | 已充水的符號,如果無法充水,則為原始符號 |
error.frames.offset |
INT64 | 做為包含程式碼的二進位圖像的位元組偏移 |
error.frames.address |
INT64 | 包含程式碼的二進位映像檔中的位址 |
error.frames.library |
STRING | 包含框架的程式庫顯示名稱 |
error.frames.owner |
STRING | 例如 DEVELOPER 、VENDOR 、
RUNTIME 、PLATFORM 或 SYSTEM |
error.frames.blamed |
BOOLEAN | Crashlytics 是否判斷這個影格是錯誤的原因 |
threads |
重複錄音 | 事件發生時的執行緒 |
threads.crashed |
BOOLEAN | 執行緒是否當機 |
threads.thread_name |
STRING | 討論串名稱 |
threads.queue_name |
STRING | (僅限 Apple 應用程式) 執行執行緒的佇列 |
threads.signal_name |
STRING | 造成應用程式當機的信號名稱 (僅在當機時顯示) 原生執行緒 |
threads.signal_code |
STRING | 造成應用程式當機的信號程式碼。只在當機時顯示 原生執行緒 |
threads.crash_address |
INT64 | 造成應用程式當機的信號位址。僅顯示 以便瞭解原生執行緒停止運作的情況 |
threads.code |
INT64 | (僅限 Apple 應用程式) 應用程式所記錄的 NSError 自訂錯誤代碼 |
threads.title |
STRING | 討論串的標題 |
threads.subtitle |
STRING | 討論串的副標題 |
threads.blamed |
BOOLEAN | Crashlytics 是否判定這個影格是當機原因 或發生錯誤 |
threads.frames |
重複紀錄 | 執行緒的框架 |
threads.frames.line |
INT64 | 影格檔案的行號 |
threads.frames.file |
STRING | 框架檔案名稱 |
threads.frames.symbol |
STRING | 脫水符號或原始符號 (如不確定性) |
threads.frames.offset |
INT64 | 做為包含程式碼的二進位圖像的位元組偏移 |
threads.frames.address |
INT64 | 包含程式碼的二進位映像檔中的位址 |
threads.frames.library |
STRING | 包含框架的程式庫顯示名稱 |
threads.frames.owner |
STRING | 例如 DEVELOPER 、VENDOR 、
RUNTIME 、PLATFORM 或 SYSTEM |
threads.frames.blamed |
BOOLEAN | Crashlytics 是否判定這個頁框是導致 錯誤 |
unity_metadata.unity_version |
STRING | 在這部裝置上執行的 Unity 版本 |
unity_metadata.debug_build |
BOOLEAN | 如果這是偵錯版本 |
unity_metadata.processor_type |
STRING | 處理器類型 |
unity_metadata.processor_count |
INT64 | 處理器 (核心) 數量 |
unity_metadata.processor_frequency_mhz |
INT64 | 處理器頻率(以 MHz 為單位) |
unity_metadata.system_memory_size_mb |
INT64 | 系統記憶體大小 (以 MB 為單位) |
unity_metadata.graphics_memory_size_mb |
INT64 | 圖形記憶體 (MB) |
unity_metadata.graphics_device_id |
INT64 | 圖形裝置的 ID |
unity_metadata.graphics_device_vendor_id |
INT64 | 圖形處理器供應商的 ID |
unity_metadata.graphics_device_name |
STRING | 圖形裝置名稱 |
unity_metadata.graphics_device_vendor |
STRING | 圖形裝置的供應商 |
unity_metadata.graphics_device_version |
STRING | 顯示卡裝置的版本 |
unity_metadata.graphics_device_type |
STRING | 圖形裝置類型 |
unity_metadata.graphics_shader_level |
INT64 | 圖形的著色器層級 |
unity_metadata.graphics_render_target_count |
INT64 | 圖形算繪目標數量 |
unity_metadata.graphics_copy_texture_support |
STRING | 支援複製圖形紋理,如 Unity API |
unity_metadata.graphics_max_texture_size |
INT64 | 轉譯紋理專用的大小上限 |
unity_metadata.screen_size_px |
STRING | 螢幕尺寸 (以像素為單位),格式為「寬 x 高」 |
unity_metadata.screen_resolution_dpi |
STRING | 螢幕的 DPI 以浮點數表示 |
unity_metadata.screen_refresh_rate_hz |
INT64 | 螢幕刷新率 (以 Hz) |
使用數據分析將匯出的 Crashlytics 資料視覺化
Google 數據分析可讓 將 BigQuery 中的 Crashlytics 個資料集轉成報表更方便查看 不僅閱讀、分享更容易,而且可完全自訂
如要進一步瞭解如何使用數據分析,請參閱數據分析快速入門指南。 歡迎使用數據分析。
使用「Crashlytics」報表範本
數據分析有一份 Crashlytics 報表範例,其中包含 匯出的Crashlytics中,包含的一組完整維度和指標 BigQuery 結構定義。如果已啟用「Crashlytics」串流匯出 BigQuery,接著您可以在即時趨勢中查看相關資料 「數據分析」範本。 將此範例做為範本使用 根據應用程式的原始當機資料,建立新的報表和視覺化圖表:
按一下右上角的 [Use Template] (使用範本)。
在「新資料來源」下拉式選單中,選取「建立新資料來源」。
在「BigQuery」資訊卡上,按一下「選取」。
請選取包含已匯出 Crashlytics 資料的資料表 我的專案 >PROJECT_ID >firebase_crashlytics>TABLE_NAME。
您隨時都能選取批次表格。如果啟用「Crashlytics 串流匯出至 BigQuery」,您可以改為選取即時資料表。
在「Configuration」下方,將「Crashlytics Template level」設為 預設:
按一下 [Connect] (連結) 建立新的資料來源。
按一下「Add to Report」返回 Crashlytics 範本。
最後按一下「Create Report」,建立 Crashlytics 數據分析資訊主頁範本的複本。