Performance Monitoring собирает трассировки, чтобы вы могли отслеживать эффективность приложения. Трассировка – это отчет о данных об эффективности, собранных между двумя моментами времени в приложении.
Вы можете создавать собственные трассировки, чтобы отслеживать данные об эффективности, связанные с определенным кодом в вашем приложении. С помощью трассировки пользовательского кода вы можете измерить, сколько времени требуется вашему приложению для выполнения определенной задачи или набора задач, например загрузки набора изображений или запроса к базе данных.
По умолчанию для трассировки пользовательского кода используется показатель "длительность" (время между начальной и конечной точками трассировки), но вы также можете добавить пользовательские показатели.
В коде вы определяете начало и конец трассировки специального кода с помощью API, предоставляемых Performance Monitoring SDK.
В приложениях для Android можно отслеживать определенные методы с помощью аннотации @AddTrace.
Специальные трассировки кода можно запускать в любое время после создания. Они являются потокобезопасными.
Поскольку по умолчанию для этих трассировок собирается показатель "продолжительность", их иногда называют трассировками продолжительности.
Данные этих трассировок можно посмотреть на вложенной вкладке Специальные трассировки в таблице трассировок внизу панели Производительность. Подробнее об использовании консоли рассказывается ниже.
Стандартные и настраиваемые атрибуты, а также специальные показатели
Для трассировок пользовательского кода Performance Monitoring автоматически регистрирует атрибуты по умолчанию (общие метаданные, такие как версия приложения, страна, устройство и т. д.), чтобы вы могли фильтровать данные для трассировки в консоли Firebase. Вы также можете добавлять и отслеживать настраиваемые атрибуты (например, уровень игры или свойства пользователя).Вы можете настроить трассировку специального кода, чтобы регистрировать специальные показатели для событий, связанных с производительностью, которые происходят в рамках трассировки. Например, вы можете создать пользовательский показатель для количества совпадений и несовпадений в кеше или для количества случаев, когда пользовательский интерфейс перестает отвечать на запросы в течение заметного периода времени.
Настраиваемые атрибуты и пользовательские показатели отображаются в консоли Firebase вместе с атрибутами и показателями по умолчанию для трассировки.
Как добавить трассировки пользовательского кода
Используйте Performance Monitoring Trace API, чтобы добавить собственные трассировки кода для отслеживания определенного кода приложения.
Обратите внимание:
- В приложении может быть несколько пользовательских трассировок кода.
- Одновременно может выполняться несколько трассировок специального кода.
- Названия трассировок специального кода должны соответствовать следующим требованиям: не содержать пробелов в начале и конце, не начинаться с символа подчеркивания (
_) и иметь длину не более 100 символов. - Трассировки пользовательского кода поддерживают добавление пользовательских показателей и настраиваемых атрибутов.
Чтобы запустить и остановить трассировку пользовательского кода, оберните код, который вы хотите отслеживать, строками кода, аналогичными следующим (в этом примере используется имя пользовательской трассировки test_trace):
Kotlin
// Import these Performance Monitoring classes at the top of your `.kt` file import com.google.firebase.perf.FirebasePerformance; import com.google.firebase.perf.metrics.Trace; val myTrace = Firebase.performance.newTrace("test_trace") myTrace.start() // code that you want to trace myTrace.stop()
Java
// Import these Performance Monitoring classes at the top of your `.java` file import com.google.firebase.perf.FirebasePerformance; import com.google.firebase.perf.metrics.Trace; Trace myTrace = FirebasePerformance.getInstance().newTrace("test_trace"); myTrace.start(); // code that you want to trace myTrace.stop();
(Необязательно) Отслеживайте определенные методы с помощью @AddTrace
Приложения Android также поддерживают аннотацию @AddTrace для отслеживания пользовательского кода. При использовании этой функции трассировка начинается в начале указанного метода и останавливается по его завершении, включая все, что вызывается этим методом.
Например, вы можете создать специальную трассировку кода с названием onCreateTrace, которая будет выполняться при вызове метода onCreate().
Kotlin
// Import these Performance Monitoring classes at the top of your `.kt` file import com.google.firebase.perf.FirebasePerformance; import com.google.firebase.perf.metrics.AddTrace; // Add the `@AddTrace` annotation above the method you want to trace // the `enabled` argument is optional and defaults to true @AddTrace(name = "onCreateTrace", enabled = true) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) }
Java
// Import these Performance Monitoring classes at the top of your `.java` file import com.google.firebase.perf.FirebasePerformance; import com.google.firebase.perf.metrics.AddTrace; // Add the `@AddTrace` annotation above the method you want to trace @Override @AddTrace(name = "onCreateTrace", enabled = true /* optional */) protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); }
Как добавить специальные показатели в трассировки пользовательского кода
Используйте Performance Monitoring Trace API, чтобы добавлять специальные показатели в трассировки специального кода.
Обратите внимание:
- Названия специальных показателей должны соответствовать следующим требованиям: не содержать пробелов в начале и конце, не начинаться с символа подчеркивания (
_) и не превышать 100 символов. - Каждая трассировка пользовательского кода может записывать до 32 показателей (включая показатель Продолжительность по умолчанию).
Чтобы добавить специальный показатель, добавляйте строку кода, подобную приведенной ниже, каждый раз, когда происходит событие. Например, этот специальный показатель подсчитывает события, связанные с производительностью, которые происходят в вашем приложении, такие как попадания в кеш и промахи (с использованием примеров названий событий item_cache_hit и item_cache_miss и приращения 1).
Kotlin
val myTrace = Firebase.performance.newTrace("test_trace") myTrace.start() // code that you want to trace (and log custom metrics) val item = cache.fetch("item") if (item != null) { myTrace.incrementMetric("item_cache_hit", 1) } else { myTrace.incrementMetric("item_cache_miss", 1) } myTrace.stop()
Java
Trace myTrace = FirebasePerformance.getInstance().newTrace("test_trace"); myTrace.start(); // code that you want to trace (and log custom metrics) Item item = cache.fetch("item"); if (item != null) { myTrace.incrementMetric("item_cache_hit", 1); } else { myTrace.incrementMetric("item_cache_miss", 1); } myTrace.stop();
Как создать настраиваемые атрибуты для трассировок пользовательского кода
Используйте Performance Monitoring Trace API, чтобы добавлять настраиваемые атрибуты в трассировки собственного кода.Чтобы использовать настраиваемые атрибуты, добавьте в приложение код, который определяет атрибут и связывает его с определенным следом пользовательского кода. Задать специальный атрибут можно в любой момент между началом и окончанием трассировки.
Обратите внимание:
Названия настраиваемых атрибутов должны соответствовать следующим требованиям:
- Не должно быть начальных и конечных пробелов, а также начального символа подчеркивания (
_). - Без пробелов
- Максимальная длина – 32 символа.
- Допустимые символы:
A-Z,a-zи_.
- Не должно быть начальных и конечных пробелов, а также начального символа подчеркивания (
Каждая трассировка специального кода может записывать до 5 настраиваемых атрибутов.
Убедитесь, что настраиваемые атрибуты не содержат информацию, позволяющую идентифицировать личность.
Подробнее об этом правиле
Kotlin
Firebase.performance.newTrace("test_trace").trace { // Update scenario. putAttribute("experiment", "A") // Reading scenario. val experimentValue = getAttribute("experiment") // Delete scenario. removeAttribute("experiment") // Read attributes. val traceAttributes = this.attributes }
Java
Trace trace = FirebasePerformance.getInstance().newTrace("test_trace"); // Update scenario. trace.putAttribute("experiment", "A"); // Reading scenario. String experimentValue = trace.getAttribute("experiment"); // Delete scenario. trace.removeAttribute("experiment"); // Read attributes. Map<String, String> traceAttributes = trace.getAttributes();
Как отслеживать, просматривать и фильтровать данные об эффективности
Как отслеживать определенные показатели на панели управления
Чтобы отслеживать динамику ключевых показателей, добавьте их на сводку показателей в верхней части панели Эффективность. Вы можете быстро выявлять регрессии, просматривая изменения за неделю, или проверять, улучшают ли производительность недавние изменения в коде.
Панель управления Firebase Performance Monitoring" />
Чтобы добавить показатель на панель, выполните следующие действия:
- Перейдите на панель управления Производительность в консоли Firebase.
- Нажмите на пустую карточку показателя и выберите существующий показатель, который нужно добавить на доску.
- Нажмите на значок на карточке показателя, чтобы открыть меню дополнительных действий, например для замены или удаления показателя.
На панели показателей представлены собранные данные за определенный период времени в виде графика и процентного изменения.
Подробнее о том, как использовать главную панель…
Как посмотреть трассировки и их данные
Чтобы посмотреть трассировки, перейдите на панель Эффективность в консоли Firebase, прокрутите страницу вниз до таблицы трассировок и откройте нужную вкладку. В таблице показаны основные показатели для каждого трассировочного файла. Вы можете отсортировать список по процентному изменению определенного показателя.
В консоли Firebase есть страница устранения неполадок Performance Monitoring, на которой выделены изменения показателей. Это позволяет быстро решать проблемы с производительностью и минимизировать их влияние на приложения и пользователей. Страница устранения неполадок может пригодиться, если вы узнали о возможных проблемах с эффективностью, например в следующих случаях:
- Вы выбираете нужные показатели на панели управления и замечаете большую разницу.
- В таблице трассировок вы сортируете данные так, чтобы вверху отображались самые большие дельты, и видите значительное процентное изменение.
- Вы получаете оповещение по электронной почте о проблеме производительности.
Перейти на страницу устранения неполадок можно следующими способами:
- На панели показателей нажмите кнопку Посмотреть подробные сведения о показателе.
- На любой карточке показателя нажмите
=> Показать подробные сведения . На странице устранения неполадок появится информация о выбранном показателе. - В таблице трассировок нажмите на название трассировки или любое значение показателя в строке, связанной с этой трассировкой.
- В оповещении по электронной почте нажмите Проверить.
Нажав на название трассировки в таблице, вы можете перейти к интересующим вас показателям. Нажмите кнопку
Данные Firebase Performance Monitoring, отфильтрованные по атрибуту" />
- Отфильтруйте данные по версии приложения, чтобы посмотреть информацию о предыдущем или последнем выпуске.
- Фильтр Устройство позволяет узнать, как приложение работает на старых устройствах.
- Отфильтруйте данные по стране, чтобы убедиться, что местоположение базы данных не влияет на определенный регион.
Подробнее о том, как просматривать данные трассировок…
Дальнейшие действия
Подробнее о том, как использовать атрибуты для анализа данных об эффективности…
Подробнее о том, как отслеживать проблемы производительности в консоли Firebase…
Настройте оповещения об изменениях кода, которые снижают производительность приложения. Например, вы можете настроить оповещение по электронной почте для своей команды, если продолжительность определенной трассировки пользовательского кода превышает установленный вами порог.
- Просматривать подробные отчеты о сеансах пользователей, в которых можно увидеть определенную трассировку в контексте временной шкалы других трассировок, собранных во время того же сеанса.