Мониторинг производительности развертываний функций

1. Обзор

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

Что вы узнаете

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

Предпосылки

  • Android Studio 4.0 или выше
  • Эмулятор Android с уровнем API 16 или выше.
  • Java версии 8 или выше
  • Базовое понимание Firebase Remote Config

2. Настройте пример проекта

Скачать код

Выполните следующую команду, чтобы клонировать пример кода для этой лаборатории кода. Это создаст папку с именем codelab-perf-rc-android на вашем компьютере:

$ git clone https://github.com/FirebaseExtended/codelab-feature-rollout-performance.git

Если на вашем компьютере нет Git, вы также можете скачать код напрямую с GitHub.

Импортируйте проект из папки firebase-perf-rc-android-start в Android Studio. Вы, вероятно, увидите некоторые исключения во время выполнения или, возможно, предупреждение об отсутствии файла google-services.json . Мы исправим это в следующем разделе.

В этой лаборатории кода вы будете использовать подключаемый модуль Firebase Assistant для регистрации своего приложения Android в проекте Firebase и добавления необходимых файлов конфигурации, подключаемых модулей и зависимостей Firebase в свой проект Android — и все это из Android Studio !

Подключите свое приложение к Firebase

  1. Перейдите в Android Studio / Справка > Проверить наличие обновлений , чтобы убедиться, что вы используете последние версии Android Studio и Firebase Assistant.
  2. Выберите «Инструменты» > «Firebase» , чтобы открыть панель «Помощник» .

c0e42ef063d21eab.png

  1. Выберите «Мониторинг производительности» , чтобы добавить его в свое приложение, затем нажмите «Начать мониторинг производительности» .
  2. Нажмите «Подключиться к Firebase» , чтобы подключить проект Android к Firebase (это откроет консоль Firebase в вашем браузере) .
  3. В консоли Firebase нажмите «Добавить проект» и введите имя проекта Firebase (если у вас уже есть проект Firebase, вы можете вместо этого выбрать этот существующий проект) . Нажмите «Продолжить» и примите условия, чтобы создать проект Firebase и новое приложение Firebase.

Затем вы должны увидеть диалоговое окно для подключения вашего нового приложения Firebase к вашему проекту Android Studio.

51a549ebde2fe57a.png

  1. Щелкните Подключить .
  2. Откройте Android-студию. На панели Assistant вы увидите подтверждение того, что ваше приложение подключено к Firebase.

40c24c4a56a45990.png

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

На панели «Помощник» в Android Studio нажмите «Добавить мониторинг производительности в ваше приложение ».

Вы должны увидеть диалоговое окно « Принять изменения», после чего Android Studio должна синхронизировать ваше приложение, чтобы убедиться, что все необходимые зависимости были добавлены.

3046f3e1f5fea06f.png

Наконец, вы должны увидеть сообщение об успешном завершении на панели Assistant в Android Studio о том, что все зависимости настроены правильно.

62e79fd18780e320.png

В качестве дополнительного шага включите ведение журнала отладки , следуя инструкциям на шаге «(Необязательно) Включить ведение журнала отладки». Эти же инструкции есть и в общедоступной документации .

3. Запустите приложение

Теперь вы должны увидеть файл google-services.json в каталоге модуля (уровня приложения) вашего приложения, и теперь ваше приложение должно скомпилироваться. В Android Studio нажмите «Выполнить » > «Запустить приложение» , чтобы создать и запустить приложение на эмуляторе Android.

Когда приложение запущено, вы должны сначала увидеть экран-заставку, подобный этому:

ffbd413a6983b205.png

Затем через несколько секунд отобразится главная страница с изображением по умолчанию:

d946cab0df319e50.png

Что происходит под капотом?

Экран-заставка реализован в SplashScreenActivity и выполняет следующие действия:

  1. В onCreate() мы инициализируем настройки Firebase Remote Config и извлекаем значения конфигурации, которые вы установите на панели управления Remote Config позже в этой лаборатории кода.
  2. В executeTasksBasedOnRC() мы читаем значение конфигурации флага seasonal_image_url . Если URL предоставляется значением конфигурации, мы загружаем изображение синхронно.
  3. После завершения загрузки приложение переходит к MainActivity и вызывает finish() для завершения SplashScreenActivity .

Если в MainActivity через Remote Config определено seasonal_image_url , функция будет включена, а загруженное изображение будет отображаться в качестве фона главной страницы. В противном случае будет отображаться изображение по умолчанию (показано выше).

4. Настройте удаленную настройку

Теперь, когда ваше приложение запущено, вы можете установить флаг новой функции.

  1. На левой панели консоли Firebase найдите раздел Engage , затем нажмите Remote Config .
  2. Нажмите кнопку «Создать конфигурацию» , чтобы открыть форму конфигурации и добавить seasonal_image_url в качестве ключа параметра.
  3. Нажмите «Добавить описание» и введите следующее описание: Shows a seasonal image (replaces default) in the main page when the restaurant list is empty.
  4. Щелкните Добавить новое -> Условное значение -> Создать новое условие .
  5. В качестве названия условия введите Seasonal image rollout .
  6. В разделе Applies if... выберите User in random percentile <= 0% . (Вы хотите оставить эту функцию отключенной, пока не будете готовы к развертыванию на более позднем этапе.)
  7. Щелкните Создать условие . Вы будете использовать это условие позже, чтобы развернуть новую функцию для своих пользователей.

7a07526eb9e81623.png

  1. Откройте форму «Создайте свой первый параметр» и найдите поле «Значение для сезонного изображения» . Введите URL-адрес, по которому будет загружено сезонное изображение: https://images.unsplash.com/photo-1552691021-7043334e0b51 .
  2. Оставьте значение по умолчанию в виде пустой строки. Это означает, что будет показано изображение по умолчанию в кодовой базе, а не изображение, загруженное с URL-адреса.
  3. Нажмите Сохранить .

99e6cd2ebcdced.png

Вы можете видеть, что новый конфиг создан как черновик.

  1. Нажмите Опубликовать изменения и подтвердите изменения вверху, чтобы обновить приложение.

39cd3e96d370c7ce.png

5. Добавьте мониторинг времени загрузки данных

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

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

Чтобы отслеживать, как долго отображается экран-заставка, вы добавите пользовательскую трассировку кода в SplashScreenActivity , которая является Activity , реализующим экран-заставку.

  1. Инициализируйте, создайте и запустите пользовательскую трассировку кода с именем splash_screen_trace :

SplashScreenActivity.java

// ...
import com.google.firebase.perf.FirebasePerformance;
import com.google.firebase.perf.metrics.Trace;
// ...

public class SplashScreenActivity extends AppCompatActivity {

    private static final String TAG = "SplashScreenActivity";
    private static final String SEASONAL_IMAGE_URL_RC_FLAG = "seasonal_image_url";

    // TODO: Initialize splash_screen_trace
    private final Trace splashScreenTrace = FirebasePerformance.startTrace("splash_screen_trace");
    
    // ...
}
  1. Завершите трассировку в методе onDestroy() SplashScreenActivity :

SplashScreenActivity.java

@Override
protected void onDestroy() {
    super.onDestroy();

    // TODO: Stop the splash_screen_trace here
    splashScreenTrace.stop();
}

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

  1. Инициализируйте, создайте и запустите пользовательскую трассировку кода с именем splash_seasonal_image_processing :

SplashScreenActivity.java

private void executeTasksBasedOnRC(FirebaseRemoteConfig rcConfig) {
    String seasonalImageUrl = rcConfig.getString(SEASONAL_IMAGE_URL_RC_FLAG);
    Log.d(TAG, SEASONAL_IMAGE_URL_RC_FLAG + ": " + seasonalImageUrl);

    if (!seasonalImageUrl.isEmpty()) {
        // TODO: Start the splash_seasonal_image_processing here
        final Trace seasonalImageProcessingTrace = FirebasePerformance
            .startTrace("splash_seasonal_image_processing");

        // ...
    }
}
  1. Завершите трассировку в методах onLoadFailed() и onResourceReady() RequestListener :

SplashScreenActivity.java

Glide.with(SplashScreenActivity.this.getApplicationContext())
    .asBitmap()
    .load(seasonalImageUrl)
    .signature(new ObjectKey(Utils.getCacheUUID()))
    .listener(new RequestListener<Bitmap>() {
        @Override
        public boolean onLoadFailed(
            @Nullable GlideException e,
            Object model, Target<Bitmap> target,
            boolean isFirstResource) {

            // TODO: Stop the splash_seasonal_image_processing here
            seasonalImageProcessingTrace.stop();

            launchMainActivity();
            return true;
        }

        @Override
        public boolean onResourceReady(Bitmap resource, Object model,
            Target<Bitmap> target, DataSource dataSource,
            boolean isFirstResource) {

            // TODO: Stop the splash_seasonal_image_processing here
            seasonalImageProcessingTrace.stop();

            launchMainActivity();
            return true;
        }
     })
     .preload();

Теперь, когда вы добавили пользовательские трассировки кода для отслеживания продолжительности экрана-заставки ( splash_screen_trace) и времени обработки новой функции ( splash_seasonal_image_processing ), снова запустите приложение в Android Studio. Вы должны увидеть сообщение журнала, содержащее Logging trace metric: splash_screen_trace , за которой следует продолжительность трассировки. Вы не увидите сообщение в журнале для splash_seasonal_image_processing , потому что вы еще не включили новую функцию.

6. Добавьте в трассировку настраиваемый атрибут

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

В свое приложение вы только что добавили две настраиваемые трассировки кода для отслеживания продолжительности экрана-заставки и времени обработки новой функции. Фактор, который может повлиять на эти продолжительности, заключается в том, является ли отображаемое изображение изображением по умолчанию или изображение должно быть загружено с URL-адреса. И кто знает, в конечном итоге у вас могут быть разные URL-адреса, с которых вы загружаете изображение.

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

  1. Добавьте пользовательский атрибут ( seasonal_image_url_attribute ) для splash_screen_trace в начале метода executeTasksBasedOnRC :

SplashScreenActivity.java

private void executeTasksBasedOnRC(FirebaseRemoteConfig rcConfig) {
    String seasonalImageUrl = rcConfig.getString(SEASONAL_IMAGE_URL_RC_FLAG);
    Log.d(TAG, SEASONAL_IMAGE_URL_RC_FLAG + ": " + seasonalImageUrl);

    // TODO: Add a custom attribute "seasonal_image_url_attribute" to splash_screen_trace
    if (seasonalImageUrl.isEmpty()) {
        splashScreenTrace.putAttribute("seasonal_image_url_attribute", "unset");
    } else {
        splashScreenTrace.putAttribute("seasonal_image_url_attribute", seasonalImageUrl);
    }

    // ...
}
  1. Добавьте тот же настраиваемый атрибут для splash_seasonal_image_processing сразу после вызова startTrace("splash_seasonal_image_processing") :

SplashScreenActivity.java

if (!seasonalImageUrl.isEmpty()) {
    // TODO: Start the splash_seasonal_image_processing here
    final Trace seasonalImageProcessingTrace = FirebasePerformance
        .startTrace("splash_seasonal_image_processing");

    // TODO: Add a custom attribute "seasonal_image_url_attribute" to splash_seasonal_image_processing
    seasonalImageProcessingTrace
        .putAttribute("seasonal_image_url_attribute", seasonalImageUrl);

    // ...
}

Теперь, когда вы добавили пользовательский атрибут ( seasonal_image_url_attribute ) для обеих ваших пользовательских трассировок ( splash_screen_trace и splash_seasonal_image_processing ), снова запустите приложение в Android Studio. Вы должны увидеть сообщение журнала, содержащее Setting attribute 'seasonal_image_url_attribute' to 'unset' on trace 'splash_screen_trace'. Вы еще не включили параметр SeasonImageUrl Remote Config, поэтому значение атрибута unset .

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

7. Настройте панель мониторинга производительности

Настройте панель инструментов для мониторинга вашей функции

В консоли Firebase выберите проект, в котором есть ваше приложение Friendly Eats.

На левой панели найдите раздел «Выпуск и мониторинг» , затем нажмите «Производительность» .

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

f57e5450b70034c9.png

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

  1. Нажмите на одно из пустых полей Выберите показатель .
  2. В диалоговом окне выберите тип трассировки Пользовательские трассировки и имя трассировки splash_screen_trace .

1fb81f4dba3220e0.png

  1. Нажмите Select metric , и вы должны увидеть продолжительность splash_screen_trace , добавленную на вашу панель управления!

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

1d465c021e58da3b.png

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

8. Разверните свою функцию

Теперь, когда вы настроили мониторинг, вы готовы развернуть изменение удаленной конфигурации Firebase ( seasonal_image_url) , которое вы настроили ранее.

Чтобы развернуть изменение, вы вернетесь на страницу Remote Config в консоли Firebase, чтобы увеличить пользовательский процентиль вашего условия таргетинга. Обычно вы развертываете новые функции для небольшой части пользователей и расширяете их только тогда, когда уверены, что с ними нет проблем. Однако в этой лаборатории кода вы являетесь единственными пользователями приложения, поэтому вы можете изменить процентиль на 100%.

  1. Перейдите на вкладку «Условия» в верхней части страницы.
  2. Нажмите на добавленное ранее условие Seasonal image rollout .
  3. Измените процентиль на 100%.
  4. Щелкните Сохранить условие .
  5. Нажмите Опубликовать изменения и подтвердите изменения.

70f993502b27e7a0.png

Вернувшись в Android Studio, перезапустите приложение в эмуляторе, чтобы увидеть новую функцию. После заставки вы должны увидеть новый главный экран пустого состояния!

b0cc91b6e48fb842.png

9. Проверьте изменения производительности

Теперь давайте проверим производительность загрузки заставки с помощью панели производительности в консоли Firebase. На этом этапе лаборатории кода вы будете использовать различные части панели мониторинга для просмотра данных о производительности.

  1. На главной вкладке Dashboard прокрутите вниз до таблицы трассировок, затем щелкните вкладку Пользовательские трассировки . В этой таблице вы увидите пользовательские трассировки кода, которые вы добавили ранее, а также некоторые готовые трассировки .
  2. Теперь, когда вы включили новую функцию, найдите трассировку пользовательского кода splash_seasonal_image_processing , которая измеряет время, необходимое для загрузки и обработки изображения. Из значения Duration трассировки видно, что эта загрузка и обработка занимают значительное количество времени.

439adc3ec71805b7.png

  1. Поскольку у вас есть данные для splash_seasonal_image_processing , вы можете добавить продолжительность этой трассировки на панель показателей в верхней части вкладки «Панель мониторинга» .

Как и раньше, щелкните одно из пустых полей Выберите показатель . В диалоговом окне выберите тип трассировки Пользовательские трассировки и имя трассы splash_seasonal_image_processing . Наконец, нажмите «Выбрать показатель» , чтобы добавить этот показатель на доску показателей.

7fb64d2340410576.png

  1. Чтобы еще больше подтвердить различия, вы можете более внимательно изучить данные для splash_screen_trace . Щелкните карточку splash_screen_trace на доске метрик, затем щелкните Просмотреть сведения о метрике .

b1c275c30679062a.png

  1. На странице сведений вы увидите список атрибутов в левом нижнем углу, включая настраиваемый атрибут, который вы создали ранее. Щелкните пользовательский атрибут seasonal_image_url_attribute , чтобы просмотреть продолжительность экрана-заставки для каждого URL-адреса сезонного изображения справа:

8fa1a69019bb045e.png

  1. Значения длительности экрана-заставки, вероятно, будут немного отличаться от показанных на снимке экрана выше, но у вас должна быть более длительная продолжительность , когда изображение загружается с URL-адреса, по сравнению с использованием изображения по умолчанию (обозначенного как «не задано»).

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

  1. Нажмите «Производительность» в верхней части страницы, чтобы вернуться на главную вкладку «Панель мониторинга» : 640b696b79d90103.png
  2. В таблице трассировок внизу страницы щелкните вкладку Сетевые запросы . В этой таблице вы увидите все сетевые запросы от вашего приложения , объединенные в шаблоны URL , включая шаблон URL images.unsplash.com/** . Если вы сравните значение этого времени отклика с общим временем, которое требуется для загрузки и обработки изображения (т. е. длительностью трассировки splash_seasonal_image_processing ), вы увидите, что большое количество времени тратится на загрузку изображения.

6f92ce0f23494507.png

Выводы по производительности

Используя Firebase Performance Monitoring, вы увидели следующее влияние на конечных пользователей с включенной новой функцией:

  1. Время, затрачиваемое на SplashScreenActivity увеличилось.
  2. Продолжительность splash_seasonal_image_processing была очень большой.
  3. Задержка произошла из-за времени отклика на загрузку изображения и соответствующего времени обработки, необходимого для изображения.

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

10. Откатить функцию

Увеличение времени ожидания ваших пользователей во время заставки нежелательно. Одним из ключевых преимуществ Remote Config является возможность приостановить и отменить развертывание без необходимости выпуска новой версии для ваших пользователей. Это позволяет быстро реагировать на проблемы (например, проблемы с производительностью, которые вы обнаружили на последнем шаге) и свести к минимуму количество недовольных пользователей.

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

  1. Вернитесь на страницу Remote Config в консоли Firebase.
  2. Нажмите «Условия» в верхней части страницы.
  3. Нажмите на добавленное ранее условие Seasonal image rollout .
  4. Измените процентиль на 0%.
  5. Щелкните Сохранить условие .
  6. Нажмите Опубликовать изменения и подтвердите изменения.

18c4f1cbac955a04.png

Перезапустите приложение в Android Studio, и вы должны увидеть исходный главный экран пустого состояния:

d946cab0df319e50.png

11. Исправьте проблемы с производительностью

Ранее в лаборатории кода вы обнаружили, что загрузка изображения для заставки вызывала замедление работы вашего приложения. Присмотревшись к скачанному изображению, вы увидите, что используете исходное разрешение изображения, которое превышало 2 МБ! Одним из быстрых способов решения проблемы с производительностью является снижение качества до более подходящего разрешения, чтобы загрузка изображения занимала меньше времени.

Повторно разверните значение Remote Config.

  1. Вернитесь на страницу Remote Config в консоли Firebase.
  2. Щелкните значок «Изменить» для параметра seasonal_image_url .
  3. Обновите значение для развертывания сезонных изображений до https://images.unsplash.com/photo-1552691021-7043334e0b51?w=640 , затем нажмите «Сохранить» .

828dd1951a2ec4a4.png

  1. Нажмите на вкладку «Условия» в верхней части страницы.
  2. Нажмите «Развертка сезонных изображений» и снова установите процентиль на 100 %.
  3. Щелкните Сохранить условие .

1974fa3bb789f36c.png

  1. Нажмите на кнопку Опубликовать изменения .

12. Протестируйте исправление и настройте оповещения

Запустите приложение локально

С новым значением конфигурации, установленным для использования другого URL-адреса загружаемого изображения, снова запустите приложение. На этот раз вы должны заметить, что время, проведенное на заставке, меньше, чем раньше.

b0cc91b6e48fb842.png

Просмотр эффективности изменений

Вернитесь на панель производительности в консоли Firebase, чтобы увидеть, как выглядят показатели.

  1. На этот раз вы будете использовать таблицу traces для перехода на страницу сведений. Внизу в таблице трассировок на вкладке Пользовательские трассировки щелкните настраиваемую трассировку splash_seasonal_image_processing , чтобы снова увидеть более подробное представление ее метрики продолжительности.

2d7aaca03112c062.png

  1. Щелкните настраиваемый атрибут seasonal_image_url_attribute , чтобы снова увидеть разбивку настраиваемых атрибутов. Если вы наведете курсор на URL-адреса, вы увидите значение, соответствующее новому URL-адресу изображения уменьшенного размера: https://images.unsplash.com/photo-1552691021-7043334e0b51?w=640?w=640 в конце). Значение продолжительности, связанное с этим изображением, значительно короче значения для предыдущего изображения и более приемлемо для ваших пользователей!

10e30c037a4237a2.png

  1. Теперь, когда вы улучшили производительность экрана-заставки, вы можете настроить оповещения, чтобы уведомлять вас, когда трассировка превышает установленный вами порог. Откройте панель мониторинга производительности , щелкните значок дополнительного меню (три точки) для splash_screen_trace и щелкните Параметры предупреждений .

4bd0a2a1faa14479.png

  1. Щелкните переключатель, чтобы включить оповещение о продолжительности . Установите пороговое значение немного выше значения, которое вы видели, чтобы, если ваш splash_screen_trace превысит пороговое значение, вы получили электронное письмо.
  1. Нажмите Сохранить , чтобы создать оповещение. Прокрутите вниз до таблицы трассировок , затем щелкните вкладку Пользовательские трассировки , чтобы убедиться, что оповещение включено!

2bb93639e2218d1.png

13. Поздравляем!

Поздравляем! Вы включили Firebase Performance Monitoring SDK и собрали трассировки для измерения производительности новой функции! Вы отслеживали ключевые показатели производительности для развертывания новой функции и быстро реагировали на обнаружение проблем с производительностью. Все это стало возможным благодаря возможности вносить изменения в конфигурацию с помощью Remote Config и отслеживать проблемы с производительностью в режиме реального времени.

Что мы рассмотрели

  • Добавление Firebase Performance Monitoring SDK в ваше приложение
  • Добавление пользовательской трассировки кода в ваш код для измерения конкретной функции
  • Настройка параметра Remote Config и условного значения для управления/развертывания новой функции
  • Понимание того, как использовать панель мониторинга производительности для выявления проблем во время развертывания.
  • Настройка предупреждений о производительности, чтобы уведомлять вас, когда производительность вашего приложения превышает установленный вами порог.

Узнать больше