本頁提供疑難排解提示,協助您開始使用 Performance Monitoring,或是
運用 Performance Monitoring 的功能和工具
初步檢查疑難排解
以下兩項是建議所有人採用的通用最佳做法
,再進行進一步疑難排解。
1. 查看效能事件的記錄訊息
查看記錄訊息,確認 Performance Monitoring SDK 會擷取記錄
效能事件
如何查看效能事件的記錄訊息
新增 <meta-data>
,在建構期間啟用 Performance Monitoring 的偵錯記錄功能
加入到應用程式的 AndroidManifest.xml
檔案中,如下所示:
<application>
<meta-data
android:name="firebase_performance_logcat_enabled"
android:value="true" />
</application>
檢查記錄訊息,看看是否有任何錯誤訊息。
Performance Monitoring 會使用 FirebasePerformance
標記記錄訊息。使用 logcat
就能特別查看持續時間追蹤記錄和 HTTP/S 網路
來要求記錄:
adb logcat -s FirebasePerformance
查看下列類型的記錄檔,瞭解效能監控功能是否為
記錄效能事件:
Logging trace metric: TRACE_NAME, FIREBASE_PERFORMANCE_CONSOLE_URL
Logging network request trace: URL
按一下網址,即可在 Firebase 控制台查看資料。這項作業可能需要
資料更新。
如果您的應用程式未記錄效能事件,請參閱疑難排解
提示。
2. 查看 Firebase 狀態資訊主頁
查看
Firebase 狀態資訊主頁
Firebase 或 Performance Monitoring 發生已知的服務中斷情形。
開始使用 Performance Monitoring
如要開始使用 Performance Monitoring
(iOS 以上版本 |
Android |
網頁),下列疑難排解說明
這些提示可協助您處理 Firebase 偵測或顯示 SDK 的相關問題
開始評估您的第一項成效資料
已將 SDK 新增至應用程式,但 Play 管理中心
仍表示要新增 SDK
Firebase 可偵測您是否已成功將 Performance Monitoring SDK 新增至應用程式
。
通常在啟動應用程式後的 10 分鐘內,效能
資訊主頁
Firebase 控制台顯示「偵測到 SDK」撰寫新的電子郵件訊息然後,在 30 天內
分鐘,資訊主頁會顯示初始處理的資料。
如果 10 分鐘過後,
但您的應用程式仍然沒有任何異動,請查看您的記錄
訊息,確保 Performance Monitoring 會記錄
事件。依照下列適當的疑難排解步驟操作,
排解 SDK 偵測延遲訊息的問題。
應用程式正在記錄事件:疑難排解
步驟
確認您使用的是 Performance Monitoring Android SDK 19.1.0 以上版本 (或
Firebase BoM 26.3.0 以上版本),請參閱版本資訊。
如果您在本機進行開發,請嘗試為資料產生更多事件
集合:
- 將應用程式切換為背景或前景以產生事件
反覆切換不同畫面來與應用程式互動
及/或觸發網路要求
確認您的 Firebase 設定
檔案 (google-services.json
) 是
且並未修改檔案。
具體來說,請檢查下列事項:
如果應用程式中的設定檔似乎有誤,請嘗試下列做法:
刪除應用程式目前使用的設定檔。
請按照這些步驟操作
下載新的設定檔,並新增至 Android 應用程式。
如果 SDK 正在記錄事件,且所有設定皆正確無誤,
但還是看不到 SDK 偵測訊息或已處理的資料
(10 分鐘後),請與 Firebase 支援團隊聯絡。
應用程式「不會」記錄事件:
疑難排解步驟
檢查 Performance Monitoring Gradle 外掛程式的設定,如下所示:
請務必
新增了
外掛程式。具體來說,請檢查下列事項:
- 您已新增外掛程式
(
apply plugin: 'com.google.firebase.firebase-perf'
) 英寸
您的模組 (應用程式層級) build.gradle
檔案。
- 您已加入外掛程式的 classpath 依附元件
(
classpath 'com.google.firebase:perf-plugin:1.4.2'
)。
位於專案層級 build.gradle
檔案中。
請確認
外掛程式
「未」透過下列任一方式停用
旗標:
- 模組中的
instrumentationEnabled
(應用程式層級)
build.gradle
個檔案
- 在您的
firebasePerformanceInstrumentationEnabled
gradle.properties
個檔案
檢查 Performance Monitoring SDK 是否不是
已停用
透過 AndroidManifest.xml
檔案中下列其中一個標記:
firebase_performance_collection_enabled
firebase_performance_collection_deactivated
確認 Performance Monitoring 未在以下時間停用:
執行階段。
如果您在應用程式中找不到任何已停用的擴充功能,
與 Firebase 支援團隊聯絡。
一般疑難排解
如果您已成功新增 SDK,並在應用程式中使用 Performance Monitoring,
下列疑難排解提示可解決一般
Performance Monitoring 的功能與工具。
應用程式未記錄資料
成效事件
如未收到效能記錄訊息
活動,請嘗試以下疑難排解步驟:
檢查 Performance Monitoring Gradle 外掛程式的設定,如下所示:
請務必
新增了
外掛程式。具體來說,請檢查下列事項:
- 您已新增外掛程式
(
apply plugin: 'com.google.firebase.firebase-perf'
) 英寸
您的模組 (應用程式層級) build.gradle
檔案。
- 您已加入外掛程式的 classpath 依附元件
(
classpath 'com.google.firebase:perf-plugin:1.4.2'
)。
位於專案層級 build.gradle
檔案中。
請確認
外掛程式
「未」透過下列任一方式停用
旗標:
- 模組中的
instrumentationEnabled
(應用程式層級)
build.gradle
個檔案
- 在您的
firebasePerformanceInstrumentationEnabled
gradle.properties
個檔案
檢查 Performance Monitoring SDK 是否不是
已停用
透過 AndroidManifest.xml
檔案中下列其中一個標記:
firebase_performance_collection_enabled
firebase_performance_collection_deactivated
確認 Performance Monitoring 未在以下時間停用:
執行階段。
如果您在應用程式中找不到任何已停用的擴充功能,
與 Firebase 支援團隊聯絡。
效能資訊主頁為
缺少螢幕追蹤記錄資料
如果缺少畫面轉譯追蹤記錄的資料,請嘗試下列做法
疑難排解步驟:
請確認您使用的是最新版的 Android SDK
(21.0.1 版)。畫面轉譯追蹤記錄僅適用於
v15.2.0 以上版本。
確認您並未手動停用硬體
加速
。
請確認您並未使用 DexGuard 或 Jack。Performance Monitoring 目前為
無法與這些工具鍊搭配使用
效能資訊主頁為
缺少自訂追蹤記錄資料
您是否看到自動收集的追蹤記錄成效資料,但
自訂程式碼追蹤記錄?請嘗試下列疑難排解步驟:
若您使用
Trace API,
檢查追蹤記錄設定,特別是以下:
- 自訂程式碼追蹤和自訂指標的名稱必須符合下列規定
要求:開頭或結尾不含空白字元,沒有前置底線
(
_
) 的字元,長度上限為 32 個半形字元。
- 您必須開始及停止所有追蹤記錄。任何未啟動 (而非) 的追蹤記錄
停止或停止前停止。
如果您透過 @AddTrace
檢測自訂程式碼追蹤記錄
標記法、
檢查 Performance Monitoring Gradle 外掛程式的設定:
請務必
新增了
外掛程式。具體來說,請檢查下列事項:
- 您已新增外掛程式
(
apply plugin: 'com.google.firebase.firebase-perf'
) 英寸
您的模組 (應用程式層級) build.gradle
檔案。
- 您已加入外掛程式的 classpath 依附元件
(
classpath 'com.google.firebase:perf-plugin:1.4.2'
)。
位於專案層級 build.gradle
檔案中。
請確認
外掛程式
「未」透過下列任一方式停用
旗標:
- 模組中的
instrumentationEnabled
(應用程式層級)
build.gradle
個檔案
- 在您的
firebasePerformanceInstrumentationEnabled
gradle.properties
個檔案
查看記錄訊息,確定
Performance Monitoring 會記錄預期的自訂程式碼追蹤記錄。
如果 Performance Monitoring 會記錄事件,但 24 小時後仍未顯示資料,
與 Firebase 支援團隊聯絡。
效能資訊主頁
沒有網路要求資料
如果你找不到網路要求資料,請嘗試以下疑難排解步驟:
以 Android 應用程式來說,Performance Monitoring Gradle 外掛程式會啟用一項檢測作業,
能夠自動監控
HTTP/S 網路要求。
請確認下列事項:
請務必
新增了
外掛程式。具體來說,請檢查下列事項:
- 您已新增外掛程式
(
apply plugin: 'com.google.firebase.firebase-perf'
) 英寸
您的模組 (應用程式層級) build.gradle
檔案。
- 您已加入外掛程式的 classpath 依附元件
(
classpath 'com.google.firebase:perf-plugin:1.4.2'
)。
位於專案層級 build.gradle
檔案中。
請確認
外掛程式
「未」透過下列任一方式停用
旗標:
- 模組中的
instrumentationEnabled
(應用程式層級)
build.gradle
個檔案
- 在您的
firebasePerformanceInstrumentationEnabled
gradle.properties
個檔案
檢查網路程式庫不相容。自動監控效能
針對使用以下網路的網路要求收集指標
程式庫:OkHttp 3.x.x、Java 的 URLConnection 以及 Apache HttpClient。
請注意,您可以為網路新增自訂監控功能。
要求。
請留意下列事項:
視您程式碼的行為和
執行程式碼時,Performance Monitoring 可能只會記錄符合下列條件的網路要求
已完成這表示已開啟的 HTTP/S 連線
。
Performance Monitoring 與 DexGuard 和 Jack 不相容。
- DexGuard 會停用 HTTP/S 網路要求的監控功能。
- Jack 已淘汰,
通常不應在應用程式中使用
Performance Monitoring 不會針對無效的網路要求產生報表
Content-Type
標頭。不過,如果沒有
系統仍會接受 Content-Type
標頭。
常見問題
Project 首頁的成效資訊卡「主要問題」怎麼了?
我們已將重要問題替換為近期快訊,做為後續追蹤之用
最近推出了幾項快訊功能,這項功能會在
您設定的閾值會跨越您設定的門檻問題已淘汰
並由快訊取代
「成效」資訊卡頂端的應用程式選取器會篩選快訊
「近期快訊」下的項目。針對
系統隨即會顯示所選應用程式。
如要進一步瞭解快訊,請參閱
設定效能問題快訊。
在控制台中設定問題閾值的能力如何?
Performance Monitoring 支援針對超過
定義的閾值為了避免與以下項目的可自行設定閾值混淆:
我們移除了設定閾值的功能
問題。
Firebase 控制台中的詳細資料和指標資訊怎麼了?
我們重新設計了「詳細資料」和「指標」頁面,全新重新設計的集中化介面
使用者介面 (UI),提升排解問題的方式。這項新功能
疑難排解 UI 所提供的核心功能與「詳細資料」和
提供指標。如要進一步瞭解疑難排解,請參閱:
查看特定追蹤記錄的其他資料。
為什麼樣本數量與預期不符?
Performance Monitoring 會從應用程式使用者的裝置收集效能資料,如果您的
或應用程式產生大量效能
活動時,Performance Monitoring 可能會將資料收集範圍限制為一部分裝置
減少已處理的事件數這些限制夠高
即使事件較少,指標值仍代表
使用者體驗
為管理收集的資料量,Performance Monitoring 會使用以下方法:
取樣選項:
裝置端頻率限制:如何避免裝置突然傳送大量
追蹤,我們會限制從用戶端伺服器傳送的程式碼與網路要求追蹤數量
每 10 分鐘最多播放 300 個事件這個做法可以保護裝置
迴圈檢測作業可能會傳送大量效能資料
這可以防止單一裝置在測量效能時出現偏差。
動態取樣:Performance Monitoring 收集的限制約為 1 億筆
每個應用程式每日的程式碼追蹤記錄事件和 1 億個網路要求追蹤記錄的事件
適用於所有應用程式使用者系統會在裝置上擷取動態取樣率 (使用
Firebase 遠端設定),藉此判斷隨機裝置是否應
擷取及傳送追蹤記錄。未選擇抽樣的裝置不會進行
會傳送任何事件。動態取樣率僅適用於應用程式,並調整為
確保收集的資料總量不超過限制。
使用者工作階段會從使用者的裝置傳送其他詳細資料,因此需要
更多資源來擷取與傳送資料為了將
另外,Performance Monitoring 也有可能限制工作階段數量。
伺服器端頻率限制:確保應用程式不會超出取樣量
限制,Performance Monitoring 可能會使用伺服器端取樣法來捨棄部分事件
收到的訊息。雖然這種限制不會改變
這可能會導致數據模式改變,包括
包括:
- 追蹤記錄數量可能會與單一區塊
相關程式碼
- 在程式碼中緊密耦合的追蹤記錄,可能會各自有不同數量的追蹤記錄
樣本。
控制台的「問題」分頁怎麼了?
推出「快訊」功能,取代了「問題」分頁
會在超過設定的門檻時自動通知您。你不行
不需要再手動查看 Firebase 控制台,就能判斷
例如閾值如要瞭解快訊功能,請參閱「設定效能問題快訊」一文。
控制台的「裝置上」和「網路」分頁有什麼影響?
如何查看這些網頁中的追蹤記錄?
Firebase 控制台的「Performance Monitoring」部分經過重新設計,
「Dashboard」(資訊主頁) 分頁會在單一空間中顯示重要指標和所有追蹤記錄。阿斯
我們在重新設計時一併移除了「裝置上」和「網路」頁面。
「資訊主頁」分頁底部的追蹤記錄表,都相同
「裝置上」和「網路」分頁顯示的資訊,但有一些
例如可以按照百分比排序追蹤記錄
特定指標的變化如何查看特定所有的指標和資料
追蹤記錄,請按一下追蹤記錄表格中的追蹤記錄名稱。
在追蹤記錄表的下列子分頁中查看追蹤記錄:
- 網路要求追蹤記錄 (現成和自訂) -「聯播網請求」子分頁
- 自訂程式碼追蹤:「自訂追蹤」子分頁
- 應用程式啟動、應用程式前景、應用程式在背景中的追蹤記錄 - 「自訂追蹤記錄」子分頁
- 畫面轉譯追蹤記錄 -「螢幕轉譯」子分頁
- 網頁載入追蹤:「網頁載入」子分頁
如要進一步瞭解追蹤記錄表格並查看指標和資料,請前往
主控台總覽頁面
(iOS 以上版本 |
Android |
網頁)。
為什麼緩慢影格和凍結影格的數量與預期不符?
轉譯速度緩慢的影格和凍結影格,都是以假設的裝置計算
刷新率為 60Hz。如果裝置刷新率低於 60 Hz,則每個影格
會使轉譯時間較慢,因為每秒轉譯的影格數較少。
如果轉譯時間較慢,系統可能會回報緩慢影格或凍結影格的數量
因為轉譯速度變慢或畫面凍結但如果裝置
刷新率高於 60 Hz,每個影格的轉譯時間都會更快。
這可能會導致回報的緩慢影格或凍結影格數量較少。這是
Performance Monitoring SDK 的限制
為什麼我看到的片段追蹤記錄比其他追蹤記錄少?
Performance Monitoring 會對裝置上收集的所有事件進行事件取樣。
這種做法可讓我們收集使用者裝置所需的最低事件數
提供成效指標
如果我的
該怎麼辦?
Performance Monitoring 可讓您針對自己重視的指標設定快訊。針對生成
也可以設定快訊,讓系統在
緩慢影格和凍結影格百分比超過您設定的門檻
啟用 Performance Monitoring Gradle 外掛程式後,我的建構時間偏高。做法
我該如何改善?
Android 的 Performance Monitoring 使用位元碼檢測技術
使用、
監控 HTTP/S 網路要求。
做為編譯的一部分,這個程序需要疊代所有類別
才能檢測應用程式的重要程式碼
評估應用程式的網路要求效能
以下列舉幾個縮短建構時間的關鍵因素:
- 課程或檔案數量
- 每個類別的大小 (程式碼行)
- 您的機器設定
- 初始版本與後續版本 (後續建構通常是
速度比初始版本快)
如要最佳化建構時間,請考慮
將程式碼模組化。
自 1.3.3 版起
但現在我們已著重在
改善程式庫輸入內容的漸進式建構處理和快取功能。
如要收到最新的建構時間改善項目,請務必使用
最新版本的
外掛程式
(1.4.2 版)。
請注意,您可以停用
Performance Monitoring 外掛程式
為了避免長時間建構。不過
我們不建議在正式環境中使用這個方法,因為這可能導致
未成功測量應用程式網路要求的效能。
如果因程式庫與 Performance Monitoring Gradle 外掛程式不相容而收到建構錯誤,該怎麼辦?
Android 的 Performance Monitoring 使用位元碼檢測技術
使用、
監控 HTTP/S 網路要求。
做為編譯的一部分,這個程序需要疊代所有類別
才能檢測應用程式的重要程式碼
評估應用程式的網路要求效能
整合 Performance Monitoring 外掛程式後,如果發生建構錯誤 (例如 JSR/RET are not supported with
computeFrames option
或類似錯誤),
這可能是因為您還有依附元件在不相容的程式庫
與 Performance Monitoring Gradle 外掛程式搭配使用
如要解決這個問題,您可以按照下列步驟排除不相容的類別/程式庫,避免系統進行檢測:
- 更新至最新版 Performance Monitoring Gradle 外掛程式 (最低版本需求為 v1.4.0)。
- 將 Android Gradle 外掛程式版本更新至 7.2.0 以上版本。
- 將以下標記新增至模組 (應用程式層級)
build.gradle
檔案,以排除不相容的類別/程式庫,避免進行檢測:
android {
// ...
androidComponents {
onVariants(selector().all(), {
instrumentation.excludes.add("example.incompatible.library")
})
}
}
如要進一步瞭解 Android Gradle 外掛程式 Instrumentation
API 的 exclude
屬性,請參閱「檢測」一文。
請回報 GitHub 問題
您因為不相容程式庫而遇到建構錯誤
。
匯出 Performance Monitoring 資料所需的處理時間超過預期
BigQuery。並非即時資料嗎?
如果已啟用 Firebase Performance Monitoring 的 BigQuery 整合功能,您的資料
會在當天結束 (太平洋時間) 後的 12 至 24 小時內匯出至 BigQuery
時間)。
舉例來說,系統會在 4 月 20 日在 BigQuery 中提供 4 月 19 日的資料
中午 12 點到午夜 (所有日期和時間皆為太平洋時間)。
近乎即時的資料處理和顯示
「近乎即時」是什麼?成效資料代表的意義為何?
Firebase Performance Monitoring 會在您收到成效資料時,進行處理,
Firebase 控制台會顯示近乎即時的資料。已處理
資料收集作業會在幾分鐘內顯示在控制台中,
提供「近乎即時」的字詞。
如要使用近乎即時的資料處理功能,請確認您的應用程式使用
即時相容的 SDK
版本。
如何取得近乎即時的應用程式效能資料?
如要以近乎即時的方式處理資料,您只需要確保
應用程式使用與即時效能相容的 Performance Monitoring SDK 版本
資料處理。
以下是即時相容的 SDK 版本:
- iOS - 7.3.0 以上版本
- tvOS - 8.9.0 以上版本
- Android - v19.0.10 以上版本 (或 Firebase Android BoM v26.1.0 以上版本)
- 網頁版 - 7.14.0 以上版本
請注意,我們建議您一律使用最新版 SDK,但
上述版本之後,Performance Monitoring 就能近乎實際
讓應用程式從可以最快做出回應的位置
回應使用者要求
哪些版本的 Performance Monitoring SDK 可即時相容?
下列為與即時資料處理相容的 SDK 版本:
- iOS - 7.3.0 以上版本
- tvOS - 8.9.0 以上版本
- Android - v19.0.10 以上版本 (或 Firebase Android BoM v26.1.0 以上版本)
- 網頁版 - 7.14.0 以上版本
請注意,我們建議您一律使用最新版 SDK,但
上述版本之後,Performance Monitoring 就能近乎實際
讓應用程式從可以最快做出回應的位置
回應使用者要求
如果我不將應用程式更新為使用即時相容的 SDK 版本,會發生什麼情況?
如果您的應用程式未使用即時相容的 SDK 版本,您仍會看到
查看 Firebase 控制台的應用程式成效資料。不過,螢幕
從資料擷取當下算起,成效資料大概會延遲 36 小時
集合。
我已更新至與即時相容的 SDK 版本,但有些使用者
仍持續使用舊版應用程式我會繼續查看成效嗎?
資料嗎?
當然可以!無論應用程式執行個體使用哪個 SDK 版本,您會看見
以及所有使用者的成效資料
不過,如果您查看的是近期資料 (不到 36 小時)
則顯示的資料來自應用程式執行個體的使用者
相容的 SDK 版本。沒有近期的資料則會包含成效資料
。
如果發生以下情況:
與 Firebase 支援團隊聯絡。
請務必附上 Firebase 應用程式 ID。在以下頁面找出您的 Firebase 應用程式 ID:
「您的應用程式」資訊卡
settings 專案
設定。