Добавить настраиваемый мониторинг для определенного кода приложения

Мониторинг производительности собирает трассировки , чтобы помочь вам отслеживать производительность вашего приложения. Трассировка — это отчет о производительности, полученный между двумя моментами времени в вашем приложении.

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

Метрикой по умолчанию для пользовательской трассировки кода является ее «длительность» (время между начальной и конечной точками трассировки), но вы также можете добавить пользовательские метрики .

В своем коде вы определяете начало и конец пользовательской трассировки кода с помощью API-интерфейсов, предоставляемых пакетом SDK для мониторинга производительности.

Пользовательские трассировки кода можно запустить в любое время после их создания, и они являются потокобезопасными.

Поскольку метрикой по умолчанию, собираемой для этих трассировок, является «длительность», их иногда называют «трассировками продолжительности».

Вы можете просмотреть данные из этих трассировок на подвкладке Пользовательские трассировки таблицы трассировок, которая находится в нижней части панели мониторинга производительности (подробнее об использовании консоли читайте далее на этой странице).

Атрибуты по умолчанию, настраиваемые атрибуты и настраиваемые показатели

Для пользовательских трассировок кода Performance Monitoring автоматически регистрирует атрибуты по умолчанию (общие метаданные, такие как версия приложения, страна, устройство и т. д.), чтобы вы могли фильтровать данные для трассировки в консоли Firebase. Вы также можете добавлять и отслеживать пользовательские атрибуты (например, уровень игры или свойства пользователя).

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

Пользовательские атрибуты и пользовательские метрики отображаются в консоли Firebase вместе с атрибутами по умолчанию и метрикой по умолчанию для трассировки.

Добавить пользовательские трассировки кода

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

Обратите внимание на следующее:

  • Приложение может иметь несколько пользовательских трассировок кода.
  • Одновременно может выполняться более одной пользовательской трассировки кода.
  • Имена для пользовательских трассировок кода должны соответствовать следующим требованиям: не должно быть начальных или конечных пробелов, не должно быть начального символа подчеркивания ( _ ), а максимальная длина — 100 символов.
  • Пользовательские трассировки кода поддерживают добавление пользовательских метрик и пользовательских атрибутов .

Чтобы запустить и остановить пользовательскую трассировку кода, оберните код, который вы хотите отслеживать, кодом, подобным следующему:

Trace customTrace = FirebasePerformance.instance.newTrace('custom-trace');
await customTrace.start();

// Code you want to trace

await customTrace.stop();

Добавление пользовательских метрик в пользовательские трассировки кода

Используйте API трассировки мониторинга производительности, чтобы добавить пользовательские метрики в пользовательские трассировки кода.

Обратите внимание на следующее:

  • Имена для пользовательских метрик должны соответствовать следующим требованиям: не должно быть начального или конечного пробела, не должно быть символа подчеркивания ( _ ) в начале, а максимальная длина — 100 символов.
  • Каждая пользовательская трассировка кода может записывать до 32 метрик (включая метрику продолжительности по умолчанию).

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

Trace customTrace = FirebasePerformance.instance.newTrace("custom-trace");
await customTrace.start();

// Code you want to trace

customTrace.incrementMetric("metric-name", 1);

// More code

await customTrace.stop();

Создание пользовательских атрибутов для пользовательских трассировок кода

Чтобы использовать настраиваемые атрибуты, добавьте в свое приложение код, определяющий атрибут и связывающий его с определенной трассировкой пользовательского кода. Пользовательский атрибут можно установить в любое время между началом и остановкой трассировки.

Обратите внимание на следующее:

  • Имена настраиваемых атрибутов должны соответствовать следующим требованиям: не должно быть начальных или конечных пробелов, не должно быть начального символа подчеркивания ( _ ), а максимальная длина — 32 символа.

  • Каждая пользовательская трассировка кода может записывать до 5 пользовательских атрибутов.

  • Вы не должны использовать настраиваемые атрибуты, которые содержат информацию, которая идентифицирует человека для Google.

Trace trace = FirebasePerformance.instance.newTrace("test_trace");

// Update scenario.
trace.putAttribute("experiment", "A");

// Reading scenario.
String? experimentValue = trace.getAttribute("experiment");

// Delete scenario.
trace.removeAttribute("experiment");

// Read attributes.
Map<String, String> traceAttributes = trace.getAttributes();

Отслеживание, просмотр и фильтрация данных об эффективности

Отслеживайте определенные показатели на панели инструментов

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

Чтобы добавить метрику на доску метрик, перейдите на панель мониторинга «Производительность» в консоли Firebase, затем щелкните вкладку «Панель мониторинга» . Щелкните пустую карточку метрики, затем выберите существующую метрику, чтобы добавить ее на доску. Щелкните вертикальный многоточие ( ) на заполненной карточке показателя, чтобы открыть дополнительные параметры, например заменить или удалить показатель.

На доске метрик отображаются собранные метрические данные с течением времени как в графической форме, так и в виде числового процентного изменения.

Узнайте больше об использовании панели инструментов .

Просмотр трасс и их данных

Чтобы просмотреть свои трассировки, перейдите на панель мониторинга производительности в консоли Firebase, прокрутите вниз до таблицы трассировок и щелкните соответствующую вложенную вкладку. В таблице отображаются некоторые основные метрики для каждой трассы, и вы даже можете отсортировать список по процентному изменению для определенной метрики.

Если щелкнуть имя трассы в таблице трассировок, можно щелкнуть по различным экранам, чтобы изучить трассировку и перейти к интересующим метрикам. На большинстве страниц вы можете использовать кнопку «Фильтр» (в верхнем левом углу экрана), чтобы отфильтровать данные по атрибуту, например:

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

Узнайте больше о просмотре данных для ваших трассировок .

Следующие шаги

  • Узнайте больше об использовании атрибутов для проверки данных о производительности.

  • Узнайте больше о том, как отслеживать проблемы с производительностью в консоли Firebase.

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