Connect with us

Разработка

Datadog предоставляет миллионы инсайтов о производительности с помощью ProfilingManager

Это даёт инженерным командам новый уровень видимости реальной производительности при сохранении низких накладных расходов в рантайме, что важно для мониторинга производительности в рабочих масштабах.

Опубликовано

/

     
     

Регрессии производительности печально известны тем, что их сложно воспроизводить, поэтому они становятся серьёзным узким местом для мобильных разработчиков. Хотя такие сигналы, как частота случаев, когда приложение не отвечает, показывают, какие проблемы возникают в рабочей среде, точное определение строки кода, из-за которой появилась проблема с производительностью, исторически требовало либо полного ручного воспроизведения, либо экспериментирования методом проб и ошибок.

Datadog совместно с Google снизила эту боль, встроив ProfilingManager API, доступный на устройствах с Android 15 и новее, в свои платформы мониторинга реальных пользователей (Real User Monitoring, RUM) и непрерывного профилирования (Continuous Profiling). Эта интеграция меняет процесс отладки: разработчики могут перейти от поверхностных симптомов к пониманию причины провала в производительности.

Используя этот системный API, Datadog, по внутренним данным компании за июнь 2026 года, еженедельно обрабатывает миллионы профилей из рабочей среды по всему миру. Это даёт инженерным командам новый уровень видимости реальной производительности при сохранении низких накладных расходов в рантайме, что важно для мониторинга производительности в рабочих масштабах.

Влияние ProfilingManager

ProfilingManager — это системная служба, представленная в Android 15. Она позволяет приложениям программно собирать данные о производительности, такие как примеры стеков вызовов, трассировки из рабочей среды и снимки кучи памяти, напрямую из рабочей среды. Эта возможность меняет инженерный подход: вместо реактивного ручного воспроизведения команды получают проактивный анализ поведения приложения у реальных пользователей.

ProfilingManager — это высокопроизводительное решение для получения сведений на уровне кода. Среди решений, которые мы оценивали, оно имеет наименьшие накладные расходы во время выполнения, даёт глубокую видимость трассировок Java, Kotlin и C++, а также открывает возможность собирать профили памяти и системные трассировки в критические моменты, например когда приложение не отвечает или сталкивается с ошибками нехватки памяти, — Йи Лу, старший инженер Datadog.

Например, одно коммуникационное приложение Google использовало трассировки из рабочей среды, чтобы разобраться, почему время холодного запуска стало хуже на более новом и мощном оборудовании. Изучив собранные у пользователей трассировки и сравнив их на разных типах устройств, инженер обнаружил скрытую проблему планирования: фоновая служба преобразования текста в речь без необходимости предварительно прогревалась во время запуска приложения. Трассировки показали, что этот фоновый процесс монополизировал самое производительное большое ядро процессора устройства, из-за чего главный поток приложения вынужден был ожидать завершения прогрева.

Решение проблемы видимости Android-кода на уровне строк

До внедрения ProfilingManager мониторинг реальных пользователей Datadog был сосредоточен на общей работоспособности приложения и телеметрии на уровне пользовательских сеансов для оценки пользовательского пути. Инженерные команды могли отслеживать сигналы производительности Android, такие как время до первого отображения, частота случаев, когда приложение не отвечает, загрузка процессора и зависшие кадры. Эти сведения распространялись и на более детальные взаимодействия: задержку сети, события касаний и зависания главного потока. Однако, хотя такие данные хорошо показывали, какие узкие места проявляются у пользователей, они не давали понятного пути к поиску первопричины сбоев.

Мы поняли, что среди наших возможностей профилирование производительности мобильных приложений оставалось слепой зоной. Команды могли видеть, что пользователь Android столкнулся с медленной отрисовкой экрана или ситуацией, когда приложение не отвечает, но у них не было той же видимости на уровне кода, на которую они привыкли опираться в backend сервисах. — Брайан Антигуа, старший менеджер продукта Datadog.

Чтобы решить эту проблему, Datadog требовался движок профилирования, способный собирать Android-трассировки напрямую с устройств в рабочей среде с минимальным влиянием на производительность. После оценки альтернативных подходов, например написания собственного обработчика трассировок с использованием отладочных программных интерфейсов Android, команда выбрала ProfilingManager, потому что среди рассмотренных вариантов профилирования это оказалось самое производительное решение, а накладные расходы на принятие решений о выборке передаются операционной системе.

ProfilingManager поддерживает широкий набор способов сбора данных, включая трассировки процессора, выборки стеков вызовов, анализ памяти через снимки кучи Java и профили нативной кучи. Он позволяет разработчикам профилировать рабочие сборки, выгружать файлы трассировок во внешнее хранилище и просматривать их в анализаторе трассировок Perfetto. Как поставщик облачного программного обеспечения, Datadog загружает, визуализирует и анализирует профили, собранные через свой комплект разработки, предоставляя единое представление о состоянии приложения.

Централизуя высокоточную телеметрию в едином программном интерфейсе наблюдаемости, ProfilingManager помогает Datadog и её клиентам проактивно отслеживать, исследовать и устранять сложные регрессии производительности Android благодаря нескольким ключевым техническим преимуществам.

  • Детальная диагностика сеансов. ProfilingManager повышает удобство отладки, предоставляя прямые трассировочные данные на уровне операционной системы. Это позволяет преодолеть проблемы видимости и сопоставления, характерные для пользовательского журналирования системных служб. Для более глубокого анализа разработчики могут скачать эти трассировки из Datadog и дополнительно исследовать их в средствах визуализации, например в интерфейсе Perfetto.
  • Автоматические срабатывания телеметрии. Используя нативные системные события для запуска записи трассировок в ключевых точках оптимизации, Datadog снижает необходимость создавать собственную логику сбора данных. Первоначальное внедрение сосредоточено на сигнале полного отрисовывания приложения APP_FULLY_DRAWN, но уже есть планы расширить наблюдаемость и добавить срабатывания для случаев, когда приложение не отвечает, нехватки памяти и холодного запуска.
  • Проактивные снимки трассировок. Взаимодействуя напрямую с системной службой Perfetto, отвечающей за трассировку, ProfilingManager использует модель фоновой предварительной записи, рассчитанную на захват непредсказуемых проблем. Благодаря этому разработчики получают точную визуализацию событий, предшествовавших аномалии производительности, — уровень детализации, который превосходит возможности ручной инструментализации.
  • Обнаружение узких мест в масштабе. Datadog может объединять телеметрию по своей глобальной клиентской базе, чтобы выявлять регрессии, которые проявляются только на отдельных конфигурациях оборудования и в изменчивых сетевых условиях.
  • Стабильность ресурсов, обеспеченная системой. Программный интерфейс использует сбор трассировок на основе выборки, чтобы влияние на производительность и пользовательский опыт оставалось незаметным.
  • Управление данными на устройстве. ProfilingManager отфильтровывает на устройстве нерелевантную информацию из других процессов до того, как профиль передаётся приложению. Это уменьшает размер файлов и гарантирует, что приложению предоставляются только данные, относящиеся к его собственным процессам.

Обработка миллионов профилей в неделю для оптимизации реальных приложений

Datadog предоставляет миллионы инсайтов о производительности с помощью ProfilingManager

Пример измерения времени до первого отображения с помощью Datadog с использованием стековой выборки на основе ProfilingManager

Интеграция системного API профилирования в глобальный SDK для мониторинга потребовала решения инфраструктурных задач. Поскольку ProfilingManager создаёт очень подробные трассировки производительности, инженерной команде Datadog пришлось построить серверный конвейер, способный разбирать и анализировать такие профили в большом масштабе. Помимо самого сбора профилей, Datadog также подчёркивает важность баланса между частотой выборки и объёмом данных, достаточным для получения значимых выводов о приложении. Datadog полагается на встроенное в ProfilingManager ограничение частоты как на важный механизм стабильности: он предотвращает чрезмерное количество запросов телеметрии, которое могло бы перегрузить устройства пользователей.

В течение нескольких месяцев команда профилировала собственное нативное Android-приложение Datadog и приложения ряда ранних пользователей, собирая миллионы профилей, чтобы обеспечить быстрый и безошибочный запуск, а также доработать алгоритмы обнаружения проблем производительности. Сейчас рабочая интеграция бесшовно масштабируется на широкий спектр Android-устройств.

Заключение

Интегрировав ProfilingManager API из Android, Datadog успешно закрыла разрыв в видимости между серверными системами и мобильными клиентскими приложениями для своих клиентов. Обрабатывая миллионы профилей еженедельно с пренебрежимо малой нагрузкой на устройства, Datadog даёт Android-разработчикам сведения на уровне кода, необходимые для быстрой диагностики сложных ошибок производительности. Это помогает разработчикам создавать более плавные приложения и улучшать показатели производительности приложения в Play Store. Чтобы внедрить программный интерфейс ProfilingManager напрямую в свою систему наблюдаемости производительности, обратитесь к документации.

В будущем Datadog попытается сделать данные профилирования Android полноценным источником входных данных для программных агентов, которые смогут автономно устранять узкие места производительности, замыкая цикл между обнаружением проблемы и её исправлением. Datadog работает над тем, чтобы сделать профилирование Android широко доступным для разработчиков.

Чтобы начать использовать функцию мониторинга реальных пользователей Datadog, работающую на базе ProfilingManager, посетите страницу Datadog Mobile Real User Monitoring.

Источник

Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Telegram

Популярное

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: