Casos de éxito

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

Lectura de 4 min

Las regresiones de rendimiento son notoriamente difíciles de reproducir, lo que las convierte en un cuello de botella masivo para los desarrolladores de dispositivos móviles. Si bien los indicadores como las tasas de ANR indican qué problemas ocurren en producción, identificar la línea de código específica que provocó 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 Supervisión de usuarios reales (RUM) y de generación de perfiles continua. Esta integración transforma el flujo de trabajo de depuración, lo que permite a los desarrolladores ir más allá de los síntomas superficiales y detectar el porqué detrás de un cuello de botella de rendimiento.

Gracias a esta API a nivel del sistema, Datadog ahora procesa millones de perfiles de producción por semana 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 tiempo 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 a las apps recopilar de forma programática datos de rendimiento, como muestras de la pila de llamadas, registros de campos y volcados del montón de memoria directamente desde los entornos de producción. Esta capacidad cambia el paradigma de 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ó registros 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 las pistas recopiladas en el campo y comparar las pistas en diferentes tipos de dispositivos, el ingeniero descubrió un problema de programación oculto: un servicio de texto a voz en segundo plano se precalentaba innecesariamente durante el inicio de la app. Los registros revelaron que este proceso en segundo plano monopolizaba 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 del código de Android

Antes de la implementación de ProfilingManager, el Monitoreo de usuarios reales (RUM) de Datadog se enfocaba en el estado general de la aplicación 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 la red, los eventos táctiles y las interrupciones del subproceso principal. Sin embargo, si bien estos datos destacaron de manera eficaz los cuellos de botella de rendimiento que surgían en el campo, no proporcionaron una ruta clara para identificar la causa raíz de estas fallas.

AANDDM_DataDog_Quote_02.png

Para abordar este problema, Datadog necesitaba un motor de creación de perfiles capaz de capturar registros 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 registros con las APIs de Android Debug, el equipo seleccionó ProfilingManager porque es la solución más eficiente 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 registros 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 de montón nativos. Permite a los desarrolladores crear perfiles de compilaciones de producción, subir archivos de registro al almacenamiento externo y revisarlos en la IU del analizador de registros 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 a Datadog y a sus clientes supervisar, investigar y corregir de forma proactiva las regresiones complejas del rendimiento de Android a través de ventajas técnicas clave:

  • Diagnóstico detallado de la sesión: ProfilingManager mejora la capacidad de depuración, ya que proporciona datos de registro directos a nivel del SO, lo que supera los desafíos de visibilidad y alineación típicos del registro personalizado con servicios del sistema. Para profundizar, los desarrolladores pueden descargar estos registros de Datadog y realizar más investigaciones en herramientas de visualización como la IU de Perfetto.
  • Activadores de telemetría automatizados: Datadog aprovecha los eventos nativos del sistema para iniciar grabaciones de seguimiento en puntos de optimización clave, lo que 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 y, así, incluir los activadores de ANR, OOM y COLD_START.
  • Instantáneas de registros proactivos: Al interactuar directamente con el servicio Perfetto a nivel del sistema (registrado), 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 provocaron una anomalía en el 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 la base de clientes global de Datadog 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 registros de muestreo para garantizar que los impactos en el rendimiento y la experiencia del usuario sigan siendo imperceptibles.
  • 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 de visualización inicial de Datadog con el muestreo de pila potenciado por ProfilingManager

La integración de una API de generación de perfiles a nivel del sistema en un SDK de supervisión global requirió la resolución de desafíos de infraestructura. Dado que ProfilingManager genera registros de rendimiento muy detallados, el equipo de ingeniería de Datadog tuvo que crear una canalización capaz de analizar estos perfiles a gran escala en el servidor. Además de la recopilación de perfiles, Datadog también enfatiza la importancia de equilibrar la frecuencia de muestreo con la recopilación de suficientes datos para generar estadísticas significativas sobre tu aplicación. Datadog se basa en la limitación de velocidad integrada 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. 

Durante meses, el equipo generó perfiles de la aplicación nativa para Android de Datadog y de las aplicaciones de varios usuarios pioneros, y recopiló millones de perfiles para garantizar una experiencia de lanzamiento rápida y sin errores, y para perfeccionar sus algoritmos de detección de rendimiento. Actualmente, la integración de producción se adapta sin problemas a una variedad de dispositivos Android. 

Conclusión

Al integrar la API de ProfilingManager de Android, Datadog logró cerrar la brecha de visibilidad entre los sistemas de backend y las aplicaciones cliente para dispositivos móviles de sus clientes. Al procesar millones de perfiles por semana con una sobrecarga insignificante del dispositivo, Datadog proporciona a los desarrolladores de Android las estadísticas a nivel del código necesarias para diagnosticar errores complejos de rendimiento al instante, lo que les permite 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 tiene como objetivo convertir los datos de creación de perfiles de Android en una entrada de primera clase para que los agentes de codificación resuelvan de forma autónoma los cuellos de botella en el rendimiento, lo que cerrará el ciclo de retroalimentación entre la detección y la corrección. Datadog está trabajando para que el registro 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 tecnología de ProfilingManager, visita Supervisión de usuarios reales para dispositivos móviles de Datadog.

Escrito por:
Continuar leyendo