本頁提供有關效能監控入門或使用效能監控功能和工具的故障排除提示。
首先檢查故障排除
以下兩項檢查是在進一步排除故障之前建議任何人進行的一般最佳實踐。
1. 檢查效能事件的日誌訊息
檢查日誌訊息以確保效能監控 SDK 正在擷取效能事件。
啟用調試日誌記錄,如下所示:
- 在 Xcode(最低版本 v14.1)中,選擇「產品」 > “方案」 > “編輯方案” 。
- 從左側選單中選擇“運行” ,然後選擇“參數”標籤。
- 在「啟動時傳遞的參數」部分中,新增
-FIRDebugEnabled
。
檢查日誌訊息中是否有任何錯誤訊息。
效能監控使用
Firebase/Performance
標記其日誌訊息,以便您可以過濾日誌訊息。檢查以下類型的日誌,這些日誌表明效能監控正在記錄效能事件:
-
Logging trace metric: TRACE_NAME , FIREBASE_PERFORMANCE_CONSOLE_URL
-
Logging network request trace: URL
-
按一下 URL 可在 Firebase 控制台中查看您的資料。儀表板中的資料更新可能需要一些時間。
如果您的應用程式沒有記錄效能事件,請查看故障排除提示。
2.檢查 Firebase 狀態儀表板
檢查Firebase 狀態儀表板,以防 Firebase 或效能監控出現已知中斷。
效能監控入門
如果您開始使用效能監控 ( iOS+ | Android | Web ),以下故障排除提示可協助解決涉及 Firebase 偵測 SDK 或在 Firebase 控制台中顯示第一個效能資料的問題。
當 Firebase 從您的應用程式收到事件訊息(例如應用程式互動)時,它可以偵測您是否已成功將效能監控 SDK 新增至您的應用程式。通常在啟動應用程式後 10 分鐘內,Firebase 控制台的效能儀表板會顯示「偵測到 SDK」訊息。然後,在 30 分鐘內,儀表板將顯示初始處理的資料。
如果自從您將最新版本的 SDK 添加到應用程式以來已經超過 10 分鐘,並且您仍然沒有看到任何更改,請檢查日誌訊息以確保效能監控正在記錄事件。嘗試依照如下所述執行適當的故障排除步驟來排除 SDK 偵測訊息延遲的故障。
如果您仍在本地開發,請嘗試產生更多事件以進行資料收集:
繼續使用模擬器或測試設備開發您的應用程式。
透過在背景和前台之間多次切換應用程式、透過跨螢幕導航與應用程式互動和/或觸發網路請求來產生事件。
確保您的Firebase 設定檔(
Google-Service-Info.plist
) 已正確新增至您的應用程式中,且您尚未修改該檔案。具體來說,檢查以下內容:設定檔名未附加其他字符,例如
(2)
。設定檔位於 XCode 專案的根目錄中,並新增到正確的目標中。
設定檔中列出的 Firebase Apple 應用程式 ID (
GOOGLE_APP_ID
) 對於您的應用程式是正確的。在設定的您的應用程式卡中找到您的 Firebase 應用程式 ID。
如果您的應用程式中的設定檔出現任何問題,請嘗試以下操作:
刪除應用程式中目前的設定檔。
按照以下說明下載新的設定檔並將其新增至您的 Apple 應用程式。
如果 SDK 正在記錄事件並且一切似乎都已正確設置,但您仍然沒有看到 SDK 偵測訊息或已處理的資料(2 小時後),請聯絡 Firebase 支援。
確保未透過
Info.plist
檔案中的下列任一標誌停用效能監控 SDK:-
firebase_performance_collection_enabled
-
firebase_performance_collection_deactivated
-
如果您找不到應用程式中停用的任何內容,請聯絡 Firebase 支援。
效能監控會先處理效能事件數據,然後再顯示在效能儀表板中。
如果自「偵測到 SDK」訊息出現以來已超過 24 小時,且您仍看不到數據,請檢查Firebase 狀態儀表板,以防出現已知的中斷。如果沒有出現中斷,請聯絡 Firebase 支援。
一般故障排除
如果您已成功新增 SDK 並在應用程式中使用效能監控,則下列故障排除提示可協助解決涉及效能監控功能和工具的一般問題。
如果您沒有看到效能事件的日誌訊息,請嘗試以下故障排除步驟:
確保未透過
Info.plist
檔案中的下列任一標誌停用效能監控 SDK:-
firebase_performance_collection_enabled
-
firebase_performance_collection_deactivated
-
如果您找不到應用程式中停用的任何內容,請聯絡 Firebase 支援。
如果您缺少螢幕渲染追蹤數據,請嘗試以下故障排除步驟:
確保您使用的是最新版本的 Apple 平台 SDK (v10.19.0)。螢幕渲染追蹤僅適用於 v5.0.0 或更高版本。
效能監控不會為容器視圖控制器(例如
UINavigationController
和UITabBarController
)建立螢幕渲染追蹤。如果僅缺少這些螢幕的數據,則這是預期的行為。
您是否看到了自動收集的追蹤的效能數據,但沒有看到自訂程式碼追蹤的效能數據?請嘗試以下故障排除步驟:
檢查透過Trace API檢測的自訂程式碼追蹤的設置,尤其是以下內容:
- 自訂程式碼追蹤和自訂指標的名稱必須符合以下要求:沒有前導或尾隨空格、沒有前導底線 (
_
) 字元、最大長度為 32 個字元。 - 所有追蹤都必須啟動和停止。任何未啟動、未停止或在啟動之前停止的追蹤都不會被記錄。
- 自訂程式碼追蹤和自訂指標的名稱必須符合以下要求:沒有前導或尾隨空格、沒有前導底線 (
檢查日誌訊息以確保效能監控正在記錄預期的自訂程式碼追蹤。
如果效能監控正在記錄事件,但 24 小時後沒有顯示任何數據,請聯絡 Firebase 支援。
如果您遺失網路請求數據,請嘗試以下故障排除步驟:
檢查網路庫是否不相容。效能監控自動收集使用下列網路庫的網路請求的指標:
- 對於 Swift:URLSession 和 URLConnection
- 對於 Objective-C:NSURLSession 和 NSURLConnection
請注意,您可以新增對網路請求的自訂監控。
請注意以下事項:
根據程式碼的行為和程式碼使用的網路庫,效能監控可能僅報告已完成的網路請求。這意味著可能不會報告保持開啟的 HTTP/S 連線。
效能監控不會報告具有無效
Content-Type
標頭的網路請求。但是,沒有Content-Type
標頭的網路請求仍將被接受。
您也可以嘗試自訂 URL 模式!
常問問題
我們將「熱門問題」替換為「最近警報」 ,作為我們最近引入警報的後續措施,當超過您設定的閾值時,警報會自動通知您。問題現已棄用並由警報取代。
效能卡頂部的應用程式選擇器會篩選「最近警報」下的警報條目。僅顯示所選應用程式的三個最新警報。
要了解有關警報的更多信息,請參閱設定性能問題警報。
效能監控支援針對超出定義閾值的指標發出警報。為了避免與這些效能指標的可配置閾值混淆,我們刪除了為問題配置閾值的功能。
我們以新設計的集中式使用者介面 (UI) 取代了「詳細資訊」和「指標」頁面,以改善解決問題的方式。這個新的故障排除 UI 提供了與「詳細資料」和「指標」所提供的相同的核心功能。要了解有關故障排除的更多信息,請參閱查看特定追蹤的更多數據。
效能監控從應用程式的用戶設備收集效能數據。如果您的應用程式有許多用戶,或者應用程式產生大量效能活動,效能監控可能會將資料收集限製到一部分設備,以減少處理的事件數量。這些限制足夠高,因此即使事件較少,指標值仍然可以代表使用者的應用程式體驗。
為了管理我們收集的資料量,效能監控使用以下採樣選項:
設備上速率限制:為了防止設備發送突然爆發的跟踪,我們將從設備發送的代碼和網路請求跟踪的數量限制為每 10 分鐘 300 個事件。這種方法可以保護設備免受可發送大量性能數據的循環儀器的影響,並防止單一設備扭曲性能測量結果。
動態採樣:效能監控每天在所有應用程式使用者中收集每個應用程式的程式碼追蹤事件限制為大約 100M,網路請求追蹤限制為 100M。在裝置上取得動態取樣率(使用 Firebase 遠端配置)以確定隨機裝置是否應擷取和傳送追蹤記錄。未選擇進行採樣的設備不會發送任何事件。動態取樣率是特定於應用程式的,並進行調整以確保收集的資料總量保持在限制以下。
用戶會話從用戶設備發送額外的詳細數據,需要更多資源來捕獲和發送數據。為了最大限度地減少使用者會話的影響,效能監控還可能限制會話數量。
伺服器端速率限制:為了確保應用程式不超過取樣限制,效能監控可能會使用伺服器端取樣來刪除從裝置接收的某些事件。儘管這種類型的限制不會改變我們指標的有效性,但它可能會導致輕微的模式變化,包括以下內容:
- 追蹤的數量可能與一段程式碼的執行次數不同。
- 程式碼中緊密耦合的追蹤可能各自具有不同數量的樣本。
我們用警報的引入取代了「問題」選項卡,當超出您設定的閾值時,警報會自動通知您。您不再需要手動檢查 Firebase 控制台來決定閾值的狀態。若要了解警報,請參閱設定效能問題警報。
我們重新設計了 Firebase 控制台的效能監控部分,以便「儀表板」標籤在一個空間中顯示您的關鍵指標和所有追蹤記錄。作為重新設計的一部分,我們刪除了「裝置上」和「網路」頁面。
儀表板選項卡底部的追蹤表具有與設備上和網路選項卡顯示的所有相同信息,但增加了一些功能,包括按特定指標的百分比變化對追蹤進行排序的功能。若要查看特定追蹤的所有指標和數據,請按一下追蹤表中的追蹤名稱。
在追蹤表的以下子標籤中查看您的追蹤:
- 網路請求追蹤(開箱即用和自訂)-網路請求子選項卡
- 自訂程式碼追蹤 -自訂追蹤子選項卡
- 應用程式啟動、應用程式在前台、應用程式在背景追蹤 -自訂追蹤子選項卡
- 螢幕渲染痕跡 -螢幕渲染子選項卡
- 頁面載入追蹤 -頁面載入子選項卡
有關追蹤表以及查看指標和數據的詳細信息,請訪問控制台概述頁面 ( iOS+ | Android | Web )。
緩慢渲染幀和凍結幀是在假定裝置更新率為 60Hz 的情況下計算的。如果裝置更新率低於 60Hz,則每幀的渲染時間將會變慢,因為每秒渲染的幀數較少。較慢的渲染時間可能會導致報告更多較慢或凍結的幀,因為更多的幀將渲染得較慢或凍結。但是,如果裝置更新率高於 60Hz,則每幀的渲染時間將會更快。這可能會導致報告的慢幀或凍結幀減少。這是效能監控 SDK 中的當前限制。
如果您為 Firebase 效能監控啟用了 BigQuery 集成,您的資料將在一天結束(太平洋時間)後 12 到 24 小時匯出到 BigQuery。
例如,4 月 19 日的資料將於 4 月 20 日中午 12:00 至午夜(所有日期和時間均為太平洋時間)在 BigQuery 中提供。
接近即時數據處理和顯示
Firebase效能監視過程收集了績效數據,這導致了Firebase控制台中的幾乎即時數據顯示。處理後的數據在收集後的幾分鐘內顯示在控制台中,因此“接近實時”一詞。
若要利用近乎即時的資料處理,請確保您的應用程式使用即時相容SDK版本。
為了利用近乎即時的數據處理,您只需要確保應用程式使用與即時數據處理相容的效能監視SDK版本。
這些是即時相容的SDK版本:
- iOS - v7.3.0或以後
- TVOS - v8.9.0或以後
- Android - v19.0.10或更高版本(或firebase android bom v26.1.0或更高版本)
- 網路- v7.14.0或更高版本
請注意,我們始終建議使用最新版本的SDK,但是上面列出的任何版本都將使效能監視能夠接近即時處理您的資料。
這些是與即時數據處理相容的SDK版本:
- iOS - v7.3.0或以後
- TVOS - v8.9.0或以後
- Android - v19.0.10或更高版本(或firebase android bom v26.1.0或更高版本)
- 網路- v7.14.0或更高版本
請注意,我們始終建議使用最新版本的SDK,但是上面列出的任何版本都將使效能監視能夠接近即時處理您的資料。
如果您的應用程式不使用即時相容SDK版本,則您仍然會在Firebase控制台中看到所有應用程式的效能資料。但是,從收集到其收集之時,績效數據的顯示將延遲約36小時。
是的!無論應用程式實例使用哪個SDK版本,您都會看到所有使用者的效能資料。
但是,如果您正在查看最新資料(不到約36個小時的資料),則顯示的資料來自使用即時相容SDK版本的應用程式實例的使用者。但是,非續簽資料包括來自應用程式所有版本的效能資料。
聯繫火箱支持
如果您接觸Firebase支持,請務必包含Firebase App ID。在設定的應用程式卡中找到您的firebase應用程式ID。