Performance Monitoring собирает трассировки , которые помогают отслеживать производительность вашего приложения. Трассировка — это отчет о данных производительности, собранных в вашем приложении в промежутке времени между двумя точками.
Вы можете создавать собственные трассировки для мониторинга данных о производительности, связанных с конкретным кодом в вашем приложении. С помощью пользовательской трассировки кода вы можете измерить, сколько времени требуется вашему приложению для выполнения определенной задачи или набора задач, например, загрузки набора изображений или запроса к базе данных.
По умолчанию для трассировки пользовательского кода используется метрика "длительность" (время между начальной и конечной точками трассировки), но вы также можете добавить собственные метрики .
В своем коде вы определяете начало и конец пользовательской трассировки кода, используя API, предоставляемые SDK Performance Monitoring .Для приложений Android также можно отслеживать выполнение определенных методов с помощью аннотации @AddTrace .Трассировку пользовательского кода можно запустить в любое время после ее создания, и она потокобезопасна.
Поскольку в качестве метрики по умолчанию для этих трассировок используется "длительность", их иногда называют "трассировками длительности".
Данные из этих трассировок можно просмотреть на вкладке «Пользовательские трассировки» в таблице трассировок, которая находится в нижней части панели мониторинга производительности (подробнее об использовании консоли см. далее на этой странице).
Атрибуты по умолчанию, пользовательские атрибуты и пользовательские метрики
Для трассировки пользовательского кода Performance Monitoring автоматически регистрирует атрибуты по умолчанию (распространенные метаданные, такие как версия приложения, страна, устройство и т. д.), чтобы вы могли фильтровать данные для трассировки в консоли Firebase . Вы также можете добавлять и отслеживать пользовательские атрибуты (например, уровень игры или свойства пользователя).Вы можете дополнительно настроить трассировку кода для записи пользовательских метрик для событий, связанных с производительностью, которые происходят в пределах области трассировки. Например, вы можете создать пользовательскую метрику для количества попаданий и промахов в кэш или количества случаев, когда пользовательский интерфейс перестает отвечать в течение заметного периода времени.
Пользовательские атрибуты и пользовательские метрики отображаются в консоли Firebase наряду с атрибутами и метрикой по умолчанию для трассировки.
Добавить пользовательские трассировки кода
Используйте API трассировки Performance Monitoring , чтобы добавить пользовательские трассировки кода для мониторинга конкретного кода приложения.
Обратите внимание на следующее:
- В приложении может быть несколько пользовательских трассировок кода.
- Одновременно может выполняться более одной трассировки пользовательского кода.
- Названия для пользовательских трассировок кода должны соответствовать следующим требованиям: отсутствие пробелов в начале и конце, отсутствие символа подчеркивания (
_) в начале, а максимальная длина составляет 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); }
Добавьте пользовательские метрики к пользовательским трассировкам кода.
Используйте API трассировки Performance Monitoring , чтобы добавить пользовательские метрики к трассировкам пользовательского кода.
Обратите внимание на следующее:
- Названия пользовательских метрик должны соответствовать следующим требованиям: отсутствие пробелов в начале и конце, отсутствие символа подчеркивания (
_) в начале, а максимальная длина — 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();
Создавайте пользовательские атрибуты для пользовательских трассировок кода.
Используйте API трассировки Performance Monitoring , чтобы добавить пользовательские атрибуты к пользовательским трассировкам кода.Для использования пользовательских атрибутов добавьте в приложение код, определяющий атрибут и связывающий его с конкретной трассировкой пользовательского кода. Вы можете установить пользовательский атрибут в любое время между началом и окончанием трассировки.
Обратите внимание на следующее:
Названия пользовательских атрибутов должны соответствовать следующим требованиям:
- Отсутствуют пробелы в начале и конце, а также символ подчеркивания (
_) в начале. - Без пробелов
- Максимальная длина — 32 символа.
- Допустимые символы для имени:
AZ,azи_.
- Отсутствуют пробелы в начале и конце, а также символ подчеркивания (
Каждый пользовательский трассировочный код может записывать до 5 пользовательских атрибутов.
Пожалуйста, убедитесь, что пользовательские атрибуты не содержат никакой информации, позволяющей Google идентифицировать конкретного человека.
Узнайте больше об этом руководстве.
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" />Чтобы добавить метрику на доску метрик, выполните следующие действия:
- Перейдите на панель мониторинга «Производительность» в консоли Firebase .
- Щелкните по пустой карточке показателя, затем выберите существующий показатель, чтобы добавить его на доску.
- Нажмите кнопку на заполненной карточке показателя, чтобы получить дополнительные параметры, например, заменить или удалить показатель.
На панели показателей отображаются собранные данные о метриках за определенный период времени, как в графическом виде, так и в виде числового процентного изменения.
Узнайте больше об использовании панели управления .
Просмотр трассировок и их данных
Чтобы просмотреть трассировки, перейдите на панель мониторинга «Производительность» в консоли Firebase , прокрутите вниз до таблицы трассировок, а затем щелкните соответствующую подвкладку. В таблице отображаются некоторые ключевые показатели для каждой трассировки, и вы даже можете отсортировать список по процентному изменению для конкретного показателя.
В консоли Firebase Performance Monitoring предоставляет страницу устранения неполадок, которая отображает изменения метрик, что позволяет быстро выявлять и минимизировать влияние проблем с производительностью на ваши приложения и пользователей. Вы можете использовать эту страницу устранения неполадок, когда узнаете о потенциальных проблемах с производительностью, например, в следующих сценариях:
- Вы выбираете соответствующие показатели на панели мониторинга и замечаете большую разницу.
- В таблице результатов вы сортируете данные таким образом, чтобы наибольшие изменения отображались вверху, и видите значительное процентное изменение.
- Вы получите уведомление по электронной почте о проблеме с производительностью.
Доступ к странице устранения неполадок можно получить следующими способами:
- На панели мониторинга показателей нажмите кнопку « Просмотреть подробные сведения о показателе» .
- На любой метрической карте выберите
=> Просмотреть подробности . На странице устранения неполадок отображается информация о выбранном вами показателе. - В таблице трассировок щелкните имя трассировки или любое значение метрики в строке, связанной с этой трассировкой.
- В электронном письме с уведомлением нажмите «Провести расследование» .
При щелчке по названию трассировки в таблице трассировок вы можете перейти к просмотру интересующих вас метрик. Щелкните
Данные мониторинга производительности Firebase фильтруются по атрибуту" />- Используйте фильтр по версии приложения , чтобы просмотреть данные о предыдущих или последних версиях.
- Отфильтруйте результаты по устройству , чтобы узнать, как ваше приложение работает на старых устройствах.
- Используйте фильтр по стране , чтобы убедиться, что местоположение вашей базы данных не влияет на конкретный регион.
Узнайте больше о просмотре данных ваших трассировок .
Следующие шаги
Узнайте больше об использовании атрибутов для анализа данных о производительности.
Узнайте больше о том, как отслеживать проблемы с производительностью в консоли Firebase .
Настройте оповещения об изменениях кода, которые ухудшают производительность вашего приложения. Например, вы можете настроить оповещение по электронной почте для вашей команды, если продолжительность определенной трассировки кода превысит установленный вами порог.
- Просматривайте подробные отчеты о пользовательских сессиях , в которых можно увидеть конкретную трассировку в контексте временной шкалы других трассировок, собранных в течение той же сессии.