Performance Monitoring собирает трассировки , чтобы помочь вам контролировать производительность вашего приложения. Трассировка — это отчет о данных производительности, полученных между двумя точками времени в вашем приложении.
Вы можете создать собственные трассировки для мониторинга данных производительности, связанных с определенным кодом в вашем приложении. С помощью пользовательской трассировки кода вы можете измерить, сколько времени требуется вашему приложению для выполнения определенной задачи или набора задач, например, загрузки набора изображений или запроса к вашей базе данных.
Метрикой по умолчанию для пользовательской трассировки кода является ее «продолжительность» (время между начальной и конечной точками трассировки), но вы также можете добавлять пользовательские метрики .
В своем коде вы определяете начало и конец пользовательской трассировки кода, используя 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 идентифицировать человека.
Performance Monitoring сам по себе не собирает никакой персонально идентифицируемой информации (PII), такой как имена, адреса электронной почты или номера телефонов. Разработчики могут собирать дополнительные данные с помощью Performance Monitoring, создавая пользовательские атрибуты в пользовательских трассировках кода. Такие данные, собранные с помощью Performance Monitoring, не должны содержать информацию, которая персонально идентифицирует человека для 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.
Настройте оповещения об изменениях кода, которые ухудшают производительность вашего приложения. Например, вы можете настроить оповещение по электронной почте для своей команды, если длительность определенной пользовательской трассировки кода превысит установленный вами порог.