效能監控收集追蹤來幫助您監控應用程式的效能。追蹤是應用程式中兩個時間點之間捕獲的性能數據的報告。
您可以建立自己的追蹤來監控與應用程式中特定程式碼關聯的效能數據。透過自訂程式碼追蹤,您可以測量應用程式完成一項特定任務或一組任務(例如載入一組圖像或查詢資料庫)所需的時間。
自訂程式碼追蹤的預設指標是其「持續時間」(追蹤的起始點和停止點之間的時間),但您也可以新增自訂指標。
在程式碼中,您可以使用效能監控 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 控制台中追蹤效能問題。
針對會降低應用程式效能的程式碼變更設定警報。例如,如果特定自訂程式碼追蹤的持續時間超過您設定的閾值,您可以為您的團隊設定電子郵件警報。