Firebase is back at Google I/O on May 10! Register now

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

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

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

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

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

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

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

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

Атрибуты по умолчанию, настраиваемые атрибуты и настраиваемые показатели

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

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

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

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

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

Обратите внимание на следующее:

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

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

Web version 9

import { trace } from "firebase/performance";

const t = trace(perf, "CUSTOM_TRACE_NAME");
t.start();

// Code that you want to trace 
// ...

t.stop();

Web version 8

const trace = perf.trace("CUSTOM_TRACE_NAME");
trace.start();

// Code that you want to trace 
// ...

trace.stop();

Добавляйте пользовательские трассировки кода с помощью User Timing API.

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

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

Web version 9

const performance = window.performance;

performance.mark("measurementStart");

// Code that you want to trace 
// ...

performance.mark("measurementStop");
performance.measure("customTraceName", "measurementStart", "measurementStop");

Web version 8

const performance = window.performance;

performance.mark("measurementStart");

// Code that you want to trace 
// ...

performance.mark("measurementStop");
performance.measure("customTraceName", "measurementStart", "measurementStop");

Обратите внимание, что performance в приведенном выше примере относится к объекту браузера window.performance .

При использовании User Timing API пользовательские метрики и атрибуты не могут быть добавлены к пользовательским трассировкам кода. Используйте API трассировки мониторинга производительности , если вы хотите добавить эти пользовательские элементы в пользовательскую трассировку кода.

Добавление пользовательских метрик в пользовательские трассировки кода

Используйте API трассировки мониторинга производительности, чтобы добавить пользовательские метрики в пользовательские трассировки кода.

Обратите внимание на следующее:

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

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

Web version 9

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 version 8

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 трассировки мониторинга производительности , чтобы добавить пользовательские атрибуты в пользовательские трассировки кода.

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

Обратите внимание на следующее:

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

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

  • Убедитесь, что настраиваемые атрибуты не содержат никакой информации, которая идентифицирует человека лично для Google.

    Подробнее об этом руководстве

Web version 9

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 version 8

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();

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

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

Отслеживайте определенные показатели на панели инструментов

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

изображение доски метрик на панели мониторинга производительности Firebase

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

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

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

Узнайте больше об использовании панели инструментов .

Просмотр трасс и их данных

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

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

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

Вы можете получить доступ к странице устранения неполадок следующими способами:

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

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

изображение данных Firebase Performance Monitoring, отфильтрованных по атрибуту
  • Отфильтруйте по URL-адресу страницы , чтобы просмотреть данные для конкретной страницы вашего сайта.
  • Отфильтруйте по типу эффективного подключения , чтобы узнать, как подключение 3G влияет на ваше приложение.
  • Отфильтруйте по стране , чтобы убедиться, что местоположение вашей базы данных не влияет на конкретный регион.

Узнайте больше о просмотре данных для ваших трассировок .

Следующие шаги

  • Узнайте больше об использовании атрибутов для проверки данных о производительности.

  • Узнайте больше о том, как отслеживать проблемы с производительностью в консоли Firebase.

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