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

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

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

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

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

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

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

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

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

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

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

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

Используйте Performance Monitoring Trace API для добавления пользовательских кодов следов для мониторинга конкретного кода приложения.

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

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

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

Интернет v8

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

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

trace.stop();

Интернет v9

import { trace } from "firebase/performance";

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

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

t.stop();

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

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

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

Интернет v8

const performance = window.performance;

performance.mark("measurementStart");

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

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

Интернет v9

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 показателей (включая продолжительность метрику по умолчанию).

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

Интернет v8

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;
}

Интернет v9

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;
}

Создание настраиваемых атрибутов для трассировки настраиваемого кода

Использование мониторинга производительности трассировки API для добавления пользовательских атрибутов пользовательского кода следов.

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

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

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

  • Каждая трассировка настраиваемого кода может записывать до 5 настраиваемых атрибутов.

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

    Узнать больше об этом руководстве

Интернет v8

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

Интернет v9

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

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

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

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

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

изображение панели показателей на панели мониторинга Firebase Performance Monitoring.

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

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

Подробнее об использовании приборной панели .

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

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

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

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

Подробнее о просмотре данных для ваших следов .

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