Fallstudien

Datadog liefert mit ProfilingManager Millionen detaillierter Leistungsstatistiken

Lesezeit: 4 Minuten

Leistungsregressionen sind notorisch schwer zu reproduzieren, was sie zu einem großen Engpass für mobile Entwickler macht. 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, waren bisher umfangreiche manuelle Reproduktionen oder spekulative Versuche erforderlich.

Datadog hat in Zusammenarbeit mit Google die ProfilingManager API (verfügbar auf Geräten mit Android 15 und höher) in seine Plattformen für Real User Monitoring (RUM) und Continuous Profiling integriert, um dieses Problem zu beheben. Diese Integration revolutioniert den Debugging-Workflow. Entwickler können nicht nur oberflächliche Symptome erkennen, sondern auch die Ursache eines Leistungsengpasses.

Durch die Nutzung dieser API auf Systemebene verarbeitet Datadog laut internen Daten von Juni 2026 wöchentlich Millionen von Produktionsprofilen weltweit. Entwicklungsteams erhalten so einen neuen Einblick in die Leistung in der Praxis, während der Laufzeit-Overhead für die Leistungsüberwachung im Produktionsmaßstab gering bleibt.

Auswirkungen von ProfilingManager

ProfilingManager ist ein Systemdienst, der in Android 15 eingeführt wurde und mit dem Apps programmatisch Leistungsdaten wie Aufrufstack-Stichproben, Feld-Traces und Speicher-Heap-Dumps direkt aus Produktionsumgebungen erfassen können. So können Sie vom reaktiven manuellen Reproduzieren zum proaktiven Analysieren von Feldern wechseln.

AANDDM_DataDog_Quote_01.png

Eine Google-Kommunikations-App hat beispielsweise Feld-Traces verwendet, um zu untersuchen, warum die Kaltstartzeiten auf neuerer, leistungsstärkerer Hardware langsamer waren. Durch die Analyse der vor Ort erfassten Traces und den Vergleich von Traces auf verschiedenen Gerätetypen entdeckte der Entwickler ein verborgenes Planungsproblem: Ein Hintergrunddienst für die Sprachausgabe wurde beim Start der App unnötig vorab initialisiert. Die Traces ergaben, dass dieser Hintergrundprozess den leistungsstärksten großen CPU-Kern des Geräts monopolisierte, wodurch der Hauptthread der App während des Prewarm-Vorgangs in den Ruhezustand versetzt wurde.

Herausforderungen bei der Sichtbarkeit auf Codeebene in Android lösen

Vor der Implementierung von ProfilingManager konzentrierte sich das Real User Monitoring (RUM) von Datadog auf den allgemeinen Anwendungszustand und die Telemetrie auf Sitzungsebene, um den User Journey zu bewerten. Engineering-Teams können Android-Leistungssignale wie die Zeit bis zur ersten Anzeige, ANR-Raten, CPU-Last und eingefrorene Frames im Blick behalten. Diese Informationen umfassten auch detaillierte Interaktionen wie Netzwerklatenz, Touch-Ereignisse und Hänger im Hauptthread. Diese Daten haben zwar effektiv aufgezeigt, welche Leistungsengpässe im Feld auftraten, aber keinen klaren Weg zur Ermittlung der Ursache dieser Fehler geboten.

AANDDM_DataDog_Quote_02.png

Um dieses Problem zu beheben, benötigte Datadog eine Profiling-Engine, die Android-Traces direkt von Produktionsgeräten mit minimalen Auswirkungen auf die Leistung erfassen kann. Nachdem das Team alternative Ansätze wie das Schreiben eines eigenen Trace-Prozessors mit Android Debug APIs in Betracht gezogen hatte, entschied es sich für ProfilingManager, da es die leistungsstärkste der untersuchten Profiling-Optionen ist und die Sampling-Entscheidungen an das Betriebssystem auslagert.

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

Durch die Zentralisierung der Telemetrie 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 wichtige technische Vorteile ermöglicht:

  • Detaillierte Sitzungsdiagnose : ProfilingManager verbessert die Debugging-Fähigkeit, indem direkte Trace-Daten auf Betriebssystemebene bereitgestellt werden. So werden die Sichtbarkeits- und Ausrichtungsprobleme überwunden, die bei benutzerdefiniertem Logging mit Systemdiensten typisch sind. Entwickler können diese Traces von Datadog herunterladen, um sie in Visualisierungstools wie der Perfetto-Benutzeroberfläche genauer zu untersuchen.
  • Automatisierte Telemetrie-Trigger : Datadog nutzt native Systemereignisse, um Trace-Aufzeichnungen an wichtigen Optimierungspunkten zu starten. So wird die Notwendigkeit reduziert, benutzerdefinierte Erfassungslogik zu erstellen. Bei der ersten Einführung liegt der Fokus auf dem Signal APP_FULLY_DRAWN. Es ist jedoch bereits geplant, diese Beobachtbarkeit auf die Trigger ANR, OOM und COLD_START auszuweiten.
  • Proaktive Trace-Snapshots : ProfilingManager kommuniziert direkt mit dem Perfetto-Dienst auf Systemebene (traced) und verwendet ein proaktives Hintergrundaufzeichnungsmodell, das darauf ausgelegt ist, unvorhersehbare Probleme zu erfassen. So erhalten Entwickler eine genaue Visualisierung der Ereignisse, die zu einer Leistungsanomalie geführt haben. Das ist mehr, als durch manuelle Instrumentierung möglich ist.
  • Engpasserkennung 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.
  • Systemgestützte Ressourcenstabilität : Die API nutzt die Erfassung von Stichproben, um sicherzustellen, dass die Leistung und Nutzerfreundlichkeit nicht beeinträchtigt werden.
  • 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. Dadurch werden Dateigrößen minimiert und es werden nur Daten bereitgestellt, die für die Prozesse der App relevant sind.

Verarbeitung von Millionen wöchentlicher Profile zur Optimierung von Apps in der Praxis

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

Die Integration einer Profiling-API auf Systemebene in ein globales Monitoring-SDK erforderte die Bewältigung von Infrastrukturherausforderungen. Da ProfilingManager sehr detaillierte Leistungs-Traces generiert, musste das Datadog-Entwicklungsteam eine Pipeline erstellen, die diese Profile serverseitig im großen Maßstab parsen und analysieren kann. Neben der Profilerstellung betont Datadog auch, wie wichtig es ist, die Stichprobenhäufigkeit mit der Erhebung genügend Daten in Einklang zu bringen, um aussagekräftige Erkenntnisse über Ihre Anwendung zu gewinnen. Datadog nutzt die integrierte Ratenbegrenzung von ProfilingManager als wichtigen Stabilitätsschutz, um zu verhindern, dass übermäßige Telemetrieanfragen Nutzergeräte überlasten. 

Das Team hat die eigene native Android-App von Datadog und die Anwendungen einer Reihe von Early Adopters über Monate hinweg profiliert und Millionen von Profilen gesammelt, um einen schnellen, fehlerfreien Start zu ermöglichen und die Algorithmen zur Leistungserkennung zu optimieren. Die Produktionsintegration lässt sich heute nahtlos auf eine Vielzahl von Android-Geräten skalieren. 

Fazit

Durch die Integration der ProfilingManager API von Android konnte Datadog die Sichtbarkeitslücke zwischen Backend-Systemen und mobilen Clientanwendungen für seine Kunden schließen. Datadog verarbeitet wöchentlich Millionen von Profilen mit vernachlässigbarem Geräte-Overhead und bietet Android-Entwicklern die erforderlichen Informationen auf Codeebene, um komplexe Leistungsfehler sofort zu diagnostizieren. So können Entwickler flüssigere Anwendungen erstellen und die Leistungssignale ihrer App im Google Play Store verbessern. Wenn Sie die ProfilingManager API direkt in Ihr Framework für die Leistungsbeobachtung einbinden möchten, finden Sie hier die Dokumentation.

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

Weitere Informationen zur Verwendung der Datadog-Funktion für die Überwachung von echten Nutzern, die auf ProfilingManager basiert, finden Sie unter  Datadog Mobile Real User Monitoring.

Weiterlesen