Casos de éxito

Datadog ofrece millones de estadísticas de rendimiento detalladas con ProfilingManager

Lectura de 4 min

Las regresiones de rendimiento son muy difíciles de reproducir, lo que las convierte en un gran cuello de botella para los desarrolladores de dispositivos móviles. Si bien los indicadores, como las tasas de ANR, muestran qué problemas ocurren en producción, identificar la línea de código específica que causó el problema de rendimiento históricamente requirió una reproducción manual exhaustiva o una experimentación especulativa de prueba y error.

Datadog colaboró con Google para mitigar esta frustración integrando la API de ProfilingManager (disponible en dispositivos con Android 15 y versiones posteriores) en sus plataformas de Real User Monitoring (RUM) y Continuous Profiling. Esta integración transforma el flujo de trabajo de depuración, lo que permite que los desarrolladores vayan más allá de los síntomas superficiales y puedan detectar el porqué de un cuello de botella en el rendimiento.

Aprovechando esta API a nivel del sistema, Datadog ahora procesa millones de perfiles de producción semanalmente en todo el mundo, según los datos internos de Datadog de junio de 2026. Proporciona a los equipos de ingeniería un nuevo nivel de visibilidad del rendimiento en el mundo real, a la vez que mantiene una baja sobrecarga del entorno de ejecución para la supervisión del rendimiento a escala de producción.

El impacto de ProfilingManager

ProfilingManager es un servicio del sistema que se introdujo en Android 15 y que permite que las apps recopilen de forma programática datos de rendimiento, como muestras de pila de llamadas, seguimientos de campos y volcados de montón de memoria, directamente desde entornos de producción. Esta capacidad cambia el paradigma de la ingeniería de la reproducción manual reactiva al análisis de campo proactivo.

AANDDM_DataDog_Quote_01.png

Por ejemplo, una app de comunicaciones de Google usó seguimientos de campo para investigar por qué sus tiempos de inicio en frío eran más lentos en hardware más nuevo y potente. Al analizar los seguimientos recopilados en el campo y compararlos entre diferentes tipos de dispositivos, el ingeniero descubrió un problema de programación oculto: un servicio de texto a voz en segundo plano se estaba precalentando innecesariamente durante el inicio de la app. Los registros de seguimiento revelaron que este proceso en segundo plano estaba monopolizando el núcleo de CPU grande de mayor rendimiento del dispositivo, lo que obligaba al subproceso principal de la app a suspenderse mientras se realizaba el precalentamiento.

Cómo resolver el desafío de visibilidad a nivel de código de Android

Antes de implementar ProfilingManager, la Supervisión de usuarios reales (RUM) de Datadog se enfocaba en el estado de la aplicación de alto nivel y la telemetría a nivel de la sesión para evaluar el recorrido del usuario. Los equipos de ingeniería podrían supervisar los indicadores de rendimiento de Android, como el tiempo hasta la visualización inicial, las tasas de ANR, la carga de la CPU y los fotogramas congelados. Estas estadísticas se extendieron a interacciones detalladas, como la latencia de red, los eventos táctiles y los bloqueos del subproceso principal. Sin embargo, si bien estos datos destacaban de manera eficaz qué cuellos de botella de rendimiento se producían en el campo, no proporcionaban una forma clara de identificar la causa raíz de estas fallas.

AANDDM_DataDog_Quote_02.png

Para abordar este problema, Datadog necesitaba un motor de generación de perfiles capaz de capturar seguimientos de Android directamente desde los dispositivos en producción con un impacto mínimo en el rendimiento. Después de evaluar enfoques alternativos, como escribir su propio procesador de seguimiento con las APIs de depuración de Android, el equipo seleccionó ProfilingManager porque es la solución con mejor rendimiento de las opciones de generación de perfiles que evaluaron y descarga la sobrecarga de las decisiones de muestreo en el SO.

ProfilingManager admite una amplia variedad de métodos de recopilación, incluidos los seguimientos de CPU, el muestreo de la pila de llamadas y el análisis de memoria a través de volcados de montón de Java y perfiles del montón nativos. Permite que los desarrolladores generen perfiles de compilaciones de producción, suban archivos de seguimiento al almacenamiento externo y los revisen en la IU del analizador de seguimientos de Perfetto. Como proveedor de SaaS, Datadog sube, visualiza y analiza estos perfiles recopilados a través de su SDK, lo que proporciona una vista unificada del estado de la aplicación. 

Al centralizar la telemetría de alta fidelidad en una API de observabilidad unificada, ProfilingManager permite que Datadog y sus clientes supervisen, investiguen y solucionen de forma proactiva las regresiones de rendimiento complejas de Android a través de ventajas técnicas clave:

  • Diagnóstico detallado de sesiones: ProfilingManager mejora la capacidad de depuración, ya que proporciona datos de seguimiento directos a nivel del SO, lo que supera los desafíos de visibilidad y alineación típicos del registro personalizado con los servicios del sistema. Para profundizar, los desarrolladores pueden descargar estos seguimientos de Datadog y analizarlos con herramientas de visualización, como la IU de Perfetto.
  • Activadores de telemetría automatizados: Aprovechando los eventos nativos del sistema para iniciar grabaciones de seguimiento en puntos de optimización clave, Datadog reduce la necesidad de crear una lógica de recopilación personalizada. Si bien el lanzamiento inicial se enfoca en el indicador APP_FULLY_DRAWN, ya hay planes para expandir esta observabilidad para incluir activadores de ANR, OOM y COLD_START.
  • Instantáneas de seguimiento proactivas: A través de la interfaz directa con el servicio de Perfetto a nivel del sistema (traced), ProfilingManager utiliza un modelo de grabación en segundo plano proactivo diseñado para capturar problemas impredecibles. Esto garantiza que los desarrolladores reciban una visualización precisa de los eventos que conducen a una anomalía de rendimiento, lo que ofrece un nivel de estadísticas que supera lo que es posible a través de la instrumentación manual.
  • Detección de cuellos de botella a gran escala: Datadog puede sintetizar la telemetría de toda su base de clientes global para descubrir regresiones que solo surgen en configuraciones de hardware únicas y entornos de red variables.
  • Estabilidad de recursos aplicada por el sistema: La API aprovecha la recopilación de seguimientos de muestreo para garantizar que los impactos en el rendimiento y la experiencia del usuario no se noten.
  • Controles de datos integrados en el dispositivo: ProfilingManager filtra la información irrelevante de otros procesos integrados en el dispositivo antes de que se entregue el perfil a la app. Esto minimiza el tamaño de los archivos y garantiza que solo se proporcionen los datos relevantes para los procesos de la app.

Procesamiento de millones de perfiles semanales para optimizar apps del mundo real

datadog-profiling-blogpost-final.png
Un ejemplo de la medición del tiempo para la visualización inicial de Datadog con muestreo de pila con la tecnología de ProfilingManager

La integración de una API de generación de perfiles a nivel del sistema en un SDK de supervisión global requirió resolver desafíos de infraestructura. Debido a que ProfilingManager genera seguimientos de rendimiento muy detallados, el equipo de ingeniería de Datadog tuvo que compilar una canalización capaz de analizar estos perfiles en el servidor a gran escala. Además de la recopilación de perfiles, Datadog también destaca la importancia de equilibrar la frecuencia de muestreo con la recopilación de datos suficientes para generar estadísticas significativas sobre tu aplicación. Datadog se basa en el límite de frecuencia integrado de ProfilingManager como una protección de estabilidad fundamental, lo que evita que las solicitudes de telemetría excesivas sobrecarguen los dispositivos de los usuarios. 

El equipo lleva meses analizando la aplicación para Android nativa de Datadog y varias aplicaciones de usuarios pioneros, y recopilando millones de perfiles para garantizar una experiencia de lanzamiento rápida y sin errores, y para definir mejor sus algoritmos de detección de rendimiento. Hoy en día, la integración de producción se escala sin problemas en una variedad de dispositivos Android. 

Conclusión

Con la integración de la API de ProfilingManager de Android, Datadog cerró con éxito la brecha de visibilidad entre los sistemas de backend y las aplicaciones cliente para dispositivos móviles de sus clientes. Datadog procesa millones de perfiles semanalmente con una sobrecarga insignificante en los dispositivos, lo que les brinda a los desarrolladores de Android las estadísticas a nivel del código necesarias para diagnosticar errores de rendimiento complejos de forma instantánea, lo que los ayuda a crear aplicaciones más fluidas y mejorar los indicadores de rendimiento de sus apps en Play Store. Para adoptar la API de ProfilingManager directamente en tu framework de observabilidad del rendimiento, consulta nuestra documentación.

En el futuro, Datadog pretende que los datos de generación de perfiles de Android sean una entrada de primer nivel para que los agentes de programación resuelvan de forma autónoma los cuellos de botella de rendimiento, lo que cerrará el ciclo de reacción entre la detección y la solución. Datadog está trabajando para que la generación de perfiles de Android sea ampliamente accesible para los desarrolladores.

Para comenzar a usar la función de supervisión de usuarios reales de Datadog con la tecnología de ProfilingManager, visita Supervisión de usuarios reales de Datadog para dispositivos móviles.

Escrito por:
Continuar leyendo