本頁提供有關效能監控入門或使用效能監控功能和工具的故障排除提示。
首先檢查故障排除
以下兩項檢查是在進一步排除故障之前建議任何人進行的一般最佳實踐。
1. 檢查效能事件的日誌訊息
檢查日誌訊息以確保效能監控 SDK 正在擷取效能事件。
開啟瀏覽器的開發人員工具(例如, Chrome 開發工具的「網路」標籤或Firefox 的「網路監視器」)。
在瀏覽器中刷新您的 Web 應用程式。
檢查日誌訊息中是否有任何錯誤訊息。
幾秒鐘後,在瀏覽器的開發人員工具中尋找
firebaselogging.googleapis.com
網頁呼叫。此網路呼叫的存在表示瀏覽器正在向 Firebase 發送效能資料。
如果您的應用程式沒有記錄效能事件,請查看故障排除提示。
2.檢查 Firebase 狀態儀表板
檢查Firebase 狀態儀表板,以防 Firebase 或效能監控出現已知中斷。
效能監控入門
如果您開始使用效能監控 ( iOS+ | Android | Web ),以下故障排除提示可協助解決涉及 Firebase 偵測 SDK 或在 Firebase 控制台中顯示第一個效能資料的問題。
當 Firebase 從您的應用程式收到事件訊息(例如應用程式互動)時,它可以偵測您是否已成功將效能監控 SDK 新增至您的應用程式。通常在啟動應用程式後 10 分鐘內,Firebase 控制台的效能儀表板會顯示「偵測到 SDK」訊息。然後,在 30 分鐘內,儀表板將顯示初始處理的資料。
如果自從您將最新版本的 SDK 添加到應用程式以來已經超過 10 分鐘,並且您仍然沒有看到任何更改,請檢查日誌訊息以確保效能監控正在記錄事件。嘗試依照如下所述執行適當的故障排除步驟來排除 SDK 偵測訊息延遲的故障。
如果您仍在本地開發,請嘗試產生更多事件以進行資料收集:
在本機環境中提供和檢視您的 Web 應用程式。
透過載入網站的子頁面、與應用程式互動和/或觸發網路請求來產生事件。確保頁面載入後瀏覽器標籤保持開啟狀態至少 10 秒。
確保您的Firebase 設定物件已正確新增至您的應用程式中,並且您尚未修改該物件。具體來說,檢查以下內容:
- 配置物件中的 Firebase Web 應用程式 ID (
appId
) 對於您的應用程式來說是正確的。在設定的您的應用程式卡中找到您的 Firebase 應用程式 ID。
如果您的應用程式中的配置物件出現任何問題,請嘗試以下操作:
刪除應用程式中目前的配置物件。
請按照以下說明取得新的配置物件並將其新增至您的 Web 應用程式。
- 配置物件中的 Firebase Web 應用程式 ID (
如果 SDK 正在記錄事件並且一切似乎都已正確設置,但您仍然沒有看到 SDK 偵測訊息或已處理的資料(2 小時後),請聯絡 Firebase 支援。
確保效能監控 SDK 在您的應用程式中正確初始化。
確保未透過以下標誌停用效能監控 SDK:
-
performance.instrumentationEnabled
-
確保已停用瀏覽器緩存,否則瀏覽器可能無法取得任何新的偵測設定。
關閉,然後重新開啟網頁標籤。再次檢查日誌記錄。
如果您剛剛在應用程式中新增了效能監控 SDK,則可能需要完全重新啟動應用程式才能使 SDK 開始運作。
如果您找不到應用程式中停用的任何內容,請聯絡 Firebase 支援。
效能監控會先處理效能事件數據,然後再顯示在效能儀表板中。
如果自「偵測到 SDK」訊息出現以來已超過 24 小時,且您仍看不到數據,請檢查Firebase 狀態儀表板,以防出現已知的中斷。如果沒有出現中斷,請聯絡 Firebase 支援。
一般故障排除
如果您已成功新增 SDK 並在應用程式中使用效能監控,則下列故障排除提示可協助解決涉及效能監控功能和工具的一般問題。
如果您沒有看到效能事件的日誌訊息,請嘗試以下故障排除步驟:
確保效能監控 SDK 在您的應用程式中正確初始化。
確保未透過以下標誌停用效能監控 SDK:
-
performance.instrumentationEnabled
-
確保已停用瀏覽器緩存,否則瀏覽器可能無法取得任何新的偵測設定。
關閉,然後重新開啟網頁標籤。再次檢查日誌記錄。
如果您剛剛在應用程式中新增了效能監控 SDK,則可能需要完全重新啟動應用程式才能使 SDK 開始運作。
如果您找不到應用程式中停用的任何內容,請聯絡 Firebase 支援。
如果您沒有看到第一個輸入延遲指標的數據,請嘗試以下故障排除步驟:
請注意,效能監控僅記錄頁面載入後前 5 秒內使用者點擊網頁時的第一個輸入延遲指標。
確保您已將應用程式設定為衡量此指標。第一個輸入延遲指標需要手動設定。具體來說,您需要為此指標添加 polyfill 庫。有關安裝說明,請參閱庫的文件。
請注意,效能監控不需要新增此 polyfill 程式庫即可報告其他 Web 應用程式指標。
您是否看到了自動收集的追蹤的效能數據,但沒有看到自訂程式碼追蹤的效能數據?請嘗試以下故障排除步驟:
檢查透過Trace API檢測的自訂程式碼追蹤的設置,尤其是以下內容:
- 自訂程式碼追蹤和自訂指標的名稱必須符合以下要求:沒有前導或尾隨空格、沒有前導底線 (
_
) 字元、最大長度為 32 個字元。 - 所有追蹤都必須啟動和停止。任何未啟動、未停止或在啟動之前停止的追蹤都不會被記錄。
請注意,如果您使用
record()
方法,則無需明確啟動或停止追蹤。- 自訂程式碼追蹤和自訂指標的名稱必須符合以下要求:沒有前導或尾隨空格、沒有前導底線 (
performance.dataCollectionEnabled
此標誌僅控制自訂程式碼追蹤的資料收集(不是所有資料)。
檢查日誌訊息以確保效能監控正在記錄預期的自訂程式碼追蹤。
如果效能監控正在記錄事件,但 24 小時後沒有顯示任何數據,請聯絡 Firebase 支援。
如果您缺少網路請求數據,請注意以下事項:
效能監控自動收集瀏覽器 API 報告的網路請求的指標。這些報告不包括失敗的網路請求。
根據程式碼的行為和程式碼使用的網路庫,效能監控可能僅報告已完成的網路請求。這意味著可能不會報告保持開啟的 HTTP/S 連線。
您也可以嘗試自訂 URL 模式!
常問問題
我們將「熱門問題」替換為「最近警報」 ,作為我們最近引入警報的後續措施,當超過您設定的閾值時,警報會自動通知您。問題現已棄用並由警報取代。
效能卡頂部的應用程式選擇器會篩選「最近警報」下的警報條目。僅顯示所選應用程式的三個最新警報。
要了解有關警報的更多信息,請參閱設定性能問題警報。
效能監控支援針對超出定義閾值的指標發出警報。為了避免與這些效能指標的可配置閾值混淆,我們刪除了為問題配置閾值的功能。
我們以新設計的集中式使用者介面 (UI) 取代了「詳細資訊」和「指標」頁面,以改善解決問題的方式。這個新的故障排除 UI 提供了與「詳細資料」和「指標」所提供的相同的核心功能。要了解有關故障排除的更多信息,請參閱查看特定追蹤的更多數據。
效能監控從應用程式的用戶設備收集效能數據。如果您的應用程式有許多用戶,或者應用程式產生大量效能活動,效能監控可能會將資料收集限製到一部分設備,以減少處理的事件數量。這些限制足夠高,因此即使事件較少,指標值仍然可以代表使用者的應用程式體驗。
為了管理我們收集的資料量,效能監控使用以下採樣選項:
設備上速率限制:為了防止設備發送突然爆發的跟踪,我們將從設備發送的代碼和網路請求跟踪的數量限制為每 10 分鐘 300 個事件。這種方法可以保護設備免受可發送大量性能數據的循環儀器的影響,並防止單一設備扭曲性能測量結果。
動態採樣:效能監控每天在所有應用程式使用者中收集每個應用程式的程式碼追蹤事件限制為大約 100M,網路請求追蹤限制為 100M。在裝置上取得動態取樣率(使用 Firebase 遠端配置)以確定隨機裝置是否應擷取和傳送追蹤記錄。未選擇進行採樣的設備不會發送任何事件。動態取樣率是特定於應用程式的,並進行調整以確保收集的資料總量保持在限制以下。
用戶會話從用戶設備發送額外的詳細數據,需要更多資源來捕獲和發送數據。為了最大限度地減少使用者會話的影響,效能監控還可能限制會話數量。
伺服器端速率限制:為了確保應用程式不超過取樣限制,效能監控可能會使用伺服器端取樣來刪除從裝置接收的某些事件。儘管這種類型的限制不會改變我們指標的有效性,但它可能會導致輕微的模式變化,包括以下內容:
- 追蹤的數量可能與一段程式碼的執行次數不同。
- 程式碼中緊密耦合的追蹤可能各自具有不同數量的樣本。
我們用警報的引入取代了「問題」選項卡,當超出您設定的閾值時,警報會自動通知您。您不再需要手動檢查 Firebase 控制台來決定閾值的狀態。若要了解警報,請參閱設定效能問題警報。
我們重新設計了 Firebase 控制台的效能監控部分,以便「儀表板」標籤在一個空間中顯示您的關鍵指標和所有追蹤記錄。作為重新設計的一部分,我們刪除了「裝置上」和「網路」頁面。
儀表板選項卡底部的追蹤表具有與設備上和網路選項卡顯示的所有相同信息,但增加了一些功能,包括按特定指標的百分比變化對追蹤進行排序的功能。若要查看特定追蹤的所有指標和數據,請按一下追蹤表中的追蹤名稱。
在追蹤表的以下子標籤中查看您的追蹤:
- 網路請求追蹤(開箱即用和自訂)-網路請求子選項卡
- 自訂程式碼追蹤 -自訂追蹤子選項卡
- 應用程式啟動、應用程式在前台、應用程式在背景追蹤 -自訂追蹤子選項卡
- 螢幕渲染痕跡 -螢幕渲染子選項卡
- 頁面載入追蹤 -頁面載入子選項卡
有關追蹤表以及查看指標和數據的詳細信息,請訪問控制台概述頁面 ( iOS+ | Android | Web )。
緩慢渲染幀和凍結幀是在假定裝置更新率為 60Hz 的情況下計算的。如果裝置更新率低於 60Hz,則每幀的渲染時間將會變慢,因為每秒渲染的幀數較少。較慢的渲染時間可能會導致報告更多較慢或凍結的幀,因為更多的幀將渲染得較慢或凍結。但是,如果裝置更新率高於 60Hz,則每幀的渲染時間將會更快。這可能會導致報告的慢幀或凍結幀減少。這是效能監控 SDK 中的當前限制。
如果效能監控是您應用程式中唯一的 Firebase 產品,並且您對以下方面感興趣,則可以使用獨立的效能監控 SDK(以及下面推薦的標頭腳本):
- 使用命名空間庫
- 減少您的 SDK 套件大小
- 將 SDK 的初始化延遲到頁面載入之後
要在您的應用程式中包含獨立的效能監控 SDK 並將其初始化延遲到頁面載入之後:
- 將以下腳本新增至索引檔案的標頭。
- 確保新增應用程式的Firebase 專案配置物件。
(function(sa,fbc){function load(f,c){var a=document.createElement('script'); a.async=1;a.src=f;var s=document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(a,s);}load(sa); window.addEventListener('load',function(){firebase.initializeApp(fbc).performance()}); })(performance_standalone, firebaseConfig);
在哪裡,
- performance_standalone是
'https://www.gstatic.com/firebasejs/10.7.0/firebase-performance.js'
- firebaseConfig是您套用的Firebase 設定對象
上述腳本非同步載入獨立 SDK,然後在視窗的onload
事件觸發後初始化 Firebase。此策略減少了 SDK 對頁面載入指標的影響,因為在初始化 SDK 時瀏覽器已經報告了其載入指標。
接近即時數據處理和顯示
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。