Performance Monitoring para lanzamientos de funciones

1. Descripción general

En este codelab, aprenderás a supervisar el rendimiento de tu app durante el lanzamiento de una función. Nuestra app de ejemplo tendrá una funcionalidad básica y está configurada para mostrar una imagen de fondo diferente según una marca de Firebase Remote Config. Analizaremos los seguimientos de instrumentación para supervisar el rendimiento de la app, implementar un cambio de configuración en la app, supervisar el efecto y ver cómo podemos mejorar el rendimiento.

Qué aprenderás

  • Cómo agregar Firebase Performance Monitoring a tu app para dispositivos móviles para obtener métricas listas para usar (como la hora de inicio de la app y los fotogramas lentos o congelados)
  • Cómo agregar seguimientos personalizados para comprender las instrucciones de código críticas de tus recorridos del usuario
  • Cómo usar el panel de Performance Monitoring para comprender tus métricas y hacer un seguimiento de los cambios importantes, como el lanzamiento de una función
  • Cómo configurar alertas de rendimiento para supervisar tus métricas clave
  • Cómo lanzar un cambio de Firebase Remote Config

Requisitos previos

  • Android Studio 4.0 o una versión posterior
  • Un emulador de Android con nivel de API 16 o superior
  • Java 8 o una versión posterior
  • Conocimientos básicos de Firebase Remote Config

2. Configura el proyecto de ejemplo

Descarga el código

Ejecuta el siguiente comando para clonar el código de muestra de este codelab. Se creará una carpeta llamada codelab-perf-rc-android en tu máquina:

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

Si no tienes Git en tu máquina, también puedes descargar el código directamente desde GitHub.

Importa el proyecto de la carpeta firebase-perf-rc-android-start a Android Studio. Es probable que veas algunas excepciones del tiempo de ejecución o una advertencia sobre un archivo google-services.json faltante. Corregiremos esto en la siguiente sección.

En este codelab, usarás el complemento Firebase Assistant para registrar tu app para Android con un proyecto de Firebase y agregar los archivos de configuración, los complementos y las dependencias de Firebase necesarios al proyecto de Android, todo desde Android Studio.

Cómo conectar tu app a Firebase

  1. Ve a Android Studio/Ayuda > Buscar actualizaciones para asegurarte de estar usando las versiones más recientes de Android Studio y Firebase Assistant.
  2. Selecciona Tools > Firebase para abrir el panel Asistente.

c0e42ef063d21eab.png

  1. Elige Performance Monitoring para agregarlo a tu app y, luego, haz clic en Comienza a usar Performance Monitoring.
  2. Haz clic en Conectarse a Firebase para conectar tu proyecto de Android con Firebase (se abrirá Firebase console en tu navegador).
  3. En Firebase console, haz clic en Agregar proyecto y, luego, ingresa un nombre para el proyecto de Firebase (si ya tienes un proyecto de Firebase, puedes seleccionar ese proyecto existente). Haz clic en Continuar y acepta las condiciones para crear el proyecto de Firebase y una nueva app de Firebase.

A continuación, deberías ver un diálogo para conectar tu nueva app de Firebase a tu proyecto de Android Studio.

51a549ebde2fe57a.png

  1. Haz clic en Conectar.
  2. Abre Android Studio. En el panel Assistant, verás la confirmación de que tu app está conectada a Firebase.

40c24c4a56a45990.png

Agrega Performance Monitoring a tu app

En el panel Assistant de Android Studio, haz clic en Add Performance Monitoring to your app.

Deberías ver un diálogo para aceptar los cambios. Luego, Android Studio debería sincronizar tu app para asegurarse de que se hayan agregado todas las dependencias necesarias.

3046f3e1f5fea06f.png

Por último, deberías ver el mensaje de éxito en el panel Assistant de Android Studio que indica que todas las dependencias están configuradas correctamente.

62e79fd18780e320.png

Como paso adicional, habilita el registro de depuración siguiendo las instrucciones del paso "Habilita el registro de depuración (opcional)". Las mismas instrucciones también están disponibles en la documentación pública.

3. Ejecuta la app

Ahora deberías ver el archivo google-services.json en el directorio del módulo (nivel de app) de tu app, y esta debería compilarse. En Android Studio, haz clic en Run > Run “app” para compilar y ejecutar la app en tu emulador de Android.

Cuando la app esté en ejecución, primero deberías ver una pantalla de presentación como esta:

ffbd413a6983b205.png

Luego, después de unos segundos, se mostrará la página principal con la imagen predeterminada:

d946cab0df319e50.png

¿Qué sucede bajo la superficie?

La pantalla de presentación se implementa en SplashScreenActivity y hace lo siguiente:

  1. En onCreate(), inicializamos la configuración de Firebase Remote Config y recuperamos los valores de configuración que establecerás en el panel de Remote Config más adelante en este codelab.
  2. En executeTasksBasedOnRC(), leemos el valor de configuración de la marca seasonal_image_url. Si el valor de configuración proporciona una URL, descargamos la imagen de forma síncrona.
  3. Una vez que se completa la descarga, la app navega a MainActivity y llama a finish() para finalizar SplashScreenActivity.

En MainActivity, si seasonal_image_url se define a través de Remote Config, se habilitará la función y la imagen descargada se mostrará como fondo de la página principal. De lo contrario, se mostrará la imagen predeterminada (que se muestra arriba).

4. Configura Remote Config

Ahora que tu app se está ejecutando, puedes configurar la nueva marca de función.

  1. En el panel izquierdo de Firebase console, busca la sección Engage y, luego, haz clic en Remote Config.
  2. Haz clic en el botón Create configuration para abrir el formulario de configuración y agrega seasonal_image_url como clave de parámetro.
  3. Haz clic en Agregar descripción y, luego, ingresa esta descripción: Shows a seasonal image (replaces default) in the main page when the restaurant list is empty.
  4. Haz clic en Agregar -> Valor condicional -> Crear condición nueva.
  5. En el nombre de la condición, ingresa Seasonal image rollout.
  6. En la sección Applies if..., selecciona User in random percentile <= 0%. (Te recomendamos que dejes la función inhabilitada hasta que esté todo listo para el lanzamiento en un paso posterior).
  7. Haz clic en Crear condición. Más adelante, usarás esta condición para lanzar la nueva función a tus usuarios.

7a07526eb9e81623.png

  1. Abre el formulario para crear tu primer parámetro y busca el campo Valor para el lanzamiento de imágenes de temporada. Ingresa la URL a la que se descargará la imagen de temporada: https://images.unsplash.com/photo-1552691021-7043334e0b51
  2. Deja el valor predeterminado como una cadena vacía. Esto significa que se mostrará la imagen predeterminada en la base de código en lugar de una imagen descargada de una URL.
  3. Haz clic en Guardar.

99e6cd2ebcdced.png

Puedes ver que la nueva configuración se crea como un borrador.

  1. Haz clic en Publicar cambios y confirma los cambios en la parte superior para actualizar la app.

39cd3e96d370c7ce.png

5. Agrega supervisión del tiempo de carga de datos

Tu app carga previamente algunos datos antes de mostrar MainActivity y muestra una pantalla de presentación para ocultar este proceso. No quieres que los usuarios esperen demasiado en esta pantalla, por lo que, por lo general, es conveniente supervisar durante cuánto tiempo se muestra la pantalla de presentación.

Firebase Performance Monitoring proporciona una forma de hacerlo. Puedes instrumentar seguimientos de código personalizados para supervisar el rendimiento de código específico en tu app, como el tiempo de carga de los datos y el tiempo de procesamiento de tu nueva función.

Para hacer un seguimiento del tiempo que se muestra la pantalla de presentación, agregarás un seguimiento de código personalizado a SplashScreenActivity, que es el Activity que implementa la pantalla de presentación.

  1. Inicializa, crea y, luego, inicia un seguimiento de código personalizado llamado 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. Finaliza el seguimiento en el método onDestroy() de SplashScreenActivity:

SplashScreenActivity.java

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

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

Dado que tu nueva función descarga y procesa una imagen, agregarás un segundo seguimiento de código personalizado que hará un seguimiento del tiempo adicional que tu función agregó a SplashScreenActivity.

  1. Inicializa, crea y, luego, inicia un seguimiento de código personalizado llamado 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. Finaliza el seguimiento en los métodos onLoadFailed() y onResourceReady() de 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();

Ahora que agregaste registros de código personalizados para hacer un seguimiento de la duración de la pantalla de presentación (splash_screen_trace)) y el tiempo de procesamiento de la nueva función (splash_seasonal_image_processing), vuelve a ejecutar la app en Android Studio. Deberías ver un mensaje de registro que contenga Logging trace metric: splash_screen_trace, seguido de la duración del seguimiento. No verás un mensaje de registro para splash_seasonal_image_processing porque aún no habilitaste la nueva función.

6. Agrega un atributo personalizado al seguimiento

En el caso de los seguimientos de código personalizados, Performance Monitoring registra automáticamente los atributos predeterminados (metadatos comunes, como la versión de la app, el país, el dispositivo, etc.) para que puedas filtrar los datos del seguimiento en Firebase console. También puedes agregar y supervisar atributos personalizados.

En tu app, acabas de agregar dos seguimientos de código personalizados para supervisar la duración de la pantalla de presentación y el tiempo de procesamiento de la nueva función. Un factor que podría afectar estas duraciones es si la imagen que se muestra es la predeterminada o si se debe descargar desde una URL. Y quién sabe, tal vez con el tiempo tengas diferentes URLs desde las que descargues una imagen.

Por lo tanto, agreguemos un atributo personalizado que represente la URL de la imagen de temporada a estos seguimientos de código personalizados. De esta manera, podrás filtrar los datos de duración por estos valores más adelante.

  1. Agrega el atributo personalizado (seasonal_image_url_attribute) para splash_screen_trace al comienzo del método 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. Agrega el mismo atributo personalizado para splash_seasonal_image_processing justo después de la llamada a 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);

    // ...
}

Ahora que agregaste un atributo personalizado (seasonal_image_url_attribute) para tus dos registros personalizados (splash_screen_trace y splash_seasonal_image_processing), vuelve a ejecutar la app en Android Studio. Deberías ver un mensaje de registro que contiene Setting attribute 'seasonal_image_url_attribute' to 'unset' on trace 'splash_screen_trace'. Aún no habilitaste el parámetro de Remote Config seasonalImageUrl, por lo que el valor del atributo es unset.

El SDK de Performance Monitoring recopilará los datos de seguimiento y los enviará a Firebase. Puedes ver los datos en el panel Rendimiento de Firebase console, que explicaremos en detalle en el siguiente paso del codelab.

7. Configura tu panel de Performance Monitoring

Configura tu panel para supervisar tu función

En Firebase console, selecciona el proyecto que tiene tu app de Friendly Eats.

En el panel izquierdo, busca la sección Lanzamiento y supervisión y, luego, haz clic en Rendimiento.

Deberías ver el panel Rendimiento con tus primeros datos en el panel de métricas. El SDK de Performance Monitoring recopila datos de rendimiento de tu app y los muestra en cuestión de minutos después de la recopilación.

f57e5450b70034c9.png

En este panel de métricas, puedes hacer un seguimiento de las métricas clave de tu app. La vista predeterminada incluye la duración del seguimiento del tiempo de inicio de la app, pero puedes agregar las métricas que más te interesan. Como estás haciendo un seguimiento de la nueva función que agregaste, puedes personalizar tu panel para que muestre la duración del seguimiento de código personalizado splash_screen_trace.

  1. Haz clic en uno de los cuadros vacíos Selecciona una métrica.
  2. En la ventana de diálogo, selecciona el tipo de registro Registros personalizados y el nombre del registro splash_screen_trace.

1fb81f4dba3220e0.png

  1. Haz clic en Seleccionar métrica y deberías ver la duración de splash_screen_trace agregada a tu panel.

Puedes usar estos mismos pasos para agregar otras métricas que te interesen, de modo que puedas ver rápidamente cómo cambia su rendimiento con el tiempo y hasta con diferentes versiones.

1d465c021e58da3b.png

El panel de métricas es una herramienta eficaz para hacer un seguimiento del rendimiento de las métricas clave que experimentan tus usuarios. En este codelab, tienes un conjunto pequeño de datos en un período breve, por lo que usarás otras vistas del panel que te ayudarán a comprender el rendimiento del lanzamiento de la función.

8. Lanza tu función

Ahora que configuraste la supervisión, ya puedes lanzar el cambio de Firebase Remote Config (seasonal_image_url) que configuraste antes.

Para lanzar un cambio, deberás volver a la página de Remote Config en Firebase console para aumentar el porcentaje de usuarios de tu condición de segmentación. Por lo general, lanzarías funciones nuevas a una pequeña parte de los usuarios y las aumentarías solo cuando estés seguro de que no hay problemas con ellas. Sin embargo, en este codelab, eres el único usuario de la app, por lo que puedes cambiar el porcentaje al 100%.

  1. Haz clic en la pestaña Condiciones en la parte superior de la página.
  2. Haz clic en la condición Seasonal image rollout que agregaste antes.
  3. Cambia el percentil al 100%.
  4. Haz clic en Guardar condición.
  5. Haz clic en Publicar cambios y confirma los cambios.

70f993502b27e7a0.png

En Android Studio, reinicia la app en el emulador para ver la nueva función. Después de la pantalla de presentación, deberías ver la nueva pantalla principal del estado vacío.

b0cc91b6e48fb842.png

9. Verifica los cambios en el rendimiento

Ahora, revisemos el rendimiento de la carga de la pantalla de presentación con el panel Rendimiento en Firebase console. En este paso del codelab, usarás diferentes partes del panel para ver los datos de rendimiento.

  1. En la pestaña principal Panel, desplázate hacia abajo hasta la tabla de seguimientos y, luego, haz clic en la pestaña Seguimientos personalizados. En esta tabla, verás los seguimientos de código personalizados que agregaste antes, además de algunos seguimientos listos para usar.
  2. Ahora que habilitaste la nueva función, busca el registro de código personalizado splash_seasonal_image_processing, que midió el tiempo que tardó en descargarse y procesarse la imagen. En el valor Duration del seguimiento, puedes ver que esta descarga y procesamiento tardan una cantidad significativa de tiempo.

439adc3ec71805b7.png

  1. Como tienes datos de splash_seasonal_image_processing, puedes agregar la duración de este seguimiento a tu panel de métricas en la parte superior de la pestaña Panel.

Al igual que antes, haz clic en uno de los cuadros vacíos Seleccionar una métrica. En la ventana de diálogo, selecciona el tipo de registro Registros personalizados y el nombre del registro splash_seasonal_image_processing. Por último, haz clic en Seleccionar métrica para agregarla al panel de métricas.

7fb64d2340410576.png

  1. Para confirmar aún más las diferencias, puedes analizar con mayor detalle los datos de splash_screen_trace. Haz clic en la tarjeta splash_screen_trace en el panel de métricas y, luego, en Ver los detalles de la métrica.

b1c275c30679062a.png

  1. En la página de detalles, verás una lista de atributos en la parte inferior izquierda, incluido el atributo personalizado que creaste antes. Haz clic en el atributo personalizado seasonal_image_url_attribute para ver la duración de la pantalla de presentación de cada URL de imagen de temporada a la derecha:

8fa1a69019bb045e.png

  1. Es probable que los valores de duración de la pantalla de presentación sean un poco diferentes de los de la captura de pantalla anterior, pero deberías tener una duración más larga cuando la imagen se descargue desde una URL en lugar de usar la imagen predeterminada (representada por "unset").

En este codelab, el motivo de esta duración más larga puede ser sencillo, pero en una app real, es posible que no sea tan obvio. Los datos de duración recopilados provendrán de diferentes dispositivos que ejecutan la app en varias condiciones de conexión de red, y estas condiciones podrían ser peores de lo que esperas. Veamos cómo investigarías este problema si fuera una situación real.

  1. Haz clic en Rendimiento en la parte superior de la página para volver a la pestaña principal Panel: 640b696b79d90103.png
  2. En la tabla de seguimientos que aparece en la parte inferior de la página, haz clic en la pestaña Solicitudes de red. En esta tabla, verás todas las solicitudes de red de tu app agrupadas en patrones de URL, incluido el patrón de URL images.unsplash.com/**. Si comparas el valor de este tiempo de respuesta con el tiempo total que se tarda en descargar y procesar la imagen (es decir, la duración del seguimiento de splash_seasonal_image_processing), puedes ver que se dedica una gran cantidad de tiempo a descargar la imagen.

6f92ce0f23494507.png

Resultados de rendimiento

Con Firebase Performance Monitoring, observaste el siguiente impacto en los usuarios finales con la función nueva habilitada:

  1. El tiempo dedicado a SplashScreenActivity aumentó.
  2. La duración de splash_seasonal_image_processing era muy grande.
  3. La demora se debió al tiempo de respuesta de la descarga de la imagen y al tiempo de procesamiento correspondiente que se necesitaba para la imagen.

En el siguiente paso, mitigarás el impacto en el rendimiento restableciendo la función y determinando cómo puedes mejorar su implementación.

10. Revierte la función

No es conveniente aumentar el tiempo de espera de los usuarios durante la pantalla de presentación. Uno de los beneficios clave de Remote Config es la capacidad de pausar y revertir el lanzamiento sin tener que lanzar otra versión para los usuarios. Esto te permite reaccionar rápidamente a los problemas (como los problemas de rendimiento que descubriste en el último paso) y minimizar la cantidad de usuarios descontentos.

Como mitigación rápida, restablecerás el porcentaje de lanzamiento a 0 para que todos tus usuarios vuelvan a ver la imagen predeterminada:

  1. Regresa a la página Remote Config en Firebase console.
  2. En la parte superior de la página, haz clic en Condiciones.
  3. Haz clic en la condición Seasonal image rollout que agregaste antes.
  4. Cambia el percentil a 0%.
  5. Haz clic en Guardar condición.
  6. Haz clic en Publicar cambios y confirma los cambios.

18c4f1cbac955a04.png

Reinicia la app en Android Studio y deberías ver la pantalla principal del estado vacío original:

d946cab0df319e50.png

11. Cómo solucionar los problemas de rendimiento

Antes en el codelab, descubriste que descargar una imagen para la pantalla de presentación causaba la ralentización de la app. Si observas con mayor detalle la imagen descargada, verás que estás usando la resolución original de la imagen, que era de más de 2 MB. Una solución rápida para el problema de rendimiento es reducir la calidad a una resolución más apropiada para que la imagen tarde menos tiempo en descargarse.

Vuelve a lanzar el valor de Remote Config

  1. Regresa a la página Remote Config en Firebase console.
  2. Haz clic en el ícono Editar del parámetro seasonal_image_url.
  3. Actualiza el valor para el lanzamiento de imágenes de temporada a https://images.unsplash.com/photo-1552691021-7043334e0b51?w=640 y, luego, haz clic en Guardar.

828dd1951a2ec4a4.png

  1. Haz clic en la pestaña Condiciones en la parte superior de la página.
  2. Haz clic en Lanzamiento de imágenes de temporada y, luego, vuelve a establecer el porcentaje en 100%.
  3. Haz clic en Guardar condición.

1974fa3bb789f36c.png

  1. Haz clic en el botón Publicar cambios.

12. Prueba la solución y configura alertas

Ejecuta la app de manera local

Con el nuevo valor de configuración establecido para usar una URL de imagen de descarga diferente, vuelve a ejecutar la app. Esta vez, deberías notar que el tiempo que se pasa en la pantalla de presentación es más corto que antes.

b0cc91b6e48fb842.png

Consulta el rendimiento de los cambios

Regresa al panel Rendimiento de Firebase console para ver cómo se ven las métricas.

  1. Esta vez, usarás la tabla de seguimientos para navegar a la página de detalles. En la parte inferior de la tabla de seguimientos, en la pestaña Seguimientos personalizados, haz clic en el seguimiento personalizado splash_seasonal_image_processing para volver a ver una vista más detallada de su métrica de duración.

2d7aaca03112c062.png

  1. Haz clic en el atributo personalizado seasonal_image_url_attribute para volver a ver el desglose de los atributos personalizados. Si colocas el cursor sobre las URLs, verás un valor que coincide con la URL nueva de la imagen de tamaño reducido: https://images.unsplash.com/photo-1552691021-7043334e0b51?w=640 (con el ?w=640 al final). El valor de duración asociado con esta imagen es considerablemente más corto que el de la imagen anterior y es más aceptable para tus usuarios.

10e30c037a4237a2.png

  1. Ahora que mejoraste el rendimiento de la pantalla de presentación, puedes configurar alertas para que te notifiquen cuando un seguimiento supere un umbral que establezcas. Abre el panel Rendimiento y haz clic en el ícono del menú ampliado (tres puntos) de splash_screen_trace y, luego, en Configuración de alertas.

4bd0a2a1faa14479.png

  1. Haz clic en el botón de activación para habilitar la alerta de Duración. Establece el valor del umbral un poco por encima del valor que estabas viendo para que, si tu splash_screen_trace supera el umbral, recibas un correo electrónico.
  1. Haz clic en Guardar para crear la alerta. Desplázate hacia abajo hasta la tabla de seguimientos y, luego, haz clic en la pestaña Seguimientos personalizados para ver que la alerta está habilitada.

2bb93639e2218d1.png

13. ¡Felicitaciones!

¡Felicitaciones! Habilitaste el SDK de Firebase Performance Monitoring y recopilaste registros para medir el rendimiento de una función nueva. Supervisaste las métricas de rendimiento clave para el lanzamiento de una función nueva y reaccionaste con rapidez cuando se descubrió un problema de rendimiento. Todo esto fue posible gracias a la capacidad de realizar cambios de configuración con Remote Config y supervisar los problemas de rendimiento en tiempo real.

Temas abordados

  • Agrega el SDK de Firebase Performance Monitoring a tu app
  • Agregar un seguimiento de código personalizado a tu código para medir una función específica
  • Cómo configurar un parámetro y un valor condicional de Remote Config para controlar o lanzar una nueva función
  • Comprender cómo usar el panel de supervisión del rendimiento para identificar problemas durante un lanzamiento
  • Configurar alertas de rendimiento para que te notifiquen cuando el rendimiento de tu app supere un umbral que establezcas

Más información