Études de cas

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'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 a toujours nécessité une reproduction manuelle exhaustive ou une expérimentation spéculative par essais et erreurs.

Datadog a collaboré avec Google pour atténuer ce problème 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, permettant aux développeurs d'aller au-delà des symptômes superficiels pour détecter la cause 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 par semaine dans le monde entier, selon les données internes de Datadog de juin 2026. Elle offre aux équipes d'ingénierie un nouveau niveau de visibilité sur les performances réelles, tout en maintenant une faible surcharge d'exécution pour la surveillance des performances à l'échelle de la production.

Impact de ProfilingManager

ProfilingManager est un service système introduit dans Android 15 qui permet aux applications de collecter par programmation des données sur les performances telles que des exemples de pile d'appels, des traces de champ et des vidages de mémoire directement à partir d'environnements de production. Cette fonctionnalité fait passer le paradigme d'ingénierie d'une reproduction manuelle réactive à une analyse proactive sur le terrain.

AANDDM_DataDog_Quote_01.png

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 examinant les traces collectées sur le terrain et en comparant les traces sur différents types d'appareils, l'ingénieur a découvert un problème de planification masqué : 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, ce qui forçait 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, 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 avant l'affichage initial, les taux d'ANR, la charge du processeur et les images figées. Ces insights s'étendaient aux interactions granulaires, telles que la latence du réseau, les événements tactiles et les blocages du thread principal. Toutefois, bien que ces données aient mis en évidence les goulots d'étranglement des performances sur le terrain, elles n'ont pas permis d'identifier clairement la cause première de ces échecs.

AANDDM_DataDog_Quote_02.png

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, telles que l'écriture de leur propre processeur de traces à l'aide des API de débogage Android, l'équipe a sélectionné ProfilingManager, car il s'agit de la solution la plus performante parmi les options de profilage qu'elle a évaluées et elle décharge la surcharge des décisions d'échantillonnage sur le système d'exploitation.

ProfilingManager est compatible avec un large éventail de méthodes de collecte, y compris les traces du processeur, l'échantillonnage de la pile d'appels, l'analyse de la mémoire via les vidages de mémoire Java et les profils de mémoire natifs. Il permet aux développeurs de profiler les builds de production, d'importer des fichiers de trace dans un stockage externe et de les examiner dans l'interface utilisateur de l'analyseur de traces Perfetto. En tant que fournisseur de 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 complexes des performances Android grâce à des avantages techniques clés :

  • Diagnostics granulaires des sessions  : ProfilingManager améliore la capacité de débogage en fournissant des données de trace directes au niveau du système d'exploitation, 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 approfondir leurs recherches, les développeurs peuvent télécharger ces traces à partir de Datadog afin de les examiner plus en détail dans des outils de visualisation tels que l' interface utilisateur de Perfetto.
  • Déclencheurs de télémétrie automatisés :  en exploitant les événements système natifs pour lancer des enregistrements de traces au niveau 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 ANROOM et COLD_START.
  • Instantanés de trace proactifs :  en interagissant directement avec le service Perfetto au niveau du système (traced), ProfilingManager utilise un modèle d'enregistrement en arrière-plan proactif conçu pour capturer les problèmes imprévisibles. Cela garantit que les développeurs reçoivent une visualisation précise des événements qui ont précédé une anomalie de performances, offrant ainsi un niveau d'insight supérieur à ce qui est possible grâce à l'instrumentation manuelle.
  • Détection des goulots d'étranglement à grande échelle  : Datadog est en mesure de synthétiser la télémétrie de l'ensemble de sa base de clients mondiale pour découvrir les régressions qui n'apparaissent 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.
  • Contrôles 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 transmis à l'application. Cela réduit la taille des fichiers et garantit 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 mondial a nécessité la résolution de problèmes d'infrastructure. Étant donné que 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 d'équilibrer la fréquence d'échantillonnage avec la collecte de suffisamment de données pour générer des insights significatifs sur votre application. Datadog s'appuie sur la limitation de débit intégrée de ProfilingManager comme protection essentielle de la stabilité, empêchant ainsi les requêtes de télémétrie excessives de surcharger les appareils des utilisateurs. 

L'équipe profile sa propre application Android native et un certain nombre d'applications de premiers utilisateurs depuis des mois, en collectant des millions de profils pour garantir une expérience de lancement rapide et sans erreur, et pour affiner ses algorithmes de détection des performances. Aujourd'hui, l'intégration en production s'adapte de manière transparente à une 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 backend et les applications clientes mobiles pour ses clients. En traitant des millions de profils par semaine avec une surcharge négligeable sur 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, ce qui les aide à créer des applications plus fluides et à améliorer les signaux de performances de leur application dans le Play Store. Pour adopter l'API ProfilingManager directement dans votre framework d'observabilité des performances, consultez notre documentation.

À l'avenir, Datadog prévoit de 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, en fermant 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.

Écrit par :

Lire la suite