個案研究

Datadog 透過 ProfilingManager 提供數百萬筆深入的效能洞察資料

4 分鐘小故事

效能迴歸問題向來難以重現,因此對行動應用程式開發人員來說,迴歸問題是巨大的瓶頸。雖然 ANR 率等信號會指出實際工作環境中發生的哪些問題,但要找出導致效能問題的特定程式碼行,過去需要詳盡的手動重現或試誤實驗。

為解決這個問題,Datadog 與 Google 合作,將 ProfilingManager API (適用於 Android 15 以上版本裝置) 整合至 Real User Monitoring (RUM) 和 Continuous Profiling 平台。這項整合改變了偵錯工作流程,讓開發人員不再只關注表面症狀,而是能夠偵測效能瓶頸背後的「原因」

根據 2026 年 6 月的 Datadog 內部資料,Datadog 現在每週會運用這個系統層級的 API,在全球處理數百萬個生產設定檔,為工程團隊提供全新層級的實際效能洞察資料,同時維持生產規模效能監控的低執行階段負荷。

ProfilingManager 的影響

ProfilingManager 是 Android 15 推出的系統服務,可讓應用程式直接從正式環境,以程式輔助方式收集成效資料,例如呼叫堆疊樣本、欄位追蹤和記憶體快照資料。這項功能可將工程思維從被動手動重現,轉變為主動現場分析。

AANDDM_DataDog_Quote_01.png

舉例來說,Google 通訊應用程式使用欄位追蹤,調查為何在效能較強的新型硬體上,冷啟動時間較慢。工程師深入研究欄位收集的追蹤記錄,並比較不同裝置類型的追蹤記錄,發現隱藏的排程問題:應用程式啟動期間,系統不必要地預先暖機背景文字轉語音服務。追蹤記錄顯示,這個背景程序獨占裝置效能最高的 CPU 大核心,導致應用程式的主執行緒在預先暖機期間進入休眠狀態。

解決 Android 程式碼層級的可視度問題

在導入 ProfilingManager 之前,Datadog 的 Real User Monitoring (RUM) 著重於高階應用程式健康狀態和工作階段層級遙測,以評估使用者歷程。工程團隊可以監控 Android 效能信號,例如初始顯示時間、ANR 率、CPU 負載和凍結影格。這些洞察資料會延伸至細微的互動,例如網路延遲、觸控事件和主執行緒停止回應。不過,雖然這些資料有效突顯了現場出現的效能瓶頸,但無法清楚指出這些失敗的根本原因。

AANDDM_DataDog_Quote_02.png

為解決這個問題,Datadog 需要剖析引擎,能夠直接從實際運作的裝置擷取 Android 追蹤記錄,且對效能的影響極小。評估過其他方法 (例如使用 Android Debug API 編寫自己的追蹤處理器) 後,團隊選用了 ProfilingManager,因為在他們評估的剖析選項中,這是效能最高的解決方案,而且可將取樣決策的負擔卸載至 OS。

ProfilingManager 支援各種收集方法,包括 CPU 追蹤記錄、呼叫堆疊取樣、透過 Java 記憶體快照資料和原生堆積快照進行記憶體分析。開發人員可以透過這個工具分析正式版建構作業、將追蹤檔上傳至外部儲存空間,並在 Perfetto 追蹤記錄分析器 UI 中查看。Datadog 是 SaaS 供應商,會上傳、顯示及分析透過 SDK 收集的設定檔,提供應用程式健康狀態的整合式資料檢視。

ProfilingManager 透過統一的觀測 API 集中管理高精確度的遙測資料,並運用以下主要技術優勢,協助 Datadog 和客戶主動監控、調查及修正複雜的 Android 效能回歸問題:

  • 精細的階段診斷: ProfilingManager 可直接提供作業系統層級的追蹤資料,克服系統服務自訂記錄的常見可見度和對齊問題,進而提升偵錯能力。如要深入瞭解,開發人員可以從 Datadog 下載這些追蹤記錄,並在 Perfetto UI 等視覺化工具中進一步調查。
  • 自動遙測觸發條件: Datadog 會運用原生系統事件,在重要最佳化點啟動追蹤記錄,減少建構自訂收集邏輯的需求。雖然初期推出時著重於 APP_FULLY_DRAWN 信號,但我們已規劃擴大這項觀測能力,納入 ANROOMCOLD_START 觸發條件。
  • 主動追蹤快照: ProfilingManager 會直接與系統層級的 Perfetto 服務 (追蹤) 介接,並使用主動式背景記錄模型,擷取無法預測的問題。這可確保開發人員能精確呈現導致效能異常狀況的事件,提供的洞察資訊比手動檢測更深入。
  • 大規模偵測瓶頸: Datadog 能夠綜合分析 Datadog 全球客戶群的遙測資料,找出只會在特定硬體設定和多變的網路環境中出現的迴歸。
  • 系統強制執行的資源穩定性: API 會運用取樣追蹤記錄收集功能,確保效能和使用者體驗不受影響。
  • 裝置端資料控管: 在設定檔傳送至應用程式前,ProfilingManager 會先篩除裝置上其他程序中的無關資訊,盡量縮小檔案大小,並確保只提供與應用程式程序相關的資料。

每週處理數百萬個設定檔,以最佳化實際應用程式

將系統層級的剖析 API 整合至全球監控 SDK 時,需要解決基礎架構方面的挑戰。由於 ProfilingManager 會產生非常詳細的效能追蹤記錄,Datadog 工程團隊必須建構管道,以便在伺服器端大規模剖析及分析這些設定檔。除了收集設定檔,Datadog 也強調平衡取樣頻率的重要性,確保收集足夠的資料,進而產生應用程式的實用洞察資料。Datadog 依賴 ProfilingManager 的內建頻率限制功能,做為重要的穩定性保護措施,避免過多的遙測要求造成使用者裝置負擔過重。

這個團隊已針對 Datadog 自己的原生 Android 應用程式,以及許多早期採用者的應用程式進行數個月的剖析,收集數百萬個剖析資料,確保推出時能提供快速且無錯誤的體驗,並改善效能偵測演算法。如今,這項整合功能已在各種 Android 裝置上順利推出。

結論

Datadog 整合 Android 的 ProfilingManager API 後,成功為客戶縮小後端系統與行動用戶端應用程式之間的能見度差距。Datadog 每週處理數百萬個設定檔,裝置負擔微乎其微,為 Android 開發人員提供程式碼層級的洞察資料,協助他們立即診斷複雜的效能錯誤,進而建構更流暢的應用程式,並改善應用程式在 Play 商店中的效能信號。如要直接在效能可觀測性架構中採用 ProfilingManager API,請參閱我們的文件

Datadog 的目標是讓 Android 剖析資料成為編碼代理的主要輸入內容,以便自主解決效能瓶頸,縮短偵測和補救措施之間的意見回饋循環。Datadog 致力於讓開發人員廣泛存取 Android 剖析功能。

如要開始使用由 ProfilingManager 支援的 Datadog 實際使用者監控功能,請前往「 Datadog Mobile Real User Monitoring」。

繼續閱讀