Case study
Datadog fornisce milioni di approfondimenti sulle prestazioni con ProfilingManager
Lettura di 4 minuti
Le regressioni delle prestazioni sono notoriamente difficili da riprodurre, il che le rende un enorme collo di bottiglia per gli sviluppatori di app mobile. Sebbene indicatori come i tassi di ANR indichino quali problemi si verificano in produzione, l'individuazione della riga di codice specifica che ha causato il problema di prestazioni ha storicamente richiesto una riproduzione manuale esaustiva o una sperimentazione speculativa per tentativi ed errori.
Datadog ha collaborato con Google per ridurre questo problema integrando l'API ProfilingManager (disponibile sui dispositivi Android 15 e versioni successive) nelle piattaforme Real User Monitoring (RUM) e Continuous Profiling. Questa integrazione trasforma il flusso di lavoro di debug, consentendo agli sviluppatori di andare oltre i sintomi superficiali per rilevare il perché di un collo di bottiglia delle prestazioni.
Sfruttando questa API a livello di sistema, Datadog ora elabora milioni di profili di produzione a settimana in tutto il mondo, secondo i dati interni di Datadog di giugno 2026. Fornisce ai team di ingegneria un nuovo livello di visibilità sulle prestazioni reali, mantenendo al contempo un basso overhead di runtime per il monitoraggio delle prestazioni su scala di produzione.
Impatto di ProfilingManager
ProfilingManager è un servizio di sistema introdotto in Android 15 che consente alle app di raccogliere in modo programmatico dati sul rendimento, come campioni di stack di chiamate, tracce di campi e dump dell'heap di memoria direttamente dagli ambienti di produzione. Questa funzionalità sposta il paradigma di progettazione dalla riproduzione manuale reattiva all'analisi proattiva sul campo.
Ad esempio, un'app di comunicazione Google ha utilizzato le tracce sul campo per capire perché i tempi di avvio a freddo erano più lenti su hardware più recente e potente. Analizzando le tracce raccolte sul campo e confrontandole tra diversi tipi di dispositivi, l'ingegnere ha scoperto un problema di pianificazione nascosto: un servizio di sintesi vocale in background veniva preriscaldato inutilmente durante l'avvio dell'app. Le tracce hanno rivelato che questo processo in background monopolizzava il core della CPU più performante del dispositivo, costringendo il thread principale dell'app a sospendersi durante il preriscaldamento.
Risolvere la sfida della visibilità a livello di codice di Android
Prima dell'implementazione di ProfilingManager, il monitoraggio utenti reali (RUM) di Datadog si concentrava sulla salute delle applicazioni di alto livello e sulla telemetria a livello di sessione per valutare il percorso dell'utente. I team di ingegneria potrebbero monitorare gli indicatori di rendimento di Android, come il tempo al primo display, i tassi ANR, il carico della CPU e i frame bloccati. Questi approfondimenti si estendevano a interazioni granulari, come la latenza di rete, gli eventi tocco e i blocchi del thread principale. Tuttavia, sebbene questi dati evidenziassero efficacemente i colli di bottiglia delle prestazioni che si verificavano sul campo, non fornivano un percorso chiaro per identificare la causa principale di questi errori.
Per risolvere questo problema, Datadog aveva bisogno di un motore di profilazione in grado di acquisire tracce Android direttamente dai dispositivi in produzione con un impatto minimo sulle prestazioni. Dopo aver valutato approcci alternativi, come la scrittura di un proprio strumento di elaborazione delle tracce utilizzando le API di debug di Android, il team ha selezionato ProfilingManager perché è la soluzione più performante tra le opzioni di profilazione valutate e delega al sistema operativo il sovraccarico delle decisioni di campionamento.
ProfilingManager supporta un'ampia gamma di metodi di raccolta, tra cui tracce della CPU, campionamento dello stack di chiamate, analisi della memoria tramite dump dell'heap Java e profili dell'heap nativo. Consente agli sviluppatori di profilare le build di produzione, caricare i file di traccia su spazio di archiviazione esterno e rivederli nell'interfaccia utente di Perfetto Trace Analyzer. In qualità di fornitore SaaS, Datadog carica, visualizza e analizza questi profili raccolti tramite il suo SDK, fornendo una visualizzazione unificata dell'integrità dell'applicazione.
Centralizzando la telemetria ad alta fedeltà all'interno di un'API di osservabilità unificata, ProfilingManager consente a Datadog e ai suoi clienti di monitorare, analizzare e correggere in modo proattivo le regressioni complesse delle prestazioni di Android grazie a vantaggi tecnici chiave:
- Diagnostica granulare delle sessioni: ProfilingManager migliora la capacità di debug fornendo dati di tracciamento diretti a livello di sistema operativo, superando le sfide di visibilità e allineamento tipiche della registrazione personalizzata con i servizi di sistema. Per approfondire, gli sviluppatori possono scaricare queste tracce da Datadog per ulteriori indagini in strumenti di visualizzazione come l'interfaccia utente Perfetto.
- Trigger di telemetria automatizzati : sfruttando gli eventi di sistema nativi per avviare le registrazioni delle tracce nei punti di ottimizzazione chiave, Datadog riduce la necessità di creare una logica di raccolta personalizzata. Anche se l'implementazione iniziale si concentra sul segnale APP_FULLY_DRAWN, sono già previsti piani per espandere questa osservabilità in modo da includere i trigger ANR, OOM e COLD_START.
- Snapshot di traccia proattivi: interfacciandosi direttamente con il servizio Perfetto a livello di sistema (traced), ProfilingManager utilizza un modello di registrazione in background proattivo progettato per acquisire problemi imprevedibili. In questo modo, gli sviluppatori ricevono una visualizzazione precisa degli eventi che hanno portato a un'anomalia delle prestazioni, offrendo un livello di approfondimento superiore a quello possibile tramite l'instrumentazione manuale.
- Rilevamento dei colli di bottiglia su larga scala: Datadog è in grado di sintetizzare la telemetria dell'intera base di clienti globale di Datadog per scoprire regressioni che emergono solo in configurazioni hardware uniche e ambienti di rete variabili.
- Stabilità delle risorse imposta dal sistema: l'API utilizza la raccolta di tracce di campionamento per garantire che l'impatto sulle prestazioni e sull'esperienza utente rimanga impercettibile.
- Controlli dei dati sul dispositivo: ProfilingManager filtra le informazioni non pertinenti provenienti da altri processi sul dispositivo prima che il profilo venga inviato all'app. In questo modo, le dimensioni dei file vengono ridotte al minimo e vengono forniti solo i dati pertinenti ai processi dell'app.
Elaborazione di milioni di profili settimanali per ottimizzare le app del mondo reale
L'integrazione di un'API di profilazione a livello di sistema in un SDK di monitoraggio globale ha richiesto la risoluzione di problemi di infrastruttura. Poiché ProfilingManager genera tracce delle prestazioni molto dettagliate, il team di ingegneri di Datadog ha dovuto creare una pipeline in grado di analizzare questi profili lato server su larga scala. Oltre alla raccolta dei profili, Datadog sottolinea anche l'importanza di bilanciare la frequenza di campionamento con la raccolta di dati sufficienti per generare approfondimenti significativi sulla tua applicazione. Datadog si basa sulla limitazione della frequenza integrata di ProfilingManager come salvaguardia fondamentale della stabilità, impedendo che un numero eccessivo di richieste di telemetria sovraccarichi i dispositivi degli utenti.
Il team ha profilato l'app per Android nativa di Datadog e le applicazioni di diversi early adopter per mesi, raccogliendo milioni di profili per garantire un'esperienza di lancio rapida e senza errori e per perfezionare gli algoritmi di rilevamento delle prestazioni. Oggi, l'integrazione della produzione si adatta perfettamente a una vasta gamma di dispositivi Android.
Conclusione
Integrando l'API ProfilingManager di Android, Datadog ha colmato con successo il divario di visibilità tra i sistemi di backend e le applicazioni client mobile per i suoi clienti. Elaborando milioni di profili ogni settimana con un sovraccarico del dispositivo trascurabile, Datadog fornisce agli sviluppatori Android le informazioni a livello di codice necessarie per diagnosticare istantaneamente bug complessi relativi alle prestazioni, aiutandoli a creare applicazioni più fluide e a migliorare gli indicatori di prestazioni della loro app nel Play Store. Per adottare l'API ProfilingManager direttamente nel tuo framework di osservabilità delle prestazioni, consulta la nostra documentazione.
In futuro, Datadog mira a rendere i dati di profilazione di Android un input di prima classe per gli agenti di codifica, in modo da risolvere autonomamente i colli di bottiglia delle prestazioni, chiudendo il ciclo di feedback tra rilevamento e correzione. Datadog sta lavorando per rendere la profilazione di Android ampiamente accessibile agli sviluppatori.
Per iniziare a utilizzare la funzionalità di monitoraggio degli utenti reali di Datadog basata su ProfilingManager, visita la pagina Monitoraggio degli utenti reali mobile di Datadog.
Continua a leggere
-
Case study
Karrot è un'app marketplace peer-to-peer iperlocale e basata sulla community che consente agli utenti di acquistare, vendere e scambiare articoli con altri utenti verificati. Dal lancio in Corea del Sud nel 2015, la piattaforma si è espansa nei mercati globali, accumulando oltre 43 milioni di utenti registrati.
Thomas Ezan, Tracy Agyemang • Lettura di 2 minuti
-
Istruzioni
Sebbene le prestazioni delle app siano spesso associate a un'interfaccia utente fluida e a tempi di avvio rapidi, la memoria funge da base silenziosa su cui si basano queste metriche visibili. Non è un segreto che stiamo assistendo a un cambiamento in cui la memoria del dispositivo è più importante che mai.
Alice Yuan, Ajesh Pai, Fung Lam • Lettura di 10 minuti
-
Case study
FotMob ha recentemente registrato il più grande aumento in un solo giorno su Wear OS tra il suo pubblico installato in 5 anni, con un valore 2-3 volte superiore alla media giornaliera. Il segreto? Un semplice flusso di installazione cross-device che aiuta gli utenti a scoprire la loro app per Wear OS direttamente dallo smartphone.
Garan Jenkin • Lettura di 3 minuti
Resta al passo con le novità
Ricevi gli ultimi approfondimenti sullo sviluppo per Android direttamente nella tua casella di posta ogni settimana.