Performance Monitoring собирает данные о производительности , помогая вам контролировать производительность вашего приложения. Трассировка — это отчёт о данных о производительности, собранных между двумя моментами времени в вашем приложении.
Вы можете создавать собственные трассировки для мониторинга производительности, связанной с конкретным кодом вашего приложения. С помощью пользовательской трассировки кода вы можете измерить время, необходимое приложению для выполнения определенной задачи или набора задач, например, загрузки набора изображений или запроса к базе данных.
Метрикой по умолчанию для пользовательской трассировки кода является ее «продолжительность» (время между начальной и конечной точками трассировки), но вы также можете добавлять пользовательские метрики .
В своем коде вы определяете начало и конец пользовательской трассировки кода, используя API, предоставляемые Performance Monitoring SDK.Пользовательские трассировки кода можно запускать в любое время после их создания, и они потокобезопасны.
Поскольку метрикой по умолчанию, собираемой для этих трассировок, является «длительность», их иногда называют «трассировками длительности».
Просмотреть данные этих трассировок можно на вкладке «Пользовательские трассировки » таблицы трассировок, которая находится в нижней части панели мониторинга производительности (подробнее об использовании консоли см . далее на этой странице).
Атрибуты по умолчанию, настраиваемые атрибуты и настраиваемые метрики
Для трассировок пользовательского кода Performance Monitoring автоматически регистрирует атрибуты по умолчанию (общие метаданные, такие как версия приложения, страна, устройство и т. д.), что позволяет фильтровать данные трассировки в консоли Firebase . Вы также можете добавлять и отслеживать пользовательские атрибуты (например, уровень игры или свойства пользователя).Вы можете дополнительно настроить собственную трассировку кода для записи пользовательских метрик для событий, связанных с производительностью, которые происходят в области трассировки. Например, вы можете создать пользовательскую метрику для количества попаданий и промахов кэша или количества случаев, когда пользовательский интерфейс перестаёт отвечать на запросы в течение заметного периода времени.
Пользовательские атрибуты и пользовательские метрики отображаются в консоли Firebase вместе с атрибутами и метрикой по умолчанию для трассировки.
Добавить пользовательские трассировки кода
Используйте API трассировки Performance Monitoring ( Swift | Obj-C ), чтобы добавлять пользовательские трассировки кода для мониторинга определенного кода приложения.
Обратите внимание на следующее:
- Приложение может иметь несколько пользовательских трассировок кода.
- Одновременно может выполняться более одной трассировки пользовательского кода.
- Имена для пользовательских трассировок кода должны соответствовать следующим требованиям: не должно быть начальных или конечных пробелов, не должно быть начальных символов подчеркивания (
_
), а максимальная длина составляет 100 символов. - Пользовательские трассировки кода поддерживают добавление пользовательских метрик и пользовательских атрибутов .
Чтобы запустить и остановить пользовательскую трассировку кода, заключите код, который вы хотите трассировать, в строки кода, подобные следующим:
Быстрый
// Add the Performance Monitoring module to your header import FirebasePerformance let trace = Performance.startTrace(name: "CUSTOM_TRACE_NAME") // code that you want to trace trace.stop()
Objective-C
// Add the Performance Monitoring module to your header @import FirebasePerformance; FIRTrace *trace = [FIRPerformance startTraceWithName:@"CUSTOM_TRACE_NAME"]; // code that you want to trace [trace stop];
Добавляйте пользовательские метрики к пользовательским трассировкам кода
Используйте API трассировки Performance Monitoring ( Swift | Obj-C ) для добавления пользовательских метрик к пользовательским трассировкам кода.
Обратите внимание на следующее:
- Имена пользовательских метрик должны соответствовать следующим требованиям: не должны содержать начальных и конечных пробелов, не должны содержать начальных символов подчеркивания (
_
) и должны иметь максимальную длину 100 символов. - Каждая трассировка пользовательского кода может записывать до 32 метрик (включая метрику длительности по умолчанию).
Чтобы добавить пользовательскую метрику, добавляйте строку кода, подобную следующей, каждый раз при возникновении события. Например, эта пользовательская метрика учитывает события, связанные с производительностью, которые происходят в вашем приложении, такие как попадания в кэш или повторные попытки.
Быстрый
let trace = Performance.startTrace(name: "CUSTOM_TRACE_NAME") trace.incrementMetric(named:"EVENT_NAME", by: 1) // code that you want to trace (and log custom metrics) trace.stop()
Objective-C
FIRTrace *trace = [FIRPerformance startTraceWithName:@"CUSTOM_TRACE_NAME"]; [trace incrementMetric:@"EVENT_NAME" byInt:1]; // code that you want to trace (and log custom metrics) [trace stop];
Создайте пользовательские атрибуты для пользовательских трассировок кода
Используйте API трассировки Performance Monitoring ( Swift | Obj-C ) для добавления пользовательских атрибутов к пользовательским трассировкам кода.
Чтобы использовать настраиваемые атрибуты, добавьте в приложение код, который определяет атрибут и связывает его с конкретной трассировкой кода. Вы можете задать настраиваемый атрибут в любое время между началом и окончанием трассировки.
Обратите внимание на следующее:
Имена пользовательских атрибутов должны соответствовать следующим требованиям:
- Никаких начальных и конечных пробелов, никаких начальных символов подчеркивания (
_
) - Без пробелов
- Максимальная длина — 32 символа.
- Допустимые символы для имени:
AZ
,az
и_
.
- Никаких начальных и конечных пробелов, никаких начальных символов подчеркивания (
Каждая трассировка пользовательского кода может записывать до 5 пользовательских атрибутов.
Убедитесь, что пользовательские атрибуты не содержат никакой информации, позволяющей Google идентифицировать человека.
Узнайте больше об этом руководстве
Быстрый
let trace = Performance.startTrace(name: "CUSTOM_TRACE_NAME") trace.setValue("A", forAttribute: "experiment") // Update scenario. trace.setValue("B", forAttribute: "experiment") // Reading scenario. let experimentValue:String? = trace.valueForAttribute("experiment") // Delete scenario. trace.removeAttribute("experiment") // Read attributes. let attributes:[String, String] = trace.attributes;
Objective-C
FIRTrace *trace = [FIRPerformance startTraceWithName:@"CUSTOM_TRACE_NAME"]; [trace setValue:@"A" forAttribute:@"experiment"]; // Update scenario. [trace setValue:@"B" forAttribute:@"experiment"]; // Reading scenario. NSString *experimentValue = [trace valueForAttribute:@"experiment"]; // Delete scenario. [trace removeAttribute:@"experiment"]; // Read attributes. NSDictionary <NSString *, NSString *> *attributes = [trace attributes];
Отслеживайте, просматривайте и фильтруйте данные о производительности
Отслеживайте конкретные показатели на панели управления
Чтобы отслеживать динамику ключевых показателей, добавьте их на панель показателей в верхней части панели «Производительность» . Вы можете быстро выявлять регрессии, просматривая еженедельные изменения, или убедиться, что недавние изменения в коде повышают производительность.

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

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