Catch up on everthing we announced at this year's Firebase Summit. Learn more

將性能監控數據導出到 BigQuery

您可以從蘋果的出口業績的監測數據和Android應用到的BigQuery作進一步的分析。 BigQuery 允許您使用 BigQuery SQL 分析數據,將其導出到另一個雲提供商,甚至將數據用於您的自定義 ML 模型。

啟用 BigQuery 導出

  1. 轉至集成在火力地堡控制台頁面,然後單擊鏈接使用BigQuery卡。

  2. 按照屏幕上的說明啟用 BigQuery。

當您將項目鏈接到 BiqQuery 時:

  • 火力地堡出口現有數據的副本至BigQuery。

    • 在初始關聯時,Firebase 會自動安排您的 BigQuery 表回填過去 7 天的數據,以便您可以立即開始試驗。等待幾個小時,以便在 BigQuery 中提供初始數據。

    • 您也可以手動調度數據回填長達近30天。

  • Firebase 設置您的數據從 Firebase 項目到 BigQuery 的每日同步。

  • 默認情況下,您項目中的所有應用都與 BigQuery 相關聯,您稍後添加到項目中的任何應用都會自動與 BigQuery 相關聯。您可以管理哪些應用程序發送數據

要停用的BigQuery出口,取消鏈接您的項目在火力地堡控制台。

哪些數據會導出到 BigQuery?

對於項目中的每個應用程序,導出都會創建一個包含所有捕獲的性能事件的表。表中的每一行都是一個性能事件,可以是以下之一:

  • 持續跟踪-收集,默認情況下的痕跡,度量的“持續時間”,其中包括應用啟動,應用功能於前台,和app-的背景,以及任何開發人員儀表自定義代碼的痕跡

    • event_typeDURATION_TRACE
    • event_name是一樣的痕跡名
  • 跟踪指標-這與開發人員儀表自定義代碼的痕跡,相關的定制指標

    • event_typeTRACE_METRIC
    • event_name是度量的名稱
    • parent_trace_name是包含該指標的跟踪名稱
  • 屏幕跟踪-跟踪跨越屏幕的壽命(畫面渲染的痕跡)

    • event_typeSCREEN_TRACE
    • event_name就是前綴_st_加上實際的網名
  • 網絡請求-跡線跨越網絡請求的生命週期(HTTP網絡請求的痕跡)

    • event_typeNETWORK_REQUEST
    • event_name是網絡請求URL的分類模式

每個表演事件都包含事件的屬性(例如客戶端設備的國家和運營商),以及特定於事件的信息:

  • 時間的痕跡,跟踪指標和屏幕跟踪包含trace_info
  • 跟踪指標包含trace_info.metric_info
  • 屏幕跟踪包含trace_info.screen_info
  • 網絡跟踪包含network_info

詳細數據架構

字段名稱類型描述
事件時間戳時間戳事件在客戶端設備上啟動時的 Epoch 時間戳(跟踪啟動、網絡啟動等)
app_display_version細繩顯示應用程序版本(例如“4.1.7”)
  • 對於Android的- VersionName
  • 對於iOS - CFBundleShortVersionString
app_build_version細繩應用程序的構建版本(例如,“1523456”)
  • 對於Android的- VersionCode
  • 對於iOS - CFBundleVersion
os_version細繩客戶端設備的操作系統版本
  • 對於 Android — Android API 級別(例如“26”)
  • 對於 iOS — iOS 版本(例如“11.4”)
設備名稱細繩客戶端設備的名稱(例如,“Google Pixel”)
國家細繩事件發生國家/地區的兩個字母國家/地區代碼(例如,“US”或“ZZ”表示未知國家/地區)
載體細繩客戶端設備的載體
無線電類型細繩事件發生時的活動無線電類型(例如,“WIFI”)
custom_attributes陣列<記錄>附加到此事件的所有自定義屬性
custom_attributes.key細繩自定義屬性的鍵
custom_attributes.value細繩自定義屬性的值
事件類型細繩事件類型;可能的值:
  • DURATION_TRACE -收集,默認情況下的痕跡,度量的“持續時間”,其中包括應用啟動,應用功能於前台,和app-的背景,以及任何開發人員儀表自定義代碼的痕跡
  • SCREEN_TRACE -痕跡跨越屏幕的壽命(畫面渲染的痕跡)
  • TRACE_METRIC -這與開發人員儀表自定義代碼的痕跡,相關的定制指標
  • NETWORK_REQUEST -跡線跨越網絡請求的生命週期(HTTP網絡請求的痕跡)
事件名稱細繩活動名稱
  • 對於DURATION_TRACE -跟踪名稱
  • 對於TRACE_METRIC -自訂指標名稱
  • 對於SCREEN_TRACE - _st_其次是跟踪名稱
  • 對於NETWORK_REQUEST -網絡請求的URL模式
parent_trace_name細繩攜帶跟踪指標的父跟踪的名稱
只存在於TRACE_METRIC
跟踪信息記錄只存在於DURATION_TRACESCREEN_TRACETRACE_METRIC
trace_info.duration_us int64
  • 對於DURATION_TRACESCREEN_TRACE -從一開始的時間長度(“時間”)到跟踪結束
  • 對於TRACE_METRIC -從一開始的時間(“時間”)的長度與母體跡線的端
單位:微秒
trace_info.screen_info記錄只存在於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記錄只存在於TRACE_METRIC
trace_info.metric_info.metric_value int64跟踪指標的值
網絡信息記錄只存在於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網絡請求負載的大小
單位:字節
network_info.response_payload_bytes int64網絡響應負載的大小
單位:字節
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完成時的網絡響應
單位:微秒

你可以用導出的數據做什麼?

以下部分提供了您可以在 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和自定義指標(一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 導出數據是免費的,BigQuery 提供了慷慨的免費使用限制。有關詳細信息,請參閱BigQuery的定價BigQuery的沙箱