Datadog fournit des millions d'insights détaillés sur les performances avec ProfilingManager
Temps de lecture : 4 min
Les régressions de performances sont notoirement difficiles à reproduire, ce qui en fait un goulot d'étranglement majeur pour les développeurs mobiles. Bien que des signaux tels que les taux d'erreurs ANR indiquent quels problèmes se produisent en production, l'identification de la ligne de code spécifique à l'origine du problème de performances nécessitait jusqu'à présent une reproduction manuelle exhaustive ou des tests spéculatifs par essais et erreurs.
Datadog a collaboré avec Google pour atténuer cette frustration en intégrant l'API ProfilingManager (disponible sur les appareils Android 15 et versions ultérieures) à ses plates-formes Real User Monitoring (RUM) et Continuous Profiling. Cette intégration transforme le workflow de débogage, ce qui permet aux développeurs d'aller au-delà des symptômes superficiels et de détecter le pourquoi d'un goulot d'étranglement des performances.
En exploitant cette API au niveau du système, Datadog traite désormais des millions de profils de production chaque semaine dans le monde entier, selon les données internes de Datadog de juin 2026. Il offre aux équipes d'ingénierie un nouveau niveau de visibilité sur les performances réelles, tout en maintenant un faible coût d'exécution pour la surveillance des performances à l'échelle de la production.
Impact de ProfilingManager
ProfilageManager est un service système introduit dans Android 15 qui permet aux applications de collecter de manière programmatique des données sur les performances telles que des échantillons de pile d'appel, des traces de champ et des empreintes de la mémoire directement à partir d'environnements de production. Cette fonctionnalité transforme le paradigme d'ingénierie, en passant d'une reproduction manuelle réactive à une analyse proactive sur le terrain.
Par exemple, une application de communication Google a utilisé des traces de champ pour déterminer pourquoi ses temps de démarrage à froid étaient plus lents sur du matériel plus récent et plus puissant. En analysant les traces collectées sur le terrain et en les comparant entre différents types d'appareils, l'ingénieur a découvert un problème de planification caché : un service de synthèse vocale en arrière-plan était préchauffé inutilement au démarrage de l'application. Les traces ont révélé que ce processus en arrière-plan monopolisait le cœur de processeur le plus performant de l'appareil, forçant le thread principal de l'application à se mettre en veille pendant le préchauffage.
Résoudre le problème de visibilité au niveau du code Android
Avant l'implémentation de ProfilingManager, la solution Real User Monitoring (RUM) de Datadog se concentrait sur l'état général de l'application et la télémétrie au niveau de la session pour évaluer le parcours utilisateur. Les équipes d'ingénierie pouvaient surveiller les signaux de performances Android tels que le délai d'affichage initial, les taux d'erreurs ANR, la charge du processeur et les frames figés. Ces insights s'étendent aux interactions précises, telles que la latence du réseau, les événements tactiles et les blocages du thread principal. Cependant, bien que ces données aient permis de mettre en évidence les goulots d'étranglement des performances sur le terrain, elles n'ont pas permis d'identifier clairement la cause de ces défaillances.
Pour résoudre ce problème, Datadog avait besoin d'un moteur de profilage capable de capturer les traces Android directement à partir des appareils en production, avec un impact minimal sur les performances. Après avoir évalué d'autres approches, comme l'écriture de son propre processeur de trace à l'aide des API de débogage Android, l'équipe a choisi ProfilingManager, car il s'agit de la solution la plus performante parmi les options de profilage qu'elle a évaluées. De plus, elle délègue les décisions d'échantillonnage à l'OS.
ProfilingManager est compatible avec un large éventail de méthodes de collecte, y compris les traces de processeur, l'échantillonnage de la pile d'appel, l'analyse de la mémoire via les empreintes de la mémoire Java et les profileurs de segments de mémoire natifs. Il permet aux développeurs de profiler les builds de production, d'importer des fichiers de trace dans un espace de stockage externe et de les examiner dans l'interface utilisateur de l'analyseur de trace Perfetto. En tant que fournisseur SaaS, Datadog importe, visualise et analyse ces profils collectés via son SDK, offrant ainsi une vue unifiée de l'état de l'application.
En centralisant la télémétrie haute fidélité dans une API d'observabilité unifiée, ProfilingManager permet à Datadog et à ses clients de surveiller, d'examiner et de corriger de manière proactive les régressions de performances Android complexes grâce à des avantages techniques clés :
- Diagnostics de session précis : ProfilingManager améliore la capacité de débogage en fournissant des données de trace directes au niveau de l'OS, ce qui permet de surmonter les problèmes de visibilité et d'alignement typiques de la journalisation personnalisée avec les services système. Pour aller plus loin, les développeurs peuvent télécharger ces traces depuis Datadog afin de les examiner plus en détail dans des outils de visualisation tels que l'UI Perfetto.
- Déclencheurs de télémétrie automatisés : en exploitant les événements système natifs pour lancer des enregistrements de traces à des points d'optimisation clés, Datadog réduit la nécessité de créer une logique de collecte personnalisée. Bien que le déploiement initial se concentre sur le signal APP_FULLY_DRAWN, il est déjà prévu d'étendre cette observabilité pour inclure les déclencheurs ANR, OOM et COLD_START.
- Instantanés de trace proactifs : en s'interfaçant directement avec le service Perfetto au niveau du système (tracé), ProfilingManager utilise un modèle d'enregistrement proactif en arrière-plan conçu pour capturer les problèmes imprévisibles. Les développeurs bénéficient ainsi d'une visualisation précise des événements qui ont conduit à une anomalie de performances, ce qui leur offre un niveau d'insight supérieur à ce qu'il est possible d'obtenir avec une instrumentation manuelle.
- Détection des goulots d'étranglement à grande échelle : Datadog est capable de synthétiser la télémétrie de l'ensemble de sa clientèle mondiale pour détecter les régressions qui ne se produisent que dans des configurations matérielles uniques et des environnements réseau variables.
- Stabilité des ressources appliquée par le système : l'API exploite la collecte de traces d'échantillonnage pour s'assurer que les impacts sur les performances et l'expérience utilisateur restent imperceptibles.
- Paramètres de traitement des données sur l'appareil : ProfilingManager filtre les informations non pertinentes provenant d'autres processus sur l'appareil avant que le profil ne soit envoyé à l'application. Cela permet de réduire la taille des fichiers et de s'assurer que seules les données pertinentes pour les processus de l'application sont fournies.
Traitement de millions de profils hebdomadaires pour optimiser les applications réelles
L'intégration d'une API de profilage au niveau du système dans un SDK de surveillance global a nécessité de résoudre des problèmes d'infrastructure. Comme ProfilingManager génère des traces de performances très détaillées, l'équipe d'ingénierie de Datadog a dû créer un pipeline capable d'analyser ces profils côté serveur à grande échelle. Au-delà de la collecte de profils, Datadog souligne également l'importance de trouver un équilibre entre la fréquence d'échantillonnage et la collecte de suffisamment de données pour générer des insights pertinents sur votre application. Datadog s'appuie sur la limitation du débit intégrée de ProfilingManager comme mesure de protection essentielle de la stabilité, empêchant les requêtes de télémétrie excessives de surcharger les appareils des utilisateurs.
L'équipe a profilé l'application Android native de Datadog et un certain nombre d'applications d'utilisateurs de la première heure pendant des mois, en recueillant des millions de profils pour garantir un lancement rapide et sans erreur, et pour affiner ses algorithmes de détection des performances. Aujourd'hui, l'intégration en production s'adapte parfaitement à une grande variété d'appareils Android.
Conclusion
En intégrant l'API ProfilingManager d'Android, Datadog a réussi à combler le manque de visibilité entre les systèmes de backend et les applications clientes mobiles pour ses clients. En traitant des millions de profils chaque semaine avec une surcharge négligeable pour les appareils, Datadog fournit aux développeurs Android les insights au niveau du code nécessaires pour diagnostiquer instantanément les bugs de performances complexes. Les développeurs peuvent ainsi créer des applications plus fluides et améliorer les signaux de performances de leurs applications sur le Play Store. Pour adopter l'API ProfilingManager directement dans votre framework d'observabilité des performances, consultez notre documentation.
À l'avenir, Datadog souhaite faire des données de profilage Android une entrée de premier ordre pour les agents de codage afin de résoudre de manière autonome les goulots d'étranglement des performances, ce qui permettra de boucler la boucle de rétroaction entre la détection et la correction. Datadog s'efforce de rendre le profilage Android largement accessible aux développeurs.
Pour commencer à utiliser la fonctionnalité de surveillance des utilisateurs réels de Datadog optimisée par ProfilingManager, consultez Datadog Mobile Real User Monitoring.
-
Études de casKarrot est une application de place de marché peer-to-peer hyperlocale et axée sur la communauté, qui permet aux utilisateurs d'acheter, de vendre et d'échanger des articles avec d'autres utilisateurs validés. Depuis son lancement en Corée du Sud en 2015, la plate-forme s'est étendue à l'international et compte plus de 43 millions d'utilisateurs inscrits.
Thomas Ezan, Tracy Agyemang • Temps de lecture : 2 min -
Études de casGrab est la super-application leader en Asie du Sud-Est. Elle propose des services de livraison, de mobilité et des services financiers à des millions d'utilisateurs dans huit pays via une seule application.
Ajesh Pai, Nguyen Van Minh, Tracy Agyemang • Temps de lecture : 5 min -
Études de casL'équipe a créé un codebase d'UI basé sur l'IA 50% plus petit que l'implémentation d'origine, tout en réduisant de 35% le temps d'exécution de l'agent IA, de 32% les échanges entre l'ingénieur et l'agent, et de 33% le coût des jetons.
Pavlo Stavytskyi, Rebecca Franks • Temps de lecture : 11 min
Recevez chaque semaine les dernières informations sur le développement Android dans votre boîte de réception.