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


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

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

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

В своем коде вы определяете начало и конец пользовательской трассировки кода, используя API, предоставляемые Performance Monitoring 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.

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