Performance Monitoring использует трассировки для сбора данных о отслеживаемых процессах в вашем приложении. Трассировка — это отчет, содержащий данные, собранные между двумя моментами времени в вашем приложении.
For all app types, Performance Monitoring automatically collects a trace for each network request issued by your app, called an HTTP/S network request trace . Эти трассировки собирают метрики за время между отправкой вашим приложением запроса к конечной точке службы и завершением ответа от этой конечной точки. Для любой конечной точки, к которой ваше приложение отправляет запрос, Performance Monitoring фиксирует несколько показателей:
Время ответа — время между отправкой запроса и полным получением ответа.
Размер полезных данных ответа — размер в байтах сетевых полезных данных, загружаемых приложением.
Размер полезной нагрузки запроса — размер полезной нагрузки сети в байтах, загруженной приложением.
Доля успешных ответов — процент успешных ответов (коды ответов в диапазоне от 100 до 399) по сравнению с общим количеством ответов.
Данные этих трассировок можно просмотреть на подвкладке «Сетевые запросы» таблицы трассировок, которая находится в нижней части панели мониторинга «Производительность» (подробнее об использовании консоли см. далее на этой странице).
Performance Monitoring автоматически собирает метрики для сетевых запросов, которые используют следующие сетевые библиотеки:
OkHttp3 , в частности HTTP-клиент v3.xx
URLConnection Java , в частности HttpURLConnection и HttpsURLConnection.
Обязательно прочитайте об удалении HTTP-клиента Apache и прекращении поддержки HTTP-клиента Apache, если вы используете эту библиотеку.
Настройте агрегирование данных сетевых запросов
Помимо готовых инструментов и агрегирования данных для сетевых запросов, Performance Monitoring также поддерживает следующие параметры:
- Отслеживание сетевых запросов вручную. Готовый мониторинг включает в себя большинство сетевых запросов для вашего приложения. Однако о некоторых запросах может не сообщаться, или вы можете использовать другую библиотеку для выполнения сетевых запросов. В этих случаях вы можете использовать API Performance Monitoring для ручного инструментирования трассировки пользовательских сетевых запросов .
- Объедините данные по настраиваемым шаблонам 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-адресов могут быть следующими:
- Шаблоны, полученные из Firebase — называемые автоматическими шаблонами 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
Без какой-либо настройки с вашей стороны, Performance Monitoring пытается отразить последнее поведение вашего приложения, сопоставляя запросы вашего приложения с автоматическими шаблонами URL-адресов .
Как работает автоматическое сопоставление шаблонов URL?
Firebase сопоставляет каждый запрос с наиболее репрезентативным автоматическим шаблоном URL-адреса, полученным на основе запросов, отправленных вашим приложением. Однако обратите внимание, что Firebase сначала пытается сопоставить URL-адреса запроса с любыми настроенными шаблонами URL-адресов .
Ниже приведен базовый пример того, как Firebase пытается сопоставить запросы с наиболее репрезентативным автоматическим шаблоном URL-адреса для вашего приложения.
Ваше приложение отправляет множество запросов на такие 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/**
.-
Через неделю большая часть запросов вашего приложения приходится на
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/**
не отражает последнее поведение вашего приложения, поэтому 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-адресов», чтобы узнать больше.
Отслеживайте, просматривайте и фильтруйте данные о производительности
Чтобы просматривать данные о производительности в реальном времени, убедитесь, что ваше приложение использует версию Performance Monitoring SDK, совместимую с обработкой данных в реальном времени. Узнайте больше о данных о производительности в реальном времени .
Отслеживайте конкретные показатели на панели управления
Чтобы узнать, как меняются ваши ключевые показатели, добавьте их на доску показателей в верхней части панели мониторинга «Производительность» . Вы можете быстро выявить регрессии, наблюдая за изменениями еженедельно, или убедиться, что недавние изменения в вашем коде повышают производительность.
Панель мониторинга производительности Firebase" />Чтобы добавить метрику на доску метрик, выполните следующие действия:
- Перейдите на панель «Производительность» в консоли Firebase .
- Нажмите пустую карточку показателя, затем выберите существующий показатель, чтобы добавить его на доску.
- Нажмите на заполненной карточке показателя, чтобы просмотреть дополнительные параметры, например заменить или удалить показатель.
На панели показателей отображаются собранные данные показателей с течением времени как в графической форме, так и в виде числового процентного изменения.
Узнайте больше об использовании информационной панели .
Просмотр трассировок и их данных
Чтобы просмотреть трассировки, перейдите на панель мониторинга «Производительность» в консоли Firebase , прокрутите вниз до таблицы трассировок и щелкните соответствующую вложенную вкладку. В таблице отображаются некоторые основные метрики для каждой трассы, и вы даже можете отсортировать список по процентному изменению определенной метрики.
Performance Monitoring предоставляет страницу устранения неполадок в консоли Firebase , на которой освещаются изменения показателей, что позволяет легко быстро устранять и минимизировать влияние проблем с производительностью на ваши приложения и пользователей. Вы можете использовать страницу устранения неполадок, когда узнаете о потенциальных проблемах с производительностью, например в следующих сценариях:
- Вы выбираете соответствующие показатели на информационной панели и замечаете большую разницу.
- В таблице трассировок вы сортируете данные так, чтобы самые большие отклонения отображались вверху, и вы видите значительное процентное изменение.
- Вы получите оповещение по электронной почте, уведомляющее вас о проблеме с производительностью.
Вы можете получить доступ к странице устранения неполадок следующими способами:
- На панели мониторинга метрики нажмите кнопку «Просмотреть сведения о метрике» .
- На любой карточке показателя выберите
- В таблице трассировок щелкните имя трассировки или любое значение метрики в строке, связанной с этой трассировкой.
- In an email alert, click Investigate now .
Щелкнув имя трассировки в таблице трассировок, вы сможете перейти к интересующим метрикам. Нажмите кнопку
- Фильтруйте по версии приложения , чтобы просмотреть данные о предыдущей или последней версии приложения.
- Отфильтруйте по устройству, чтобы узнать, как старые устройства обрабатывают ваше приложение.
- Фильтруйте по стране , чтобы убедиться, что расположение вашей базы данных не влияет на определенный регион.
Узнайте больше о просмотре данных для ваших трассировок .
Следующие шаги
Узнайте больше об использовании атрибутов для изучения данных о производительности.
Узнайте больше о том, как отслеживать проблемы с производительностью в консоли Firebase .
Настройте оповещения о сетевых запросах, которые снижают производительность вашего приложения. Например, вы можете настроить оповещение по электронной почте для своей команды, если время ответа для определенного шаблона URL-адреса превышает установленный вами порог.
- Просматривайте подробные отчеты о сеансах пользователей , в которых вы можете увидеть определенную трассировку в контексте временной шкалы других трассировок, собранных во время того же сеанса.