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

1. Обзор

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

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

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

Предварительные условия

  • 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-студию. На панели «Ассистент» вы увидите подтверждение того, что ваше приложение подключено к Firebase.

40c24c4a56a45990.png

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

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

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

3046f3e1f5fea06f.png

Наконец, вы должны увидеть сообщение об успехе на панели «Ассистент» в 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 , если seasonal_image_url определен через Remote Config, эта функция будет включена, и загруженное изображение будет отображаться в качестве фона главной страницы. В противном случае будет отображено изображение по умолчанию (показанное выше).

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 удаленной конфигурации, поэтому значение атрибута не unset .

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

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

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

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

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

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

f57e5450b70034c9.png

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

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

1fb81f4dba3220e0.png

  1. Нажмите «Выбрать метрику» , и вы увидите продолжительность splash_screen_trace , добавленную на вашу панель мониторинга!

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

1d465c021e58da3b.png

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

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

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

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

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

70f993502b27e7a0.png

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

b0cc91b6e48fb842.png

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

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

  1. На главной вкладке «Панель мониторинга» прокрутите вниз до таблицы трассировок, затем щелкните вкладку «Пользовательские трассировки» . В этой таблице вы увидите добавленные ранее трассировки пользовательского кода, а также некоторые готовые трассировки .
  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, вы заметили следующее влияние на конечных пользователей с включенной новой функцией:

  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. На этот раз вы будете использовать таблицу трассировок для перехода на страницу сведений. Внизу в таблице трассировок на вкладке «Пользовательские трассировки» щелкните пользовательскую трассировку 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 и отслеживать проблемы с производительностью в режиме реального времени.

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

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

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