Fallstudien

Datadog liefert mit ProfilingManager Millionen detaillierter Leistungsstatistiken

Lesezeit: 4 Minuten

Leistungsabfälle sind bekanntermaßen 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, war bisher eine aufwendige manuelle Reproduktion oder spekulative Trial-and-Error-Experimente erforderlich.

Datadog hat mit Google zusammengearbeitet, um dieses Problem zu beheben. Dazu wurde die ProfilingManager API (verfügbar auf Geräten mit Android 15 und höher) in die Plattformen „Real User Monitoring“ (RUM) und „Continuous Profiling“ integriert. 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 weltweit Millionen von Produktionsprofilen. Entwicklungsteams erhalten so einen neuen Einblick in die tatsächliche Leistung, 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 es Apps ermöglicht, programmatisch Leistungsdaten wie Aufrufstack-Stichproben, Feld-Traces und Memory-Heap-Dumps direkt aus Produktionsumgebungen zu erfassen. So können Sie von der reaktiven manuellen Reproduktion zur proaktiven Feldanalyse 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ötigerweise vorab geladen. Die Traces zeigten, dass dieser Hintergrundprozess den leistungsstärksten Big-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 Android-Codeebene meistern

Vor der Implementierung von ProfilingManager konzentrierte sich das Real User Monitoring (RUM) von Datadog auf die allgemeine Anwendungsleistung und die Telemetrie auf Sitzungsebene, um den Nutzerpfad zu bewerten. Engineering-Teams konnten Android-Leistungssignale wie die Zeit bis zur ersten Anzeige, ANR-Raten, CPU-Auslastung 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, mit der Android-Traces direkt von Produktionsgeräten mit minimalen Auswirkungen auf die Leistung erfasst werden können. 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 dies die leistungsstärkste der untersuchten Profiling-Optionen ist und der Overhead für die Sampling-Entscheidungen an das Betriebssystem ausgelagert wird.

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 Benutzeroberfläche des Perfetto-Trace-Analysators ansehen. 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 umgangen, die bei benutzerdefiniertem Logging mit Systemdiensten typisch sind. Entwickler können diese Traces von Datadog herunterladen, um sie in Visualisierungstools wie der Perfetto-UI genauer zu untersuchen.
  • Automatisierte Telemetrie-Trigger : Datadog nutzt native Systemereignisse, um Trace-Aufzeichnungen an wichtigen Optimierungspunkten zu starten. Dadurch ist weniger benutzerdefinierte Erfassungslogik erforderlich. 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 nutzt ein proaktives Hintergrundaufzeichnungsmodell, um unvorhersehbare Probleme zu erfassen. So erhalten Entwickler eine genaue Visualisierung der Ereignisse, die zu einer Leistungsanomalie geführt haben. Das bietet mehr Einblicke als die manuelle Instrumentierung.
  • 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.
  • Steuerelemente für Daten 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 realen Welt

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 in großem Umfang parsen und analysieren kann. Neben der Profilerstellung betont Datadog auch, wie wichtig es ist, die Stichprobenhäufigkeit mit der Erfassung 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 profiliert seit Monaten die eigene native Android-App von Datadog und die Anwendungen einer Reihe von Early Adopters. Dabei werden Millionen von Profilen erfasst, um einen schnellen, fehlerfreien Start zu gewährleisten und die Algorithmen zur Leistungserkennung zu optimieren. Die Produktionsintegration lässt sich 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 so die erforderlichen Informationen auf Codeebene, um komplexe Leistungsfehler sofort zu diagnostizieren. Das hilft Entwicklern, flüssigere Anwendungen zu erstellen und die Leistungssignale ihrer App im Google Play Store zu verbessern. Wenn Sie die ProfilingManager API direkt in Ihr Framework für die Leistungsobservability 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