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