你可以將 Apple 和 Android 應用程式的效能監控資料匯出至 BigQuery 以便查詢及分析BigQuery 能讓您使用 BigQuery SQL、匯出至其他雲端服務供應商, 以便儲存自訂機器學習模型的資料
啟用 BigQuery Export
前往 整合 頁面,然後在 BigQuery 中按一下「連結」。 資訊卡
按照畫面上的指示啟用 BigQuery。
為 Performance Monitoring 啟用 BigQuery Export 功能後,您將執行以下操作 發生:
Firebase 會將現有資料的副本匯出到 BigQuery。首次匯出資料時,系統最多可能需要 大約 48 小時就能完成。
- 你可以 手動排定資料補充作業 最多過去 30 天,或最近啟用 BigQuery 的日期 或匯出 (以時間順序由新到舊)。
建立資料集後,位置 無法變更,但可將資料集複製到其他位置 或在其他位置手動移動 (重新建立) 資料集。學習 詳情請參閱變更資料集位置。
Firebase 會定期同步處理 Firebase 專案中的 BigQuery。這些每日匯出作業通常會在 24 小時內完成 排入排程後
根據預設,專案中的所有應用程式都會連結至 BigQuery。不限 您稍後加入專案的應用程式會自動連結至 BigQuery。你可以 管理該傳送資料的應用程式。
如要停用 BigQuery Export 取消連結專案 。
哪些資料會匯出至 BigQuery?
針對專案中的每個應用程式,匯出作業會建立一個資料表,內含所有 擷取到的效能事件資料表格中的每一列都是一個成效事件 可以是下列其中一項:
持續時間追蹤記錄 - 預設收集的追蹤指標 「時間長度」,包括應用程式啟動程序、前景應用程式和應用程式背景。 以及任何由開發人員檢測的自訂程式碼追蹤記錄
- 「
event_type
」現為「DURATION_TRACE
」 event_name
與追蹤記錄名稱相同
- 「
追蹤記錄指標 - 與相關聯的自訂指標 開發人員檢測的自訂程式碼追蹤記錄
- 「
event_type
」現為「TRACE_METRIC
」 event_name
是指標名稱parent_trace_name
是包含這項指標的追蹤記錄名稱
- 「
Screen trace - 跨螢幕生命週期的追蹤記錄 (畫面轉譯) 追蹤記錄)
- 「
event_type
」現為「SCREEN_TRACE
」 event_name
的前置字串為_st_
,再加上實際畫面名稱
- 「
網路要求 - 橫跨網路要求生命週期的追蹤記錄 (HTTP 網路要求追蹤記錄)
- 「
event_type
」現為「NETWORK_REQUEST
」 event_name
是網路要求網址的分類模式
- 「
每個成效事件都包含事件屬性 (例如國家/地區、 用戶端裝置的電信業者),以及事件專屬資訊:
- 時間長度追蹤記錄、追蹤記錄指標和螢幕追蹤記錄包含
trace_info
- 追蹤記錄指標包含「
trace_info.metric_info
」 - 畫面追蹤記錄包含
trace_info.screen_info
- 網路追蹤記錄包含
network_info
詳細資料結構定義
欄位名稱 | 類型 | 說明 |
---|---|---|
event_timestamp | 時間戳記 | 在用戶端裝置上開始事件的 Epoch 紀元時間 (追蹤記錄開始、網路啟動等) |
應用程式顯示版本 | 字串 | 顯示應用程式版本 (例如「4.1.7」)
|
app_build_version | 字串 | 應用程式版本 (例如「1523456」)
|
os_version | 字串 | 用戶端裝置的 OS 版本
|
device_name | 字串 | 用戶端裝置的名稱 (例如「Google Pixel」) |
國家/地區 | 字串 | 活動來源國家/地區的雙字母國家/地區代碼 (例如「US」或「ZZ」代表不明國家/地區) |
貨運公司 | 字串 | 用戶端裝置的電信業者 |
Radio_type | 字串 | 事件發生時啟用的無線電類型 (例如「WIFI」) |
自訂屬性 | ARRAY<RECORD> | 附加至這個活動的所有自訂屬性 |
custom_attributes.key | 字串 | 自訂屬性的鍵 |
custom_attributes.value | 字串 | 自訂屬性的值 |
event_type | 字串 | 事件類型;可能的值:
|
event_name | 字串 | 事件名稱
|
parent_trace_name | 字串 | 含有追蹤指標的父項追蹤記錄名稱 只顯示在 TRACE_METRIC |
追蹤記錄資訊 | RECORD | 只顯示:DURATION_TRACE ,
「SCREEN_TRACE 」和「TRACE_METRIC 」 |
trace_info.duration_us | int64 |
|
trace_info.screen_info | RECORD | 只顯示:SCREEN_TRACE |
trace_info.screen_info.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_info.metric_info | RECORD | 只顯示:TRACE_METRIC |
trace_info.metric_info.metric_value | int64 | 追蹤指標的值 |
網路資訊 | RECORD | 只顯示:NETWORK_REQUEST |
network_info.response_code | int64 | 網路回應的 HTTP 回應碼 (例如,200 第 404 頁)。 |
network_info.response_mime_type | 字串 | 網路回應的 MIME 類型 (例如「text/html」) |
network_info.request_http_method | 字串 | 網路要求的 HTTP 方法 (例如「GET」或「POST」) |
network_info.request_payload_bytes | int64 | 網路要求酬載大小 Unit:位元組 |
network_info.response_payload_bytes | int64 | 網路回應酬載的大小 Unit:位元組 |
network_info.request_completed_time_us | int64 | 網路要求在 event_timestamp 後微秒
傳送完成單位:微秒 |
network_info.response_initiated_time_us | int64 | 網路回應時在 event_timestamp 後微秒
已開始單位:微秒 |
network_info.response_completed_time_us | int64 | 網路回應時在 event_timestamp 後微秒
已完成單位:微秒 |
你可以如何處理匯出的資料?
以下各節提供查詢範例,方便您在當中執行 ,針對匯出的 Performance Monitoring 資料執行 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;
檢查凍結影格在各種條件下的比率
舉例來說,您可以查看凍結影格的比率和 使用者在應用程式的每個螢幕上停留的時間 (例如 Wi-Fi、 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
的自訂屬性和自訂指標 (
TRACE_METRIC
) 名為 cache-hit
,如果快取成功,則設為 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;
將 Performance Monitoring 資料帶到任何地方
有時候,您可能會想從伺服器端存取 Performance Monitoring 資料,或將資料推送至 其他第三方解決方案目前,匯出資料不收費。
您可以透過下列方式匯出資料:
使用 BigQuery 網頁版 UI
執行 CLI 指令
bq extract
定價
從 Performance Monitoring 和 BigQuery 匯出資料不會產生費用 提供大量的免費用量限制如需詳細資訊,請參閱 BigQuery 定價 或是 BigQuery 沙箱