Мониторинг производительности собирает трассировки , чтобы помочь вам отслеживать производительность вашего приложения. Трассировка — это отчет о данных производительности, собранных между двумя моментами времени в вашем приложении.
Вы можете создавать собственные трассировки для мониторинга данных о производительности, связанных с определенным кодом в вашем приложении. С помощью пользовательской трассировки кода вы можете измерить, сколько времени требуется вашему приложению для выполнения определенной задачи или набора задач, например загрузки набора изображений или запроса к базе данных.
Метрикой по умолчанию для пользовательской трассировки кода является ее «длительность» (время между начальной и конечной точками трассировки), но вы также можете добавить собственные метрики .
В своем коде вы определяете начало и конец пользовательской трассировки кода с помощью API, предоставляемых пакетом SDK для мониторинга производительности.
Трассировки пользовательского кода можно запустить в любое время после их создания, и они потокобезопасны.
Поскольку метрикой по умолчанию, собираемой для этих трассировок, является «длительность», их иногда называют «длительность трассировок».
Данные из этих трассировок можно просмотреть на подвкладке «Пользовательские трассировки» таблицы трассировок, которая находится в нижней части панели мониторинга «Производительность» (подробнее об использовании консоли см. далее на этой странице).
Атрибуты по умолчанию, специальные атрибуты и специальные метрики
Для трассировок пользовательского кода мониторинг производительности автоматически регистрирует атрибуты по умолчанию (общие метаданные, такие как версия приложения, страна, устройство и т. д.), чтобы вы могли фильтровать данные для трассировки в консоли 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.
Performance Monitoring сам по себе не собирает никакой личной информации (PII), такой как имена, адреса электронной почты или номера телефонов. Разработчики могут собирать дополнительные данные с помощью мониторинга производительности, создавая пользовательские атрибуты в пользовательских трассировках кода. Такие данные, собранные с помощью мониторинга производительности, не должны содержать информацию, которая лично идентифицирует человека для Google.
Вот пример сообщения журнала, которое не содержит личной информации:
customTrace.putAttribute("experiment", "A"); // OK
Вот пример, который содержит личную информацию (не используйте этот тип настраиваемого атрибута в своем приложении):
customTrace.putAttribute(("email", user.getEmailAddress()); // Don't do this!
Данные, раскрывающие любую личную информацию, могут быть удалены без предварительного уведомления.
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.
Настройте оповещения об изменениях кода, которые снижают производительность вашего приложения. Например, вы можете настроить оповещение по электронной почте для своей команды, если продолжительность трассировки определенного пользовательского кода превышает установленный вами порог.