Performance Monitoring использует трассировки для сбора данных об отслеживаемых процессах в приложении. Трассировка – это отчет, содержащий данные, собранные между двумя моментами времени в приложении.
Для всех типов приложений Performance Monitoring автоматически собирает трассировку для каждого сетевого запроса, отправленного вашим приложением. Она называется трассировкой сетевого запроса HTTP/S. Эти трассировки собирают показатели за время между отправкой запроса к конечной точке сервиса и получением ответа от нее. Для каждой конечной точки, к которой приложение отправляет запрос, Performance Monitoring собирает несколько показателей:
Время ответа – время между отправкой запроса и получением ответа.
Размер полезной нагрузки ответа – размер полезной нагрузки сети, скачанной приложением, в байтах.
Размер полезной нагрузки запроса – размер в байтах полезной нагрузки сети, загруженной приложением.
Доля успешных запросов – процент успешных ответов (коды ответов в диапазоне 100–399) по сравнению с общим количеством ответов.
Данные этих трассировок можно посмотреть на вложенной вкладке Сетевые запросы таблицы трассировок в нижней части панели Производительность. Подробнее об использовании консоли рассказывается ниже.
Performance Monitoring автоматически собирает показатели сетевых запросов, в которых используются следующие сетевые библиотеки:
OkHttp3, в частности HTTP-клиент версии 3.x.x.
Java URLConnection, в частности HttpURLConnection и HttpsURLConnection.
-
Если вы используете эту библиотеку, обязательно прочитайте об удалении Apache HTTP-клиента и прекращении поддержки Apache HTTP-клиента.
Как настроить агрегирование данных о сетевых запросах
Помимо стандартных инструментов и агрегирования данных для сетевых запросов, Performance Monitoring также поддерживает следующие возможности:
- Вручную настройте трассировку сетевых запросов. Стандартный мониторинг включает большинство сетевых запросов для вашего приложения. Однако некоторые запросы могут не регистрироваться или вы можете использовать другую библиотеку для выполнения сетевых запросов. В таких случаях вы можете использовать API Performance Monitoring, чтобы вручную настроить специальные трассировки сетевых запросов.
- Агрегирование данных по специальным шаблонам 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 могут быть двух типов:
- Шаблоны, полученные из Firebase, называются автоматическими шаблонами URL.
- Специальные шаблоны URL, которые задаются пользователем.
Например, шаблону URL example.com/*/animals/** могут соответствовать следующие запросы:
example.com/singapore/animalsexample.com/australia/animals/spidersexample.com/australia/animals/marsupials/koala.png
Домен для шаблона URL также может содержать * в качестве первого сегмента, например *.example.com/*/fruits/**.
Firebase сопоставляет каждый запрос только с одним шаблоном URL. Если вы настроили собственные шаблоны URL, Firebase сначала попытается сопоставить URL запросов с этими шаблонами. Если Firebase не находит подходящий шаблон собственного URL, то сопоставляет URL запроса с наиболее подходящим шаблоном автоматического URL. Подробнее об автоматических и собственных шаблонах URL рассказывается в разделах ниже.
Автоматические шаблоны URL
Если вы не задали настройки, Performance Monitoring пытается отразить последние действия в приложении, сопоставляя его запросы с автоматическими шаблонами URL.
Как работает автоматическое сопоставление шаблонов URL?
Firebase сопоставляет каждый запрос с наиболее подходящим автоматическим шаблоном URL, который был получен на основе запросов, отправленных вашим приложением. Обратите внимание, что Firebase сначала пытается сопоставить URL запросов с настроенными пользовательскими шаблонами URL.
Ниже приведен простой пример того, как Firebase пытается сопоставить запросы с наиболее подходящим шаблоном URL для вашего приложения.
Ваше приложение отправляет много запросов на URL, подобные следующим:
example.com/germany/animals/bearsexample.com/germany/animals/birdsexample.com/germany/cars
Firebase определяет, что
example.com/germany/**– это распространенный шаблон запроса для вашего приложения, и добавляет его в качестве автоматического шаблона URL в ваш проект.Для всех новых сопоставленных запросов к этому шаблону URL Firebase агрегирует данные запросов в автоматическом шаблоне URL
example.com/germany/**.Через неделю большинство запросов вашего приложения будет направляться на адреса
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/**.Однако в течение следующих нескольких недель количество запросов вашего приложения к
example.com/germany/animals/bearsиexample.com/germany/animals/birdsсущественно снижается. Firebase определяет, чтоexample.com/germany/animals/**не отражает последние тенденции использования приложения, и начинает сопоставлять эти два запроса с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 удаляет этот шаблон из консоли Firebase.
Специальные шаблоны URL
Вы можете создать собственные шаблоны URL, чтобы отслеживать определенные шаблоны URL, которые Firebase не фиксирует с помощью автоматического сопоставления шаблонов URL. Например, вы можете использовать собственный шаблон URL, чтобы устранить неполадки с определенным URL или отслеживать определенный набор URL в течение некоторого времени.
Подробнее о том, как создавать шаблоны собственных URL…
Как отслеживать, просматривать и фильтровать данные об эффективности
Чтобы просматривать данные об эффективности в реальном времени, убедитесь, что в вашем приложении используется версия SDK Performance Monitoring, совместимая с обработкой данных в реальном времени. Подробнее о данных об эффективности в реальном времени…
Как отслеживать определенные показатели на панели управления
Чтобы отслеживать динамику ключевых показателей, добавьте их на панель показателей в верхней части сводки Эффективность. Вы можете быстро выявлять регрессии, просматривая изменения за неделю, или проверять, улучшают ли производительность недавние изменения в коде.
Панель Firebase Performance Monitoring" />
Чтобы добавить показатель на панель, выполните следующие действия:
- Перейдите на панель управления Производительность в консоли Firebase.
- Нажмите на пустую карточку показателя и выберите показатель, который хотите добавить на доску.
- Нажмите на значок на карточке показателя, чтобы открыть меню дополнительных действий, например для замены или удаления показателя.
На панели показателей собранные данные представлены в виде графика и процентного изменения.
Подробнее о том, как использовать главную панель…
Как посмотреть трассировки и их данные
Чтобы посмотреть трассировки, перейдите на панель Производительность в консоли Firebase, прокрутите страницу вниз до таблицы трассировок и выберите нужную вкладку. В таблице показаны основные показатели для каждого трассировщика. Вы можете отсортировать список по процентному изменению определенного показателя.
В консоли Firebase есть страница устранения неполадок Performance Monitoring, на которой выделены изменения показателей. Это позволяет быстро устранять проблемы с производительностью и минимизировать их влияние на приложения и пользователей. Страница устранения неполадок может пригодиться, если вы узнали о возможных проблемах с эффективностью, например в следующих случаях:
- Вы выбираете нужные показатели на панели управления и замечаете большую разницу.
- В таблице трассировок вы сортируете данные, чтобы отобразить самые большие дельты вверху, и видите значительное процентное изменение.
- Вы получаете оповещение по электронной почте о проблеме производительности.
Перейти на страницу устранения неполадок можно следующими способами:
- На панели показателей нажмите кнопку Посмотреть сведения о показателе.
- На любой карточке показателя нажмите
=> Подробнее . На странице устранения неполадок появится информация о выбранном показателе. - В таблице трассировок нажмите на название трассировки или на любое значение показателя в строке, связанной с этой трассировкой.
- В оповещении по электронной почте нажмите Проверить.
Нажав на название трассировки в таблице, вы можете перейти к интересующим вас показателям. Нажмите кнопку
Данные Firebase Performance Monitoring, отфильтрованные по атрибуту" />
- Отфильтруйте данные по версии приложения, чтобы посмотреть информацию о предыдущем или последнем выпуске.
- Отфильтруйте данные по устройству, чтобы узнать, как ваше приложение работает на устаревших моделях.
- Отфильтруйте данные по стране, чтобы убедиться, что местоположение базы данных не влияет на определенный регион.
Подробнее о том, как просматривать данные трассировки…
Дальнейшие действия
Подробнее о том, как использовать атрибуты для анализа данных об эффективности…
Подробнее о том, как отслеживать проблемы производительности в консоли Firebase…
Настройте оповещения о сетевых запросах, которые снижают производительность приложения. Например, вы можете настроить оповещение по электронной почте для своей команды, если время ответа для определенного шаблона URL превышает установленное вами пороговое значение.
- Просматривать подробные отчеты о пользовательских сеансах, в которых можно увидеть определенный трассировочный след в контексте временной шкалы других следов, собранных во время того же сеанса.