Catch up on highlights from Firebase at Google I/O 2023. Learn more

設置性能問題警報

如果代碼更改或網絡請求正在降低應用程序的性能,請使用性能監控警報通知項目成員。

您可以為您的應用程序設置和自定義警報,當事件的性能超過設定的閾值時通知您。

什麼觸發警報?

當您的應用程序的指標超過您在 Firebase 控制台中為指定百分位數(如果適用)定義的閾值時,將觸發警報。僅當您的應用使用實時兼容的 SDK 版本時才會觸發警報。

應用啟動時間

當您為應用程序啟動時間配置警報時,如果滿足以下所有條件,則會觸發警報:

  • Firebase 在過去一小時內為您的應用的最新版本記錄了至少100 個_app_start跟踪樣本。
  • _app_start跟踪的持續時間在過去一小時內超過了應用程序定義的閾值,並且超過了配置的百分位數。
  • 在您的最新版本的應用程序中,之前沒有針對相同閾值發出警報。

自定義代碼跟踪

當您為自定義代碼跟踪指標配置警報時,如果滿足以下所有條件,則會觸發警報:

  • Firebase 在過去一小時內為您最新版本的應用記錄了至少100 個自定義代碼跟踪樣本
  • 跟踪的持續時間在過去一小時內超過了應用程序定義的閾值,並且超過了配置的百分位數。
  • (僅適用於 iOS+ 和 Android)在您的最新版本的應用程序中,之前沒有針對相同閾值發出警報。
  • (僅適用於網絡)在過去3 天內沒有針對同一閾值發出警報。

網絡請求

當您為網絡請求指標配置警報時,如果滿足以下所有條件,則會觸發警報:

  • Firebase 在過去一小時內記錄了至少100 個與應用所有版本的 URL 模式匹配的樣本
  • 指標的聚合值在過去一小時內超過了定義的閾值:
    • 響應時間:聚合值超過了為配置的百分位數設置的閾值
    • 成功率:(僅適用於 iOS+/Android)所有用戶的總值低於設定的閾值
  • 過去3 天沒有針對同一閾值發出警報。

屏幕渲染

當您為屏幕呈現指標配置警報時,如果滿足以下所有條件,則會觸發警報:

  • Firebase 在過去一小時內為您最新版本的應用記錄了至少100 個屏幕渲染樣本。
  • 指標的聚合值在過去一小時內超過了定義的閾值:
    • frozen frames : 聚合值超過設定的閾值
    • 慢幀:聚合值超過設定的閾值
  • 在您的最新版本的應用程序中,之前沒有針對相同閾值發出警報。

頁面加載

當您為頁面加載指標配置警報時,如果滿足以下所有條件,則會觸發警報:

  • Firebase 在過去一小時內為您的應用記錄了至少100 個頁面加載樣本
  • 該指標的聚合值在過去一小時內超過了定義的閾值,並且達到了配置的百分位數:
    • 首次輸入延遲:聚合值超過設定的閾值和配置的百分位數
    • first contentful paint : 聚合值超過了設定的閾值和配置的百分位數
    • first paint : 聚合值超過了設定的閾值和配置的百分位數
  • 過去3 天沒有針對同一閾值發出警報。

了解有關配置警報默認百分位數和為特定類型的跟踪和指標設置警報的最佳實踐的更多信息。

其他性能指標或內置 Firebase 與SlackJiraPagerDuty集成的警報不適用於性能監控警報。

接收警報

獲取默認警報

默認情況下,Firebase 可以通過電子郵件發送性能監控警報。

要通過此默認機制接收性能監控警報,您必須具有firebaseperformance.config.update權限。默認情況下,以下角色包含此必需權限:

警報及其設置適用於整個項目。這意味著,默認情況下,每個項目成員(不是電子郵件組並且具有接收警報所需的權限)都會在觸發性能警報時收到一封電子郵件。

為您自己的帳戶打開/關閉警報

對於您自己的帳戶,您可以在不影響其他項目成員的情況下打開/關閉性能監控警報。請注意,您仍然需要所需的權限才能接收警報。

要打開或關閉性能監控警報,請執行以下步驟:

  1. 在 Firebase 控制台的右上角,轉到 Firebase alerts
  2. 然後,轉到設置並為性能監控警報設置您的帳戶首選項。

設置對第三方服務的高級警報

您還可以使用 Cloud Functions for Firebase 將性能監控警報發送到您團隊的首選通知渠道。例如,您可以編寫一個函數來捕獲應用程序啟動時間緩慢的警報事件,並將警報信息發佈到第三方服務,如 Discord、Slack 或 Jira。

要使用 Cloud Functions for Firebase 設置高級警報功能,請執行以下步驟:

  1. 為 Firebase 設置 Cloud Functions ,其中包括以下任務:

    1. 為 Node.js 或 Python 設置開發環境。
    2. 安裝並登錄 Firebase CLI。
    3. 使用 Firebase CLI 初始化 Cloud Functions for Firebase。
  2. 編寫並部署一個函數,從性能監控中捕獲警報事件並處理事件負載(例如,在 Discord 上的消息中發布警報信息)。

要了解您可以捕獲的所有性能警報事件,請轉到性能監控警報的參考文檔。

自動刪除無效警報

性能監控驗證警報以確保數據有效並且警報處於活動狀態。如果滿足以下條件之一,則警報被視為有效:

  • 警報是為性能監控在過去 90 天內收到數據的資源 ID 創建的。
  • 該警報是最近為自定義 URL 模式創建的。創建自定義 URL 模式並設置警報後,您有 90 天的時間發送該模式的數據。如果在 90 天的時間段內未發送任何數據,性能監控將刪除該警報。有關自定義 URL 模式的更多信息,請參閱在客戶 URL 模式下聚合數據

如果不滿足這些條件中的任何一個,性能監控將刪除警報。

配置警報

要配置性能監控警報,您必須具有firebaseperformance.config.update權限。默認情況下,以下角色包括此必需權限: Firebase Performance AdminFirebase Quality AdminFirebase Admin和 project Owner or Editor

如果您還沒有這樣做,請將最新的性能監控 SDK 添加到您的應用程序中。有關詳細信息,請參閱網絡AndroidAppleFlutter平台的入門指南。

在您註冊的每個應用程序中,使用跟踪表儀表板報告卡為您要監控的每個指標配置警報。每個應用程序都可以有一組不同的警報,每個都有不同的閾值(或者根本沒有警報)。

在 Traces 表中配置警報

  1. 轉到 Firebase 控制台中的性能監控儀表板選項卡,然後選擇要為其配置警報的應用程序。

  2. 向下滾動到屏幕底部的 Traces 表。

  3. 選擇要為其設置警報的跟踪類型的選項卡,然後找到適用的行。

  4. 在該行的最右側,打開溢出菜單 ( ) 並選擇警報設置

  5. 按照屏幕上的說明為應用程序設置警報閾值和百分位數(如果適用),或打開/關閉警報。 Android 和 iOS 的默認百分位數為 90,Web 為 75。要了解有關默認百分位數的更多信息,請參閱在儀表板中跟踪關鍵指標

在儀表板報告卡中配置警報

  1. 轉到 Firebase 控制台中的性能監控儀表板選項卡,然後選擇要為其配置警報的應用程序。

  2. 在“報告卡”選項卡中,找到要為其配置警報的指標卡。

  3. 在所需的指標卡中,打開溢出菜單 ( ) 並選擇警報設置

  4. 按照屏幕上的說明為應用程序設置警報閾值和百分位數(如果適用),或打開/關閉警報。 Android 和 iOS 的默認百分位數為 90,Web 為 75。要了解有關默認百分位數的更多信息,請參閱在儀表板中跟踪關鍵指標

設置性能警報的最佳實踐

網絡請求

Firebase 根據 URL 模式聚合來自類似網絡請求的數據,可以是以下任一模式:

  • 用戶定義的模式,稱為自定義 URL 模式

  • Firebase 派生的模式,稱為自動 URL 模式
    根據您應用的最新使用行為,這些模式可能會隨著時間而改變。

為您的自定義 URL 模式設置警報

我們建議為您配置的任何自定義 URL 模式設置警報。由於 Firebase 首先嘗試將請求與自定義 URL 模式匹配,因此類似的請求會更一致地映射到相同的 URL 模式。這使得針對自定義 URL 模式的警報對您的團隊更有意義和有效,因為您已經確定該特定請求模式對您的應用很重要。

為自動 URL 模式設置警報

為自動 URL 模式設置警報時,請確保自動 URL 模式已穩定幾天。請記住,自動 URL 模式可能會隨著時間的推移而改變,並且警報配置不會轉移到新的 URL 模式。這可能會導致您關心的模式的警報不正確或丟失。您還可以考慮創建自定義 URL 模式以確保此模式穩定。

網頁加載

要了解衡量 Web 指標的推薦閾值,請參閱Core Web Vitals文檔。

屏幕效果圖

為確保最佳應用體驗,用戶會話不應出現緩慢和凍結的幀。性能監控建議您為大於 1% 的凍結幀設置警報,為超過 5% 的慢幀設置警報。您會發現這些值作為性能警報配置期間的默認設置存在。要詳細了解過度緩慢或凍結的幀以及其他應用性能最佳實踐,請參閱Google Play 指南