Как добавить специальный мониторинг для определенного кода приложения


Performance Monitoring собирает трассировки, чтобы вы могли отслеживать производительность приложения. Трассировка – это отчет о производительности, зафиксированной между двумя моментами времени в приложении.

Вы можете создавать собственные трассировки, чтобы отслеживать данные о производительности, связанные с определенным кодом в вашем приложении. С помощью трассировки пользовательского кода вы можете измерить, сколько времени требуется вашему приложению для выполнения определенной задачи или набора задач, например загрузки набора изображений или запроса к базе данных.

Показателем по умолчанию для трассировки пользовательского кода является ее продолжительность (время между начальной и конечной точками трассировки), но вы также можете добавить пользовательские показатели.

В коде вы определяете начало и конец трассировки специального кода с помощью API, предоставляемых Performance Monitoring SDK. Трассировки специального кода можно запускать в любое время после создания. Они потокобезопасны.

Поскольку по умолчанию для этих трассировок собирается показатель "длительность", их иногда называют трассировками длительности.

Данные этих трассировок можно посмотреть на вложенной вкладке Специальные трассировки в таблице трассировок внизу панели Производительность. Подробнее об использовании консоли рассказывается ниже.

Стандартные и настраиваемые атрибуты, а также специальные показатели

Для трассировок пользовательского кода Performance Monitoring автоматически регистрирует атрибуты по умолчанию (общие метаданные, такие как версия приложения, страна, устройство и т. д.), чтобы вы могли фильтровать данные для трассировки в консоли Firebase. Вы также можете добавлять и отслеживать специальные атрибуты, например уровень игры или свойства пользователя.

Вы можете настроить отслеживание пользовательского кода, чтобы регистрировать пользовательские показатели для событий, связанных с производительностью, которые происходят в рамках отслеживания. Например, вы можете создать специальный показатель для количества совпадений и несовпадений в кеше или для количества случаев, когда пользовательский интерфейс перестает отвечать на запросы в течение заметного периода времени.

Специальные атрибуты и показатели отображаются в консоли Firebase вместе с атрибутами и показателями по умолчанию.

Добавление трассировок собственного кода

Используйте Performance Monitoring Trace API (Swift | Obj-C), чтобы добавить специальные трассировки кода и отслеживать определенный код приложения.

Обратите внимание:

  • В приложении может быть несколько трассировок пользовательского кода.
  • Одновременно может выполняться несколько трассировок специального кода.
  • Названия трассировок специального кода должны соответствовать следующим требованиям: не содержать пробелов в начале и конце, не начинаться с символа подчеркивания (_) и не превышать 100 символов.
  • В трассировки пользовательского кода можно добавлять специальные показатели и специальные атрибуты.

Чтобы запустить и остановить трассировку специального кода, оберните код, который вы хотите отслеживать, строками кода, аналогичными следующим:

Swift

Примечание. Этот продукт Firebase недоступен для macOS, Mac Catalyst и watchOS.
// 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

Примечание. Этот продукт Firebase недоступен для macOS, Mac Catalyst и watchOS.
// 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];

Как добавить пользовательские показатели в трассировки пользовательского кода

Используйте Trace API Performance Monitoring (Swift | Obj-C), чтобы добавить специальные показатели в трассировки специального кода.

Обратите внимание:

  • Названия специальных показателей должны соответствовать следующим требованиям: не содержать пробелов в начале и конце, не начинаться с символа подчеркивания (_) и не превышать 100 символов.
  • Каждая трассировка пользовательского кода может записывать до 32 показателей (включая показатель Продолжительность по умолчанию).

Чтобы добавить специальный показатель, добавляйте строку кода, подобную приведенной ниже, каждый раз, когда происходит событие. Например, этот специальный показатель подсчитывает события, связанные с производительностью, которые происходят в вашем приложении, такие как попадания в кеш или повторные попытки.

Swift

Примечание. Этот продукт Firebase недоступен для macOS, Mac Catalyst и watchOS.
let trace = Performance.startTrace(name: "CUSTOM_TRACE_NAME")

trace.incrementMetric("EVENT_NAME", by: 1)
// code that you want to trace (and log custom metrics)

trace.stop()

Objective-C

Примечание. Этот продукт Firebase недоступен для macOS, Mac Catalyst и watchOS.
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];

Как создать настраиваемые атрибуты для трассировок пользовательского кода

Чтобы добавить настраиваемые атрибуты в трассировки пользовательского кода, используйте Performance Monitoring Trace API (Swift | Obj-C).

Чтобы использовать настраиваемые атрибуты, добавьте в приложение код, который определяет атрибут и связывает его с определенной трассировкой пользовательского кода. Задать специальный атрибут можно в любой момент между началом и окончанием трассировки.

Обратите внимание:

  • Названия настраиваемых атрибутов должны соответствовать следующим требованиям:

    • Не должно быть начальных и конечных пробелов, а также начального символа подчеркивания (_).
    • Без пробелов
    • Максимальная длина – 32 символа.
    • Допустимые символы: A-Z, a-z и _.
  • Каждая трассировка специального кода может записывать до пяти настраиваемых атрибутов.

  • Убедитесь, что настраиваемые атрибуты не содержат информацию, позволяющую идентифицировать личность.

    Подробнее об этом правиле

Swift

Примечание. Этот продукт Firebase недоступен для macOS, Mac Catalyst и watchOS.
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

Примечание. Этот продукт Firebase недоступен для macOS, Mac Catalyst и watchOS.
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];

Как отслеживать, просматривать и фильтровать данные об эффективности

Как отслеживать определенные показатели на панели управления

Чтобы отслеживать динамику ключевых показателей, добавьте их на панель показателей в верхней части сводки Эффективность. Вы можете быстро выявлять регрессии, просматривая изменения за неделю, или проверять, улучшают ли производительность недавние изменения в коде.

Изображение панели показателей в <span class=Панель Firebase Performance Monitoring" />

Чтобы добавить показатель на панель, выполните следующие действия:

  1. Перейдите на панель управления Производительность в консоли Firebase.
  2. Нажмите на пустую карточку показателя и выберите показатель, который хотите добавить на доску.
  3. Нажмите на значок на карточке показателя, чтобы открыть меню дополнительных действий, например для замены или удаления показателя.

На панели показателей собранные данные представлены в виде графика и процентного изменения.

Подробнее о том, как использовать главную панель…

Как посмотреть трассировки и их данные

Чтобы посмотреть трассировки, перейдите на панель Производительность в консоли Firebase, прокрутите страницу вниз до таблицы трассировок и выберите нужную вкладку. В таблице показаны основные показатели для каждого трассировщика. Вы можете отсортировать список по процентному изменению определенного показателя.

В консоли Firebase есть страница устранения неполадок Performance Monitoring, на которой выделены изменения показателей. Это позволяет быстро устранять проблемы с производительностью и минимизировать их влияние на приложения и пользователей. Страница устранения неполадок может пригодиться, если вы узнали о возможных проблемах с эффективностью, например в следующих случаях:

  • Вы выбираете нужные показатели на панели управления и замечаете большую разницу.
  • В таблице трассировок вы сортируете данные, чтобы отобразить самые большие дельты вверху, и видите значительное процентное изменение.
  • Вы получаете оповещение по электронной почте о проблеме производительности.

Перейти на страницу устранения неполадок можно следующими способами:

  • На панели показателей нажмите кнопку Посмотреть сведения о показателе.
  • На любой карточке показателя нажмите => Подробнее. На странице устранения неполадок появится информация о выбранном показателе.
  • В таблице трассировок нажмите на название трассировки или на любое значение показателя в строке, связанной с этой трассировкой.
  • В оповещении по электронной почте нажмите Проверить.

Нажав на название трассировки в таблице, вы можете перейти к интересующим вас показателям. Нажмите кнопку Фильтр, чтобы отфильтровать данные по атрибуту, например:

изображение <span class=Данные Firebase Performance Monitoring, отфильтрованные по атрибуту" />
  • Отфильтруйте данные по версии приложения, чтобы посмотреть информацию о предыдущем или последнем выпуске.
  • Отфильтруйте данные по устройству, чтобы узнать, как ваше приложение работает на устаревших моделях.
  • Отфильтруйте данные по стране, чтобы убедиться, что местоположение базы данных не влияет на определенный регион.

Подробнее о том, как просматривать данные трассировки…

Дальнейшие действия

  • Просматривать подробные отчеты о пользовательских сеансах, в которых можно увидеть определенный трассировочный след в контексте временной шкалы других следов, собранных во время того же сеанса.