Performance Monitoring собирает данные о производительности , помогая вам контролировать производительность вашего приложения. Трассировка — это отчёт о данных о производительности, собранных между двумя моментами времени в вашем приложении.
Вы можете создавать собственные трассировки для мониторинга производительности, связанной с конкретным кодом вашего приложения. С помощью пользовательской трассировки кода вы можете измерить время, необходимое приложению для выполнения определенной задачи или набора задач, например, загрузки набора изображений или запроса к базе данных.
Метрикой по умолчанию для пользовательской трассировки кода является ее «продолжительность» (время между начальной и конечной точками трассировки), но вы также можете добавлять пользовательские метрики .
В своем коде вы определяете начало и конец пользовательской трассировки кода, используя API, предоставляемые Performance Monitoring SDK.Пользовательские трассировки кода можно запускать в любое время после их создания, и они потокобезопасны.
Поскольку метрикой по умолчанию, собираемой для этих трассировок, является «длительность», их иногда называют «трассировками длительности».
Просмотреть данные этих трассировок можно на вкладке «Пользовательские трассировки » таблицы трассировок, которая находится в нижней части панели мониторинга производительности (подробнее об использовании консоли см . далее на этой странице).
Атрибуты по умолчанию, настраиваемые атрибуты и настраиваемые метрики
Для трассировок пользовательского кода Performance Monitoring автоматически регистрирует атрибуты по умолчанию (общие метаданные, такие как страна, браузер, URL страницы и т. д.), что позволяет фильтровать данные трассировки в консоли Firebase . Вы также можете добавлять и отслеживать пользовательские атрибуты (например, уровень игры или свойства пользователя).Вы можете дополнительно настроить собственную трассировку кода для записи пользовательских метрик для событий, связанных с производительностью, которые происходят в области трассировки. Например, вы можете создать пользовательскую метрику для количества попаданий и промахов кэша или количества случаев, когда пользовательский интерфейс перестаёт отвечать на запросы в течение заметного периода времени.
Пользовательские атрибуты и пользовательские метрики отображаются в консоли Firebase вместе с атрибутами и метрикой по умолчанию для трассировки.
Добавить пользовательские трассировки кода
Используйте API трассировки Performance Monitoring , чтобы добавлять пользовательские трассировки кода для мониторинга определенного кода приложения.
Обратите внимание на следующее:
- Приложение может иметь несколько пользовательских трассировок кода.
- Одновременно может выполняться более одной трассировки пользовательского кода.
- Имена для пользовательских трассировок кода должны соответствовать следующим требованиям: не должно быть начальных или конечных пробелов, не должно быть начальных символов подчеркивания (
_
), а максимальная длина составляет 100 символов. - Пользовательские трассировки кода поддерживают добавление пользовательских метрик и пользовательских атрибутов .
Чтобы запустить и остановить пользовательскую трассировку кода, заключите код, который вы хотите трассировать, в строки кода, подобные следующим:
Web
import { trace } from "firebase/performance"; const t = trace(perf, "CUSTOM_TRACE_NAME"); t.start(); // Code that you want to trace // ... t.stop();
Web
const trace = perf.trace("CUSTOM_TRACE_NAME"); trace.start(); // Code that you want to trace // ... trace.stop();
Добавляйте пользовательские трассировки кода с помощью API пользовательского времени
Помимо API трассировки Performance Monitoring Trace, вы можете добавлять пользовательские трассировки кода, используя встроенный API пользовательского времени браузера. Длительность трассировки, измеренная с помощью этого API, автоматически учитывается пакетом SDK Performance Monitoring . Использование API пользовательского времени особенно полезно, если вы предпочитаете асинхронную загрузку SDK Performance Monitoring . После инициализации SDK он будет записывать измерения, выполненные до его загрузки.
Чтобы использовать эту функцию, заключите код, который вы хотите трассировать, в метки пользовательского времени:
Web
const performance = window.performance; performance.mark("measurementStart"); // Code that you want to trace // ... performance.mark("measurementStop"); performance.measure("customTraceName", "measurementStart", "measurementStop");
Web
const performance = window.performance; performance.mark("measurementStart"); // Code that you want to trace // ... performance.mark("measurementStop"); performance.measure("customTraceName", "measurementStart", "measurementStop");
Обратите внимание, что performance
в приведенном выше примере относится к объекту window.performance
браузера.
При использовании API пользовательского времени пользовательские метрики и атрибуты нельзя добавлять в пользовательские трассировки кода. Используйте API отслеживания Performance Monitoring , чтобы добавить эти пользовательские элементы в пользовательскую трассировку кода.
Добавляйте пользовательские метрики к пользовательским трассировкам кода
Используйте API трассировки Performance Monitoring для добавления пользовательских метрик к пользовательским трассировкам кода.
Обратите внимание на следующее:
- Имена пользовательских метрик должны соответствовать следующим требованиям: не должны содержать начальных и конечных пробелов, не должны содержать начальных символов подчеркивания (
_
) и должны иметь максимальную длину 100 символов. - Каждая трассировка пользовательского кода может записывать до 32 метрик (включая метрику длительности по умолчанию).
Чтобы добавить пользовательскую метрику, добавляйте строку кода, подобную следующей, каждый раз при возникновении события. Например, эта пользовательская метрика подсчитывает события, связанные с производительностью, которые происходят в вашем приложении.
Web
import { trace } from "firebase/performance"; async function getInventory(inventoryIds) { const t = trace(perf, "inventoryRetrieval"); // Tracks the number of IDs fetched (the metric could help you to optimize in the future) t.incrementMetric("numberOfIds", inventoryIds.length); // Measures the time it takes to request inventory based on the amount of inventory t.start(); const inventoryData = await retrieveInventory(inventoryIds); t.stop(); return inventoryData; }
Web
async function getInventory(inventoryIds) { const trace = perf.trace("inventoryRetrieval"); // Tracks the number of IDs fetched (the metric could help you to optimize in the future) trace.incrementMetric("numberOfIds", inventoryIds.length); // Measures the time it takes to request inventory based on the amount of inventory trace.start(); const inventoryData = await retrieveInventory(inventoryIds); trace.stop(); return inventoryData; }
Создайте пользовательские атрибуты для пользовательских трассировок кода
Используйте API трассировки Performance Monitoring для добавления пользовательских атрибутов к пользовательским трассировкам кода.
Чтобы использовать настраиваемые атрибуты, добавьте в приложение код, который определяет атрибут и связывает его с конкретной трассировкой кода. Вы можете задать настраиваемый атрибут в любое время между началом и окончанием трассировки.
Обратите внимание на следующее:
Имена пользовательских атрибутов должны соответствовать следующим требованиям:
- Никаких начальных и конечных пробелов, никаких начальных символов подчеркивания (
_
) - Без пробелов
- Максимальная длина — 32 символа.
- Допустимые символы для имени:
AZ
,az
и_
.
- Никаких начальных и конечных пробелов, никаких начальных символов подчеркивания (
Каждая трассировка пользовательского кода может записывать до 5 пользовательских атрибутов.
Убедитесь, что пользовательские атрибуты не содержат никакой информации, позволяющей Google идентифицировать человека.
Узнайте больше об этом руководстве
Web
import { trace } from "firebase/performance"; const t = trace(perf, "test_trace"); t.putAttribute("experiment", "A"); // Update scenario t.putAttribute("experiment", "B"); // Reading scenario const experimentValue = t.getAttribute("experiment"); // Delete scenario t.removeAttribute("experiment"); // Read attributes const traceAttributes = t.getAttributes();
Web
const trace = perf.trace("test_trace"); trace.putAttribute("experiment", "A"); // Update scenario trace.putAttribute("experiment", "B"); // Reading scenario const experimentValue = trace.getAttribute("experiment"); // Delete scenario trace.removeAttribute("experiment"); // Read attributes const traceAttributes = trace.getAttributes();
Отслеживайте, просматривайте и фильтруйте данные о производительности
Для просмотра данных о производительности в режиме реального времени убедитесь, что ваше приложение использует версию Performance Monitoring SDK, совместимую с обработкой данных в режиме реального времени. Подробнее о данных о производительности в режиме реального времени …
Отслеживайте конкретные показатели на панели управления
Чтобы отслеживать динамику ключевых показателей, добавьте их на панель показателей в верхней части панели «Производительность» . Вы можете быстро выявлять регрессии, просматривая еженедельные изменения, или убедиться, что недавние изменения в коде повышают производительность.

Чтобы добавить метрику на доску метрик, выполните следующие действия:
- Перейдите на панель управления производительностью в консоли Firebase .
- Щелкните пустую карточку метрики, затем выберите существующую метрику для добавления на доску.
- Нажмите на заполненной карточке метрики, чтобы увидеть дополнительные параметры, например, чтобы заменить или удалить метрику.
На доске показателей отображаются собранные метрические данные с течением времени, как в графической форме, так и в виде числового процентного изменения.
Подробнее об использовании панели инструментов .
Просмотр следов и их данных
Чтобы просмотреть свои трассировки, перейдите на панель управления «Производительность» в консоли Firebase , прокрутите вниз до таблицы трассировок и выберите соответствующую вкладку. В таблице отображаются некоторые основные метрики для каждой трассировки, и вы даже можете отсортировать список по процентному изменению конкретной метрики.
Performance Monitoring предоставляет страницу устранения неполадок в консоли Firebase , где отображаются изменения метрик, что позволяет быстро устранять и минимизировать влияние проблем с производительностью на ваши приложения и пользователей. Вы можете использовать страницу устранения неполадок, когда узнаете о потенциальных проблемах с производительностью, например, в следующих ситуациях:
- Вы выбираете соответствующие показатели на панели управления и замечаете большую разницу.
- В таблице следов вы сортируете так, чтобы самые большие дельты отображались вверху, и видите значительное процентное изменение.
- Вы получите уведомление по электронной почте о проблеме с производительностью.
Доступ к странице устранения неполадок можно получить следующими способами:
- На панели показателей нажмите кнопку Просмотреть сведения о показателях .
- На любой метрической карте выберите
- В таблице трасс щелкните имя трассы или любое значение метрики в строке, связанной с этой трассой.
- В оповещении по электронной почте нажмите кнопку Расследовать сейчас .
Щелкнув по имени трассы в таблице трасс, вы сможете перейти к интересующим вас метрикам.

- Фильтр по URL-адресу страницы для просмотра данных по определенной странице вашего сайта.
- Фильтруйте по эффективному типу подключения , чтобы узнать, как 3G-соединение влияет на ваше приложение.
- Фильтр по стране , чтобы убедиться, что местоположение вашей базы данных не влияет на определенный регион.
Узнайте больше о просмотре данных по вашим следам .
Следующие шаги
Узнайте больше об использовании атрибутов для изучения данных о производительности.
Узнайте больше о том, как отслеживать проблемы производительности в консоли Firebase .
Настройте оповещения об изменениях кода, которые снижают производительность вашего приложения. Например, вы можете настроить оповещение по электронной почте для своей команды, если продолжительность трассировки определённого пользовательского кода превысит заданное вами пороговое значение.