Fallstudien

Datadog liefert mit ProfilingManager Millionen detaillierter Leistungsstatistiken

Lesezeit: 4 Minuten

Leistungsabfälle sind notorisch schwer zu reproduzieren, was sie zu einem großen Engpass für mobile Entwickler macht. Obwohl Signale wie ANR-Raten angeben, welche Probleme in der Produktion auftreten, war es bisher erforderlich, den spezifischen Code zu ermitteln, der zum Leistungsproblem geführt hat, indem man das Problem manuell reproduziert oder spekulative Versuche durchgeführt hat.

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 verändert 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. So erhalten Entwicklungsteams eine neue Ebene der Transparenz in Bezug auf die Leistung in der Praxis, während gleichzeitig ein geringer Laufzeit-Overhead für die Leistungsüberwachung im Produktionsmaßstab beibehalten wird.

Auswirkungen von ProfilingManager

ProfilingManager ist ein Systemdienst, der in Android 15 eingeführt wurde und es Apps ermöglicht, programmatisch Leistungsdaten wie Aufrufstack-Samples, Feld-Traces und Memory-Heap-Dumps direkt aus Produktionsumgebungen zu erfassen. Diese Funktion verlagert das Engineering-Paradigma von der reaktiven manuellen Reproduktion zur proaktiven Feldanalyse.

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 ergaben, 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. Entwicklungsteams 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, 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, Callstack-Sampling, Speicheranalyse über Java-Heap-Dumps und native Heap-Profile. Entwickler können damit Produktions-Builds profilieren, Trace-Dateien in externen Speicher hochladen und sie in der Perfetto-Trace-Analyzer-Benutzeroberfläche ansehen. Als SaaS-Anbieter lädt Datadog diese über das SDK erfassten 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 Tracedaten auf Betriebssystemebene bereitgestellt werden. So werden die Sichtbarkeits- und Ausrichtungsprobleme überwunden, die typisch für benutzerdefinierte Protokollierung mit Systemdiensten sind. Entwickler können diese Traces aus Datadog herunterladen, um sie in Visualisierungstools wie der Perfetto-UI weiter zu untersuchen.
  • Automatisierte Telemetrie-Trigger : Datadog nutzt native Systemereignisse, um die Aufzeichnung von Traces an wichtigen Optimierungspunkten zu starten. So ist es nicht mehr erforderlich, benutzerdefinierte Erfassungslogik zu erstellen. Die erste Einführung konzentriert sich auf das 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 ist mit manueller Instrumentierung nicht möglich.
  • 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.
  • Datensteuerung 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

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 Statistiken zu Ihrer Anwendung zu generieren. 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 ermöglichen 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. 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 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