個案研究

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

4 分鐘小故事

效能迴歸問題向來難以重現,因此是行動開發人員的一大瓶頸。雖然 ANR 發生率等信號可指出實際工作環境中發生哪些問題,但過去必須透過詳盡的手動重現或推測性試誤實驗,才能找出導致效能問題的特定程式碼行。

Datadog 與 Google 合作,將 ProfilingManager API (適用於 Android 15 以上版本裝置) 整合至 Real User Monitoring (RUM) 和 Continuous Profiling 平台,解決這個問題。這項整合功能可改變偵錯工作流程,讓開發人員不只看到表面症狀,還能找出效能瓶頸的原因。

根據 Datadog 2026 年 6 月的內部資料,Datadog 運用這個系統層級 API,現在每週在全球處理數百萬個正式環境設定檔。工程團隊可透過這項服務,以前所未有的方式掌握實際效能,同時維持低執行階段負擔,監控正式環境規模的效能。

ProfilingManager 的影響

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

AANDDM_DataDog_Quote_01.png

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

解決 Android 程式碼層級可見度難題

在導入 ProfilingManager 之前,Datadog 的真實使用者監控 (RUM) 著重於高階應用程式健康狀態和工作階段層級遙測,以評估使用者歷程。工程團隊可以監控 Android 效能信號,例如初始顯示時間、ANR 發生率、CPU 負載和凍結影格。這些深入分析資料延伸至精細的互動,例如網路延遲、觸控事件和主執行緒停止回應。不過,雖然這項資料有效突顯了實際環境中出現的效能瓶頸,但並未提供明確的方法來找出這些失敗的根本原因。

AANDDM_DataDog_Quote_02.png

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

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

ProfilingManager 將高保真度遙測資料集中在統一的 Observability API 中,讓 Datadog 及其用戶端能透過關鍵技術優勢,主動監控、調查及修正複雜的 Android 效能迴歸問題:

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

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

datadog-profiling-blogpost-final.png
Datadog 初始顯示時間測量範例,採用 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」。

繼續閱讀