Fallstudien

Datadog liefert mit ProfilingManager Millionen detaillierter Leistungsdaten

Lesezeit: 4 Minuten

Leistungsregressionen sind bekanntermaßen schwer zu reproduzieren und stellen daher einen großen Engpass für mobile Entwickler dar. Signale wie ANR-Raten geben zwar an, welche Probleme in der Produktion auftreten, aber um die spezifische Codezeile zu ermitteln, die zu dem Leistungsproblem geführt hat, war bisher eine umfassende manuelle Reproduktion oder ein spekulatives Trial-and-Error-Verfahren erforderlich.

Datadog hat in Zusammenarbeit mit Google dieses Problem gelöst, indem die ProfilingManager API (verfügbar auf Android 15-Geräten und höher) in die Plattformen Real User Monitoring (RUM) und Continuous Profiling integriert wurde. Diese Integration verändert den Debugging-Workflow und ermöglicht es Entwicklern, über oberflächliche Symptome hinauszugehen und die Ursache eines Leistungsengpasses zu ermitteln.

Durch die Nutzung dieser API auf Systemebene verarbeitet Datadog laut internen Daten vom Juni 2026 jetzt weltweit wöchentlich Millionen von Produktionsprofilen. So erhalten Engineering-Teams einen neuen Einblick in die Leistung in der Praxis und können gleichzeitig das Leistungsmonitoring in Produktionsumgebungen mit geringem Laufzeitaufwand durchführen.

Auswirkungen von ProfilingManager

ProfilingManager ist ein Systemdienst, der in Android 15 eingeführt wurde und es Apps ermöglicht, Leistungsdaten wie Aufrufstack-Beispiele, Feld-Traces und Speicher-Heap-Dumps direkt aus Produktionsumgebungen programmatisch zu erfassen. So können Engineering-Teams von der reaktiven manuellen Reproduktion zur proaktiven Feldanalyse übergehen.

AANDDM_DataDog_Quote_01.png

Beispielsweise hat ein Google-Kommunikationsdienst mithilfe von Feld-Traces untersucht, warum die Kaltstartzeiten auf neuerer, leistungsstärkerer Hardware langsamer waren. Durch die Analyse der im Feld erfassten Traces und den Vergleich von Traces auf verschiedenen Gerätetypen entdeckte der Entwickler ein verstecktes Planungsproblem: Ein Hintergrunddienst für die Text-to-Speech-Funktion wurde beim Start der App unnötigerweise vorab geladen. Die Traces zeigten, dass dieser Hintergrundprozess den leistungsstärksten großen CPU-Kern des Geräts monopolisierte, wodurch der Hauptthread der App während des Vorabladens in den Ruhezustand versetzt wurde.

Herausforderung der Sichtbarkeit auf Android-Codeebene lösen

Vor der Implementierung von ProfilingManager konzentrierte sich Datadogs Real User Monitoring (RUM) auf den allgemeinen Zustand der Anwendung und die Telemetrie auf Sitzungsebene, um die Nutzerreise zu bewerten. Engineering-Teams konnten Android-Leistungssignale wie die Zeit bis zur ersten Anzeige, ANR-Raten, CPU-Auslastung und eingefrorene Frames überwachen. Diese Erkenntnisse erstreckten sich auch auf detaillierte Interaktionen wie Netzwerklatenz, Touch-Ereignisse und Hängen des Hauptthreads. Diese Daten zeigten zwar effektiv, welche Leistungsengpässe im Feld auftraten, aber sie lieferten keine klare Möglichkeit, die Ursache dieser Fehler zu ermitteln.

AANDDM_DataDog_Quote_02.png

Um dieses Problem zu beheben, benötigte Datadog eine Profiling-Engine, mit der Android-Traces direkt von Geräten in der Produktion erfasst werden können, ohne die Leistung zu beeinträchtigen. Nach der Bewertung alternativer Ansätze, z. B. der Entwicklung eines eigenen Trace-Prozessors mit Android Debug APIs, entschied sich das Team für ProfilingManager, da es die leistungsstärkste Lösung der bewerteten Profiling-Optionen ist und die Entscheidungen zur Stichprobenerhebung an das Betriebssystem auslagert.

ProfilingManager unterstützt eine Vielzahl von Erfassungsmethoden, darunter CPU-Traces, Aufrufstack-Sampling und Speicheranalyse durch Java-Heap-Dumps und native Heap-Profile. So können Entwickler Produktions-Builds profilieren, Trace-Dateien in den externen Speicher hochladen und sie in der Perfetto-Trace-Analyzer-UI überprüfen. Als SaaS-Anbieter lädt Datadog diese über das SDK erfassten Profile hoch, visualisiert und analysiert sie und bietet so eine einheitliche Ansicht des Zustands der Anwendung. 

Durch die Zentralisierung von Telemetriedaten mit hoher Genauigkeit in einer einheitlichen Observability API ermöglicht ProfilingManager Datadog und seinen Kunden, komplexe Android-Leistungsregressionen proaktiv zu überwachen, zu untersuchen und zu beheben. Dies wird durch die folgenden wichtigen technischen Vorteile ermöglicht:

  • Detaillierte Sitzungsdiagnose : ProfilingManager verbessert die Debugging-Fähigkeit, indem er direkte Trace-Daten auf Betriebssystemebene liefert. So werden die Sichtbarkeits- und Abstimmungsprobleme überwunden, die typisch für benutzerdefiniertes Logging mit Systemdiensten sind. Um tiefer in die Materie einzutauchen, können Entwickler diese Traces von Datadog herunterladen und in Visualisierungstools wie der Perfetto UI weiter untersuchen.
  • Automatisierte Telemetrie-Trigger : Durch die Nutzung nativer Systemereignisse zum Starten von Trace-Aufzeichnungen an wichtigen Optimierungspunkten reduziert Datadog den Bedarf an benutzerdefinierter Erfassungslogik. Die erste Einführung konzentriert sich auf das Signal APP_FULLY_DRAWN. Es ist jedoch bereits geplant, diese Observability auf die Trigger ANROOM und COLD_START auszuweiten.
  • Proaktive Trace-Snapshots : Durch die direkte Interaktion mit dem Perfetto-Dienst auf Systemebene (traced) verwendet ProfilingManager ein proaktives Hintergrundaufzeichnungsmodell, das für die Erfassung unvorhersehbarer Probleme entwickelt wurde. So erhalten Entwickler eine genaue Visualisierung der Ereignisse, die zu einer Leistungsanomalie führen. Dies bietet einen Einblick, der über das hinausgeht, was durch manuelle Instrumentierung möglich ist.
  • Erkennung von Engpässen im großen Maßstab : Datadog kann Telemetriedaten aus dem gesamten globalen Kundenstamm von Datadog zusammenführen, um Regressionen aufzudecken, die nur bei bestimmten Hardwarekonfigurationen und variablen Netzwerkumgebungen auftreten.
  • Systemseitig erzwungene Ressourcenstabilität: Die API nutzt die Stichprobenerhebung für die Trace-Erfassung, um sicherzustellen, dass sich die Auswirkungen auf die Leistung und die Nutzererfahrung nicht bemerkbar machen.
  • Datenkontrollen auf dem Gerät : ProfilingManager filtert irrelevante Informationen aus anderen Prozessen auf dem Gerät heraus, bevor das Profil an die App gesendet wird. So werden die Dateigrößen minimiert und es werden nur Daten bereitgestellt, die für die Prozesse der App relevant sind.

Millionen von wöchentlichen Profilen verarbeiten, um Apps in der Praxis zu optimieren

datadog-profiling-blogpost-final.png
Beispiel für die Messung der Zeit bis zur ersten Anzeige von Datadog mit Stack-Sampling, unterstützt durch ProfilingManager

Die Integration einer Profiling-API auf Systemebene in ein globales Monitoring-SDK erforderte die Lösung von Infrastrukturproblemen. Da ProfilingManager sehr detaillierte Leistungs-Traces generiert, musste das Engineering-Team von Datadog eine Pipeline entwickeln, mit der diese Profile serverseitig im großen Maßstab geparst und analysiert werden können. Neben der Profilerfassung betont Datadog auch die Bedeutung des Gleichgewichts zwischen der Stichprobenhäufigkeit und der Erfassung genügend Daten, um aussagekräftige Erkenntnisse über die Anwendung zu gewinnen. Datadog nutzt die integrierte Ratenbegrenzung von ProfilingManager als wichtige Stabilitätsmaßnahme, um zu verhindern, dass übermäßige Telemetrieanfragen die Geräte der Nutzer überlasten. 

Das Team profiliert seit Monaten die eigene native Android-App von Datadog und die Anwendungen einer Reihe von Early Adoptern. Dabei werden Millionen von Profilen erfasst, um einen schnellen und fehlerfreien Start zu gewährleisten und die Algorithmen zur Leistungserkennung zu optimieren. Heute lässt sich die Produktionsintegration nahtlos auf eine Vielzahl von Android-Geräten skalieren. 

Fazit

Durch die Integration der ProfilingManager API von Android hat Datadog die Sichtbarkeitslücke zwischen Back-End-Systemen und mobilen Clientanwendungen für seine Kunden geschlossen. Durch die wöchentliche Verarbeitung von Millionen von Profilen mit vernachlässigbarem Geräteaufwand bietet Datadog Android-Entwicklern die Erkenntnisse auf Codeebene, die erforderlich sind, um komplexe Leistungsfehler sofort zu diagnostizieren. So können Entwickler reibungslosere Anwendungen entwickeln und die Leistungssignale ihrer App im Google Play Store verbessern. Informationen zur direkten Übernahme der ProfilingManager API in Ihr Framework für die Leistungsobservability finden Sie in unserer Dokumentation.

In Zukunft möchte Datadog Android-Profiling-Daten als erstklassige Eingabe für Coding-Agenten nutzen, um Leistungsengpässe autonom zu beheben und so den Feedback-Loop zwischen Erkennung und Behebung zu schließen. Datadog arbeitet daran, Android-Profiling für Entwickler allgemein zugänglich zu machen.

Informationen zu den ersten Schritten mit der Real User Monitoring-Funktion von Datadog, die von ProfilingManager unterstützt wird, finden Sie unter Datadog Mobile Real User Monitoring.

Weiterlesen