Estudos de caso

O Datadog oferece milhões de insights detalhados de performance com o ProfilingManager

Leitura de 4 minutos

As regressões de desempenho são notoriamente difíceis de reproduzir, o que as torna um grande gargalo para desenvolvedores de dispositivos móveis. Embora indicadores como taxas de ANR indiquem quais problemas ocorrem na produção, identificar a linha de código específica que resultou no problema de desempenho sempre exigiu uma reprodução manual exaustiva ou testes especulativos por tentativa e erro.

A Datadog colaborou com o Google para reduzir essa frustração integrando a API ProfilingManager (disponível em dispositivos Android 15 ou mais recentes) às plataformas de monitoramento de usuários reais (RUM, na sigla em inglês) e de criação de perfis contínuos. Essa integração transforma o fluxo de trabalho de depuração, permitindo que os desenvolvedores vão além dos sintomas superficiais e detectem o motivo de um gargalo de desempenho.

Ao aproveitar essa API no nível do sistema, o Datadog agora processa milhões de perfis de produção por semana em todo o mundo, de acordo com dados internos da empresa de junho de 2026. Ele oferece às equipes de engenharia um novo nível de visibilidade do desempenho no mundo real, mantendo uma baixa sobrecarga de tempo de execução para o monitoramento de desempenho em escala de produção.

O impacto do ProfilingManager

O ProfilingManager é um serviço do sistema introduzido no Android 15 que permite que os apps coletem dados de performance de maneira programática, como amostras de pilha de chamadas, rastreamentos de campo e despejos de heap de memória diretamente de ambientes de produção. Essa capacidade muda o paradigma de engenharia da reprodução manual reativa para a análise de campo proativa.

AANDDM_DataDog_Quote_01.png

Por exemplo, um app de comunicações do Google usou rastreamentos de campo para investigar por que os tempos de inicialização a frio eram mais lentos em hardware mais novo e potente. Ao analisar os traces coletados em campo e comparar traces em diferentes tipos de dispositivos, o engenheiro descobriu um problema de programação oculto: um serviço de conversão de texto em voz em segundo plano estava sendo pré-aquecido desnecessariamente durante a inicialização do app. Os rastreamentos revelaram que esse processo em segundo plano estava monopolizando o núcleo da CPU grande de melhor desempenho do dispositivo, forçando a linha de execução principal do app a entrar em espera enquanto o pré-aquecimento ocorria.

Como resolver o desafio de visibilidade no nível do código do Android

Antes da implementação do ProfilingManager, o monitoramento de usuários reais (RUM, na sigla em inglês) do Datadog se concentrava na integridade do aplicativo de alto nível e na telemetria no nível da sessão para avaliar a jornada do usuário. As equipes de engenharia podem monitorar indicadores de desempenho do Android, como tempo para exibição inicial, taxas de ANR, carga da CPU e frames congelados. Esses insights foram estendidos a interações granulares, como latência de rede, eventos de toque e bloqueios da linha de execução principal. No entanto, embora esses dados tenham destacado de forma eficaz quais gargalos de performance estavam surgindo no campo, eles não forneceram um caminho claro para identificar a causa raiz dessas falhas.

AANDDM_DataDog_Quote_02.png

Para resolver isso, o Datadog precisava de um mecanismo de criação de perfis capaz de capturar rastreamentos do Android diretamente de dispositivos em produção com impacto mínimo no desempenho. Depois de avaliar abordagens alternativas, como escrever o próprio processador de rastreamento usando APIs de depuração do Android, a equipe selecionou o ProfilingManager porque ele é a solução mais eficiente entre as opções de criação de perfis avaliadas e transfere a sobrecarga das decisões de amostragem para o SO.

O ProfilingManager oferece suporte a uma ampla variedade de métodos de coleta, incluindo rastreamentos de CPU, amostragem de pilha de chamadas, análise de memória por heap dumps do Java e perfis de heap nativos. Ele permite que os desenvolvedores criem perfis de builds de produção, façam upload de arquivos de rastreamento para armazenamento externo e os analisem na interface do analisador de rastreamento do Perfetto. Como um provedor de SaaS, o Datadog faz upload, visualiza e analisa esses perfis coletados pelo SDK, oferecendo uma visualização unificada da integridade do aplicativo. 

Ao centralizar a telemetria de alta fidelidade em uma API de capacidade de observação unificada, o ProfilingManager permite que o Datadog e os clientes monitorem, investiguem e corrijam de maneira proativa regressões complexas de desempenho do Android com as seguintes vantagens técnicas principais:

  • Diagnóstico granular de sessão : o ProfilingManager melhora a capacidade de depuração ao fornecer dados de rastreamento diretos no nível do SO, superando os desafios de visibilidade e alinhamento típicos do registro personalizado com serviços do sistema. Para se aprofundar, os desenvolvedores podem baixar esses rastreamentos do Datadog e investigar mais a fundo em ferramentas de visualização como a interface do Perfetto.
  • Acionadores de telemetria automatizados : ao aproveitar os eventos nativos do sistema para iniciar gravações de trace em pontos de otimização importantes, o Datadog reduz a necessidade de criar uma lógica de coleta personalizada. Embora o lançamento inicial se concentre no indicador APP_FULLY_DRAWN, já existem planos para expandir essa observabilidade e incluir acionadores ANR, OOM e COLD_START.
  • Snapshots de rastreamento proativos : ao interagir diretamente com o serviço Perfetto no nível do sistema (traced), o ProfilingManager usa um modelo de gravação em segundo plano proativo projetado para capturar problemas imprevisíveis. Isso garante que os desenvolvedores recebam uma visualização precisa dos eventos que levaram a uma anomalia de performance, oferecendo um nível de insight que excede o que é possível com a instrumentação manual.
  • Detecção de gargalos em grande escala : o Datadog consegue sintetizar a telemetria de toda a base global de clientes para descobrir regressões que só aparecem em configurações de hardware exclusivas e ambientes de rede variáveis.
  • Estabilidade de recursos aplicada pelo sistema : a API usa a coleta de rastreamento de amostragem para garantir que os impactos na performance e na experiência do usuário permaneçam imperceptíveis.
  • Controles de dados no dispositivo : o ProfilingManager filtra informações irrelevantes de outros processos no dispositivo antes que o perfil seja entregue ao app. Isso minimiza os tamanhos dos arquivos e garante que apenas os dados relevantes para os processos do app sejam fornecidos.

Processamento de milhões de perfis semanais para otimizar apps do mundo real

datadog-profiling-blogpost-final.png
Um exemplo da medição do tempo para exibição inicial do Datadog com amostragem de pilha usando o ProfilingManager

A integração de uma API de criação de perfil no nível do sistema a um SDK de monitoramento global exigiu a solução de desafios de infraestrutura. Como o ProfilingManager gera rastreamentos de desempenho altamente detalhados, a equipe de engenharia do Datadog precisou criar um pipeline capaz de analisar e fazer o parsing desses perfis no lado do servidor em grande escala. Além da coleta de perfis, o Datadog também enfatiza a importância de equilibrar a frequência de amostragem com a coleta de dados suficientes para gerar insights significativos sobre seu aplicativo. O Datadog depende da limitação de taxa integrada do ProfilingManager como uma proteção de estabilidade essencial, evitando que solicitações excessivas de telemetria sobrecarreguem os dispositivos dos usuários. 

A equipe tem feito o perfil do próprio app Android nativo do Datadog e de vários aplicativos de usuários pioneiros há meses, coletando milhões de perfis para garantir uma experiência de lançamento rápida e sem erros e refinar os algoritmos de detecção de desempenho. Hoje, a integração de produção é dimensionada perfeitamente em vários dispositivos Android. 

Conclusão

Ao integrar a API ProfilingManager do Android, o Datadog conseguiu fechar a lacuna de visibilidade entre os sistemas de back-end e os aplicativos clientes móveis para os clientes. Ao processar milhões de perfis semanalmente com uma sobrecarga insignificante do dispositivo, o Datadog oferece aos desenvolvedores Android os insights no nível do código necessários para diagnosticar bugs complexos de desempenho instantaneamente, ajudando a criar aplicativos mais fluidos e melhorar os indicadores de desempenho do app na Google Play Store. Para adotar a API ProfilingManager diretamente na sua estrutura de observabilidade de desempenho, consulte nossa documentação.

No futuro, o Datadog pretende tornar os dados de criação de perfis do Android uma entrada de primeira classe para que os agentes de programação resolvam de forma autônoma os gargalos de desempenho, fechando o ciclo de feedback entre detecção e correção. O Datadog está trabalhando para tornar o perfil do Android amplamente acessível aos desenvolvedores.

Para começar a usar o recurso de monitoramento de usuários reais do Datadog com tecnologia ProfilingManager, acesse  Monitoramento de usuários reais para dispositivos móveis do Datadog.

Escrito por:

Continuar lendo