Catch up on highlights from Firebase at Google I/O 2023. Learn more

Узнайте о данных о производительности сетевых запросов HTTP/S (любое приложение)

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

Для всех типов приложений мониторинг производительности автоматически собирает трассировку для каждого сетевого запроса, отправленного вашим приложением, которая называется трассировкой сетевого запроса HTTP/S . Эти трассировки собирают метрики за время между отправкой вашим приложением запроса к конечной точке службы и завершением ответа от этой конечной точки. Для любой конечной точки, к которой ваше приложение отправляет запрос, мониторинг производительности фиксирует несколько показателей:

  • Время отклика — время между отправкой запроса и полным получением ответа.

  • Размер полезной нагрузки ответа — размер полезной нагрузки сети, загруженной приложением, в байтах.

  • Размер полезной нагрузки запроса — размер полезной нагрузки сети, загруженной приложением, в байтах.

  • Коэффициент успеха — процент успешных ответов (коды ответов в диапазоне от 100 до 399) по сравнению с общим количеством ответов.

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

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

Быстрый

  • URLSession
  • URLСоединение

Цель-C

  • NSURLSession
  • NSURLConnection

Настройка агрегации данных сетевых запросов

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

  • Инструментируйте трассировки сетевых запросов вручную: встроенный мониторинг включает большинство сетевых запросов для вашего приложения. Однако о некоторых запросах может не сообщаться, или вы можете использовать другую библиотеку для выполнения сетевых запросов. В этих случаях вы можете использовать API мониторинга производительности для ручной обработки пользовательских трассировок сетевых запросов .
  • Совокупные данные по пользовательским шаблонам URL-адресов: если есть определенные URL-адреса, которые Firebase не захватывает с помощью производного автоматического сопоставления шаблонов URL-адресов, вы можете создать собственные шаблоны URL-адресов для отслеживания определенного набора URL-адресов с течением времени.
  • Настройте способ расчета показателя успешности: иногда код ошибки ожидается для определенных конечных точек API или уже обрабатывается в вашем приложении. В этих случаях вы можете настроить способ расчета показателя успешности и более точно отслеживать показатель успешности сетевых вызовов вашего приложения.

Агрегация данных по шаблонам URL

Firebase Performance Monitoring автоматически собирает данные для похожих сетевых запросов, чтобы помочь вам понять тенденции в производительности ваших сетевых запросов.

Для каждого запроса Firebase проверяет, соответствует ли URL-адрес сетевого запроса шаблону URL. Если URL-адрес запроса соответствует шаблону URL-адреса, Firebase автоматически объединяет данные запроса по шаблону URL-адреса. Firebase отображает шаблоны URL-адресов и их агрегированные данные на вкладке «Сеть» на панели «Производительность» консоли Firebase.

Что такое шаблон URL?

Шаблон URL содержит домен и шаблон, который может соответствовать пути URL, например: example.com/*/animals/** .

  • Шаблоны URL могут содержать следующие сегменты пути:

    • обычный текст — соответствует точной строке
    • * — соответствует любой строке в одном сегменте пути
    • ** — соответствует произвольному суффиксу пути
  • Шаблоны URL могут быть:

Например: любой из следующих запросов URL может соответствовать шаблону URL example.com/*/animals/** .

  • example.com/singapore/animals
  • example.com/australia/animals/spiders
  • example.com/australia/animals/marsupials/koala.png

Домен для шаблона URL также может содержать * в качестве первого сегмента, например: *.example.com/*/fruits/** .

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

Автоматические шаблоны URL

Без какой-либо настройки с вашей стороны Мониторинг производительности пытается отразить последнее поведение вашего приложения, сопоставляя запросы вашего приложения с автоматическими шаблонами URL .

Как работает автоматическое сопоставление шаблонов URL?

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

Ниже приведен базовый пример того, как Firebase пытается сопоставить запросы с наиболее репрезентативным автоматическим шаблоном URL для вашего приложения.

  1. Ваше приложение отправляет много запросов на такие URL-адреса, как:

    • example.com/germany/animals/bears
    • example.com/germany/animals/birds
    • example.com/germany/cars

    Firebase определяет, что example.com/germany/** является распространенным шаблоном запроса для вашего приложения, и добавляет его в качестве автоматического шаблона URL в ваш проект.

    Для любых новых запросов, соответствующих этому шаблону URL, Firebase собирает данные запросов по автоматическому шаблону URL example.com/germany/** .

  2. По прошествии одной недели большинство запросов вашего приложения будут отправлены на example.com/germany/animals/bears и example.com/germany/animals/birds . Таким образом, Firebase создает более репрезентативный шаблон URL-адреса example.com/germany/animals/** .

    Для любых новых соответствующих запросов к этому новому шаблону URL Firebase агрегирует данные запросов только по новому шаблону URL. Firebase продолжает собирать данные для запросов на example.com/germany/cars в разделе example.com/germany/** .

  3. Однако в течение следующих нескольких недель количество запросов вашего приложения к example.com/germany/animals/bears и example.com/germany/animals/birds существенно уменьшится. Firebase определяет, что example.com/germany/animals/** не соответствует последнему поведению вашего приложения, поэтому Firebase начинает сопоставлять эти два запроса с example.com/germany/** .

    Firebase больше не собирает данные о запросах в example.com/germany/animals/** , поскольку он больше не является наиболее репрезентативным автоматическим шаблоном URL.

Поскольку автоматическое сопоставление шаблонов URL является динамическим, имейте в виду следующее:

  • Новые шаблоны URL не влияют на совпадения и агрегированные данные из предыдущих запросов. Firebase не выполняет повторную агрегацию данных запросов задним числом.

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

Просмотр автоматических шаблонов URL и их данных

Firebase отображает все шаблоны URL-адресов и их агрегированные данные на подвкладке «Сетевые запросы» таблицы трассировок, которая находится в нижней части панели «Производительность» консоли Firebase.

Вы можете увидеть шаблоны URL с меткой «Без категории» . Это «широкие» автоматические шаблоны URL-адресов, по которым Firebase может собирать данные для запросов, которые не соответствуют какому-либо более конкретному шаблону URL-адресов.

Когда срок хранения данных , собранных по шаблону URL, заканчивается, Firebase удаляет эти данные из шаблона URL. Если срок действия всех данных, собранных по автоматическому шаблону URL, истекает, Firebase удаляет этот шаблон URL из консоли Firebase.

Пользовательские шаблоны URL

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

Посетите страницу Создание пользовательских шаблонов URL , чтобы узнать больше.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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