性能監控收集跟踪來幫助您監控應用程序的性能。跟踪是應用程序中兩個時間點之間捕獲的性能數據的報告。
您可以創建自己的跟踪來監控與應用程序中特定代碼關聯的性能數據。通過自定義代碼跟踪,您可以測量應用程序完成一項特定任務或一組任務(例如加載一組圖像或查詢數據庫)所需的時間。
自定義代碼跟踪的默認指標是其“持續時間”(跟踪的起始點和停止點之間的時間),但您也可以添加自定義指標。
在代碼中,您可以使用性能監控 SDK 提供的 API 定義自定義代碼跟踪的開始和結束。
自定義代碼跟踪可以在創建後隨時啟動,並且它們是線程安全的。
由於為這些跟踪收集的默認指標是“持續時間”,因此它們有時稱為“持續時間跟踪”。
您可以在跟踪表的自定義跟踪子選項卡中查看這些跟踪中的數據,該表位於性能儀表板的底部(稍後將詳細了解如何使用控制台)。
默認屬性、自定義屬性和自定義指標
對於自定義代碼跟踪,性能監控會自動記錄默認屬性(常見元數據,如應用版本、國家/地區、設備等),以便您可以在 Firebase 控制台中過濾跟踪數據。您還可以添加和監控自定義屬性(例如游戲級別或用戶屬性)。
您可以進一步配置自定義代碼跟踪,以記錄跟踪範圍內發生的與性能相關的事件的自定義指標。例如,您可以為緩存命中和未命中次數或 UI 在一段時間內變得無響應的次數創建自定義指標。
自定義屬性和自定義指標與跟踪的默認屬性和默認指標一起顯示在 Firebase 控制台中。
添加自定義代碼跟踪
使用性能監控跟踪 API 添加自定義代碼跟踪以監控特定應用程序代碼。
請注意以下事項:
- 一個應用程序可以有多個自定義代碼跟踪。
- 可以同時運行多個自定義代碼跟踪。
- 自定義代碼跟踪的名稱必須滿足以下要求:沒有前導或尾隨空格、沒有前導下劃線 (
_
) 字符、最大長度為 100 個字符。 - 自定義代碼跟踪支持添加自定義指標和自定義屬性。
要啟動和停止自定義代碼跟踪,請使用類似於以下的代碼包裝要跟踪的代碼:
Trace customTrace = FirebasePerformance.instance.newTrace('custom-trace');
await customTrace.start();
// Code you want to trace
await customTrace.stop();
將自定義指標添加到自定義代碼跟踪
使用性能監控跟踪 API 將自定義指標添加到自定義代碼跟踪中。
請注意以下事項:
- 自定義指標的名稱必須滿足以下要求:沒有前導或尾隨空格、沒有前導下劃線 (
_
) 字符、最大長度為 100 個字符。 - 每個自定義代碼跟踪最多可以記錄 32 個指標(包括默認的持續時間指標)。
要添加自定義指標,請在每次事件發生時添加一行類似於以下內容的代碼。例如,此自定義指標對應用程序中發生的與性能相關的事件進行計數,例如緩存命中或重試。
Trace customTrace = FirebasePerformance.instance.newTrace("custom-trace");
await customTrace.start();
// Code you want to trace
customTrace.incrementMetric("metric-name", 1);
// More code
await customTrace.stop();
為自定義代碼跟踪創建自定義屬性
要使用自定義屬性,請將代碼添加到定義該屬性並將其與特定自定義代碼跟踪關聯的應用程序。您可以在跟踪開始和跟踪停止之間隨時設置自定義屬性。
請注意以下事項:
自定義屬性的名稱必須滿足以下要求:沒有前導或尾隨空格、沒有前導下劃線 (
_
) 字符、最大長度為 32 個字符。每個自定義代碼跟踪最多可以記錄 5 個自定義屬性。
您不應使用包含可向 Google 識別個人身份的信息的自定義屬性。
性能監控本身並不收集任何個人身份信息 (PII),例如姓名、電子郵件地址或電話號碼。開發人員可以通過在自定義代碼跟踪上創建自定義屬性,使用性能監控來收集其他數據。通過性能監控收集的此類數據不應包含可向 Google 識別個人身份的信息。
以下是不包含個人身份信息的日誌消息示例:
customTrace.putAttribute("experiment", "A"); // OK
以下是包含個人身份信息的示例(請勿在您的應用程序中使用此類自定義屬性):
customTrace.putAttribute(("email", user.getEmailAddress()); // Don't do this!
暴露任何個人身份信息的數據可能會被刪除,恕不另行通知。
Trace trace = FirebasePerformance.instance.newTrace("test_trace");
// Update scenario.
trace.putAttribute("experiment", "A");
// Reading scenario.
String? experimentValue = trace.getAttribute("experiment");
// Delete scenario.
trace.removeAttribute("experiment");
// Read attributes.
Map<String, String> traceAttributes = trace.getAttributes();
跟踪、查看和過濾性能數據
跟踪儀表板中的特定指標
要了解關鍵指標的趨勢,請將它們添加到績效儀表板頂部的指標板中。您可以通過查看每週的變化來快速識別回歸,或者驗證代碼中的最新更改是否正在提高性能。
要將指標添加到指標板,請轉到 Firebase 控制台中的“性能”儀表板,然後單擊“儀表板”選項卡。單擊空指標卡,然後選擇現有指標以添加到您的看板中。單擊填充的指標卡上的垂直省略號 ( ⋮ ) 可獲取更多選項,例如替換或刪除指標。
指標板以圖形形式和數字百分比變化的形式顯示隨時間推移收集的指標數據。
了解有關使用儀表板的更多信息。
查看踪跡及其數據
要查看跟踪,請轉到 Firebase 控制台中的性能儀表板,向下滾動到跟踪表,然後單擊相應的子選項卡。該表顯示每個跟踪的一些主要指標,您甚至可以按特定指標的百分比變化對列表進行排序。
如果單擊跟踪表中的跟踪名稱,則可以單擊各個屏幕來探索跟踪並深入了解感興趣的指標。在大多數頁面上,您可以使用“過濾器”按鈕(屏幕左上角)按屬性過濾數據,例如:
- 按應用程序版本過濾以查看有關過去版本或最新版本的數據
- 按設備過濾以了解舊設備如何處理您的應用
- 按國家/地區過濾以確保您的數據庫位置不會影響特定區域
了解有關查看跟踪數據的更多信息。
下一步
了解有關使用屬性檢查性能數據的更多信息。
詳細了解如何在 Firebase 控制台中跟踪性能問題。
針對會降低應用程序性能的代碼更改設置警報。例如,如果特定自定義代碼跟踪的持續時間超過您設置的閾值,您可以為您的團隊配置電子郵件警報。