您可以將 Apple 和 Android 應用程式中的效能監控資料匯出到BigQuery中以進行進一步分析。 BigQuery 允許您使用 BigQuery SQL 分析數據,將其匯出到另一個雲端供應商,甚至將數據用於自訂機器學習模型。
啟用 BigQuery 匯出
前往 Firebase 控制台中的「整合」頁面,然後點擊BigQuery卡中的「連結」 。
請依照螢幕上的指示啟用 BigQuery。
當您為效能監控啟用 BigQuery 匯出時,會發生以下情況:
Firebase將現有資料的副本匯出到 BigQuery。用於匯出的資料的初始傳播可能需要長達 48 小時才能完成。
- 您可以手動安排過去 30 天或啟用 BigQuery 匯出時的最近日期的資料回填(以最新者為準)。
建立資料集後,位置無法更改,但您可以將資料集複製到其他位置或手動移動(重新建立)到其他位置的資料集。要了解更多信息,請參閱更改資料集位置。
Firebase 會定期將資料從 Firebase 專案同步到 BigQuery。這些日常出口操作通常會在預定後 24 小時內完成。
預設情況下,專案中的所有應用程式都會連結到 BigQuery。您以後新增到專案中的任何應用程式都會自動連結到 BigQuery。您可以管理哪些應用程式發送資料。
若要停用 BigQuery 匯出,請在 Firebase 控制台中取消連結您的專案。
哪些資料會匯出到 BigQuery?
對於專案中的每個應用程序,匯出都會建立一個包含所有捕獲的效能事件的表。表中的每一行都是一個效能事件,可以是以下其中之一:
持續時間跟踪- 默認情況下收集“持續時間”指標的跟踪,其中包括應用程序啟動、應用程序在前台和應用程序在後台,以及任何開發人員檢測的自定義代碼跟踪
event_type
為DURATION_TRACE
-
event_name
與追蹤名稱相同
追蹤指標— 與開發人員檢測的自訂程式碼追蹤相關的自訂指標
event_type
為TRACE_METRIC
-
event_name
是指標的名稱 parent_trace_name
是包含此指標的追蹤名稱
螢幕追蹤— 跨越螢幕生命週期的追蹤(螢幕渲染追蹤)
-
event_type
是SCREEN_TRACE
-
event_name
是前綴_st_
加實際螢幕名稱
-
網路請求- 跨越網路請求生命週期的追蹤(HTTP 網路請求追蹤)
-
event_type
是NETWORK_REQUEST
-
event_name
是網頁請求 URL 的分類模式
-
每個效能事件都包含事件的屬性(例如客戶端設備的國家/地區和運營商)以及特定於事件的資訊:
- 持續時間追蹤、追蹤指標和螢幕追蹤包含
trace_info
- 追蹤指標包含
trace_info.metric_info
- 螢幕痕跡包含
trace_info.screen_info
- 網路追蹤包含
network_info
詳細的資料架構
欄位名稱 | 類型 | 描述 |
---|---|---|
事件時間戳 | 時間戳 | 自紀元以來客戶端設備上事件啟動的時間戳記(追蹤啟動、網路啟動等) |
應用程式顯示版本 | 細繩 | 顯示應用程式的版本(例如“4.1.7”)
|
應用程式建置版本 | 細繩 | 應用程式的建置版本(例如“1523456”)
|
作業系統版本 | 細繩 | 用戶端設備的作業系統版本
|
設備名稱 | 細繩 | 客戶端設備的名稱(例如“Google Pixel”) |
國家 | 細繩 | 事件發生所在國家/地區的兩個字母的國家/地區代碼(例如,“US”或“ZZ”表示未知國家/地區) |
載體 | 細繩 | 客戶端設備的營運商 |
無線電類型 | 細繩 | 事件發生時的活動無線電類型(例如“WIFI”) |
自訂屬性 | 數組<記錄> | 附加到此事件的所有自訂屬性 |
自訂屬性.key | 細繩 | 自訂屬性的key |
自訂屬性值 | 細繩 | 自訂屬性的值 |
事件類型 | 細繩 | 事件類型;可能的值:
|
事件名稱 | 細繩 | 活動名稱
|
父跟蹤名稱 | 細繩 | 攜帶追蹤指標的父追蹤的名稱 僅針對 TRACE_METRIC 存在 |
追蹤訊息 | 記錄 | 僅適用於DURATION_TRACE 、 SCREEN_TRACE 和TRACE_METRIC |
追蹤訊息.duration_us | 整數64 |
|
追蹤訊息.螢幕訊息 | 記錄 | 僅針對SCREEN_TRACE 存在 |
追蹤資訊.螢幕資訊.slow_frame_ratio | 浮動64 | 此螢幕追蹤的慢幀比率,介於 0 和 1 之間(例如,值 0.05 表示此螢幕實例的 5% 的幀的渲染時間超過 16 毫秒) |
Trace_info.screen_info.frozen_frame_ratio | 浮動64 | 此螢幕追蹤的凍結幀比率,介於 0 和 1 之間(例如,值 0.05 表示此螢幕實例的 5% 的幀的渲染時間超過 700 毫秒) |
追蹤資訊.指標訊息 | 記錄 | 僅針對TRACE_METRIC 存在 |
Trace_info.metric_info.metric_value | 整數64 | 追蹤指標的值 |
網路資訊 | 記錄 | 僅針對NETWORK_REQUEST 存在 |
網路資訊.回應代碼 | 整數64 | 網路回應的 HTTP 回應代碼(例如 200、404) |
網路資訊.response_mime_type | 細繩 | 網路回應的 MIME 類型(例如“text/html”) |
network_info.request_http_method | 細繩 | 網路請求的 HTTP 方法(例如“GET”或“POST”) |
網路資訊.request_payload_bytes | 整數64 | 網路請求負載的大小 單位:位元組 |
network_info.response_payload_bytes | 整數64 | 網路回應負載的大小 單位:位元組 |
network_info.request_completed_time_us | 整數64 | 網路請求發送完成後event_timestamp 後的微秒數單位:微秒 |
network_info.response_initerated_time_us | 整數64 | 發起網路回應時event_timestamp 之後的微秒數單位:微秒 |
network_info.response_completed_time_us | 整數64 | 網路回應完成時event_timestamp 之後的微秒數單位:微秒 |
您可以使用匯出的資料做什麼?
以下部分提供了您可以在 BigQuery 中針對匯出的效能監控資料執行的查詢範例。
查看按國家/地區劃分的平均應用程式啟動延遲細分
SELECT AVG(trace_info.duration_us), country FROM `TABLE_NAME` WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD") AND event_type = "DURATION_TRACE" AND event_name = "_app_start" GROUP BY 2;
檢查不同條件下的凍結幀比例
例如,您可以檢查凍結幀的比率以及用戶使用不同無線電類型(WiFi、4G 等)時在應用程式每個螢幕上花費的時間。
SELECT AVG(trace_info.duration_us / 1000000) AS seconds_on_screen, AVG(trace_info.screen_info.frozen_frame_ratio) AS frozen_frame_ratio, event_name, radio_type FROM `TABLE_NAME` WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD") AND event_type = "SCREEN_TRACE" GROUP BY event_name, radio_type ORDER BY event_name, radio_type;
計算從磁碟載入某些類型檔案的快取命中率
此分析假設您使用名為file-extension
的自訂屬性和名為cache-hit
的自訂指標( TRACE_METRIC
)來檢測自訂程式碼跟踪,以便從磁碟加載,如果快取命中,則設定為1
,如果快取未命中,則設定為0
。
例如,您可以計算從磁碟載入 PNG 檔案的快取命中率:
SELECT AVG(trace_info.metric_info.metric_value) AS cache_hit_rate FROM `TABLE_NAME` WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD") AND event_type = "TRACE_METRIC" AND event_name = "cache-hit" AND parent_trace_name = "loadFromDisk" AND STRUCT("file-extension", "png") IN UNNEST(custom_attributes);
檢查使用者發出網路請求的時間
例如,您可以檢查來自美國的用戶在一天中的什麼時間從您的應用程式發出網路請求:
SELECT count(1) AS hourly_count, EXTRACT(HOUR FROM event_timestamp) AS hour_of_day FROM `TABLE_NAME` WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD") AND event_type = "NETWORK_REQUEST" AND country = "US" GROUP BY 2 ORDER BY 2;
將您的效能監控數據帶到任何地方
有時您想要存取效能監控資料伺服器端或將其推送到另一個第三方解決方案。目前導出數據不收取任何費用。
您可以透過以下方式匯出資料:
使用 BigQuery 網頁介面
運行 CLI 命令
bq extract
透過 API 或客戶端庫提交提取作業。
價錢
從效能監控匯出資料是免費的,並且 BigQuery 提供慷慨的免費使用限制。有關詳細信息,請參閱BigQuery 定價或BigQuery 沙盒。