此頁面提供有關開始使用性能監控或使用性能監控功能和工具的故障排除提示。
首先檢查故障排除
在進一步排除故障之前,以下兩項檢查是推薦給任何人的一般最佳做法。
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 模式!
常問問題
性能監控從您應用的用戶設備收集性能數據。如果您的應用程序有很多用戶,或者如果應用程序生成大量性能活動,性能監控可能會將數據收集限製到設備子集,以減少已處理事件的數量。這些限制足夠高,因此即使事件較少,指標值仍能代表用戶的應用體驗。
為了管理我們收集的數據量,性能監控使用以下採樣選項:
設備端速率限制:為防止設備發送突然突發的跟踪,我們將設備發送的代碼和網絡請求跟踪的數量限制為每 10 分鐘 300 個事件。這種方法可以保護設備免受可以發送大量性能數據的循環儀器的影響,並防止單個設備扭曲性能測量。
動態採樣:性能監控為所有應用用戶的每個應用收集大約 1 億個代碼跟踪事件和 1 億個網絡請求跟踪事件。在設備上獲取動態採樣率(使用 Firebase 遠程配置)以確定隨機設備是否應捕獲和發送跟踪。未選擇採樣的設備不會發送任何事件。動態採樣率是特定於應用程序的,並且會進行調整以確保收集的數據總量保持在限制以下。
用戶會話從用戶設備發送額外的詳細數據,需要更多資源來捕獲和發送數據。為了最大限度地減少用戶會話的影響,性能監控還可能會限制會話的數量。
服務器端速率限制:為確保應用不超過採樣限制,性能監控可能會使用服務器端採樣來丟棄從設備接收到的某些事件。儘管這種類型的限制不會改變我們指標的有效性,但它可能會導致輕微的模式轉變,包括以下內容:
- 跟踪的數量可能與執行一段代碼的次數不同。
- 在代碼中緊密耦合的跡線可能各自具有不同數量的樣本。
我們將“問題”選項卡替換為“警報”,當超過您設置的閾值時,它會自動通知您。您不再需要手動檢查 Firebase 控制台來確定閾值的狀態。要了解警報,請參閱針對性能問題設置警報。
我們重新設計了 Firebase 控制台的性能監控部分,以便儀表板選項卡在一個空間中顯示您的關鍵指標和所有跟踪。作為重新設計的一部分,我們刪除了On device和Network頁面。
Dashboard選項卡底部的跟踪表具有與On device和Network選項卡顯示的所有相同信息,但具有一些附加功能,包括能夠按特定指標的百分比變化對跟踪進行排序。要查看特定跟踪的所有指標和數據,請單擊跟踪表中的跟踪名稱。
在跟踪表的以下子選項卡中查看您的跟踪:
- 網絡請求跟踪(開箱即用和自定義)-網絡請求子選項卡
- 自定義代碼跟踪 -自定義跟踪子選項卡
- 應用程序啟動、前台應用程序、後台應用程序跟踪 -自定義跟踪子選項卡
- 屏幕渲染跟踪 -屏幕渲染子選項卡
- 頁面加載跟踪 -頁面加載子選項卡
有關跟踪表以及查看指標和數據的詳細信息,請訪問控制台概覽頁面 ( iOS+ | Android | Web )。
性能監控支持針對超出定義閾值的指標發出警報。為避免與這些可配置的性能指標閾值混淆,我們刪除了為問題配置閾值的功能。
如果性能監控是您應用中唯一的 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/9.8.2/firebase-performance-standalone.js'
- firebaseConfig是您應用的Firebase 配置對象
上面的腳本異步加載獨立 SDK,然後在窗口的onload
事件觸發後初始化 Firebase。這種策略減少了 SDK 對頁面加載指標的影響,因為在您初始化 SDK 時瀏覽器已經報告了其加載指標。
近乎實時的數據處理和顯示
Firebase 性能監控處理收集的性能數據,從而在 Firebase 控制台中顯示近乎實時的數據。處理後的數據會在收集後的幾分鐘內顯示在控制台中,因此稱為“近實時”。
要利用近乎實時的數據處理,請確保您的應用使用實時兼容的 SDK 版本。
To take advantage of near real-time data processing, you only need to make sure that your app uses a Performance Monitoring SDK version that's compatible with real-time data processing.
These are the real-time compatible SDK versions:
- iOS — v7.3.0 or later
- tvOS — v8.9.0 or later
- Android — v19.0.10 or later (or Firebase Android BoM v26.1.0 or later)
- Web — v7.14.0 or later
Note that we always recommend using the latest version of SDK, but any version listed above will enable Performance Monitoring to process your data in near real time.
These are the SDK versions compatible with real-time data processing:
- iOS — v7.3.0 or later
- tvOS — v8.9.0 or later
- Android — v19.0.10 or later (or Firebase Android BoM v26.1.0 or later)
- Web — v7.14.0 or later
Note that we always recommend using the latest version of SDK, but any version listed above will enable Performance Monitoring to process your data in near real time.
If your app doesn't use a real-time compatible SDK version, you will still see all your app's performance data in the Firebase console. However, the display of performance data will be delayed by roughly 36 hours from the time of its collection.
Yes! Regardless of which SDK version an app instance uses, you'll see performance data from all your users.
However, if you're looking at recent data (less than roughly 36 hours old), then the displayed data is from users of app instances using a real-time compatible SDK version. The non-recent data, though, includes performance data from all versions of your app.
Contacting Firebase Support
If you reach out to Firebase Support , always include your Firebase App ID. Find your Firebase App ID in the Your apps card of your Project settings .