Agrega supervisión personalizada para código específico de tu app

Puedes crear seguimientos personalizados para supervisar los datos de rendimiento asociados con código específico de tu app. Con un seguimiento personalizado, puedes medir cuánto tiempo tarda la app en completar una tarea o un conjunto de tareas en particular, como cargar un conjunto de imágenes o consultar la base de datos. La métrica predeterminada de un seguimiento personalizado es su duración, pero también puedes agregar métricas personalizadas.

En el código, tú defines el inicio y el final de un seguimiento personalizado con las API que proporciona el SDK de Performance Monitoring. En las app para Android, también puedes supervisar métodos específicos con la anotación @AddTrace.

Los seguimientos también pueden iniciarse después de su creación y son seguros para los subprocesos.

Ten en cuenta lo siguiente:

  • Una app puede tener varios seguimientos personalizados.
  • Se puede ejecutar más de un seguimiento personalizado al mismo tiempo.
  • Los nombres de las métricas y los seguimientos personalizados no deben tener espacios en blanco al inicio ni al final, no pueden comenzar con guion bajo (_) y no deben exceder los 100 caracteres.

Atributos predeterminados, atributos personalizados y métricas personalizadas

En el caso de los seguimientos personalizados, Performance Monitoring registra automáticamente los atributos predeterminados que se recopilan para cualquier seguimiento (metadatos aplicables, como la versión de la app, el país, el dispositivo, el navegador, etc.) a fin de que puedas filtrar los datos en Firebase console. En el caso de los seguimientos personalizados, también puedes agregar y supervisar atributos personalizados (como el nivel del juego o las propiedades del usuario).

Además, puedes configurar un seguimiento personalizado para que registre métricas personalizadas de los eventos relacionados con el rendimiento que ocurran dentro del alcance del seguimiento. Por ejemplo, puedes crear una métrica personalizada para la cantidad de aciertos y errores de caché o la cantidad de veces que la IU deja de responder por un período notorio. Los datos de estas métricas personalizadas se muestran en Firebase console junto con las métricas predeterminadas del seguimiento. Cada seguimiento personalizado puede registrar hasta 32 métricas, incluidas la métrica de duración predeterminada y todas las métricas personalizadas adicionales.

Agrega métricas y seguimientos personalizados

Usa la API de Trace para agregar métricas y seguimientos personalizados a fin de supervisar código de la aplicación específico.

  1. Importa estas clases de Performance Monitoring en la parte superior del archivo .java o .kt, como en este ejemplo:

    import com.google.firebase.perf.FirebasePerformance;
    import com.google.firebase.perf.metrics.Trace;
    
  2. Para iniciar o detener un seguimiento personalizado, une el código del que quieres hacer seguimiento con líneas de código similares a estas (en este ejemplo, se usa el nombre de seguimiento personalizado test_trace):

    Java

    Trace myTrace = FirebasePerformance.getInstance().newTrace("test_trace");
    myTrace.start();
    
    // code that you want to trace
    
    myTrace.stop();
    

    Obtén más información sobre la API de seguimientos personalizados.

    Kotlin+KTX

    val myTrace = FirebasePerformance.getInstance().newTrace("test_trace")
    myTrace.start()
    
    // code that you want to trace
    
    myTrace.stop()
    

    Obtén más información sobre la API de seguimientos personalizados.

  3. Para agregar una métrica personalizada, agrega una línea de código similar a la siguiente cada vez que ocurra el evento. Por ejemplo, esta métrica personalizada cuenta los eventos relacionados con el rendimiento que ocurren en tu app, como los aciertos y errores de caché (con los nombres de evento de ejemplo item_cache_hit y item_cache_miss, además de un incremento de 1).

    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();
    

    Kotlin+KTX

    val myTrace = FirebasePerformance.getInstance().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()
    

Supervisa métodos específicos con @AddTrace (opcional)

Las apps para Android también admiten la anotación de @AddTrace para crear seguimientos personalizados. Con esta función, el seguimiento comienza al inicio del método especificado y se detiene cuando se completa el método (incluido todo lo que este invoque).

Por ejemplo, puedes crear un seguimiento personalizado llamado onCreateTrace que se ejecuta cuando se llama al método onCreate().

  1. Importa estas clases de Performance Monitoring en la parte superior del archivo .java o .kt, como en este ejemplo:

    import com.google.firebase.perf.FirebasePerformance;
    import com.google.firebase.perf.metrics.AddTrace;
    
  2. Agrega la anotación @AddTrace sobre el método que deseas rastrear de la siguiente forma:

    Java

    @Override
    @AddTrace(name = "onCreateTrace", enabled = true /* optional */)
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    Kotlin+KTX

    @AddTrace(name = "onCreateTrace", enabled = true /* optional */)
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
    }

Supervisa métricas y seguimientos personalizados en Console

  1. En Firebase console, dirígete al Panel de rendimiento.

  2. Haz clic en la pestaña En el dispositivo, en la que tendrás las siguientes opciones:

    • Ver un informe rápido de los datos recopilados de todos tus seguimientos

    • Hacer clic en un seguimiento específico para revisar sus datos con más detalle

    • Usar el botón Filtro de la esquina superior izquierda del panel para filtrar de forma básica los datos por atributo

  3. Si haces clic en un seguimiento específico, la consola mostrará una descripción general de los datos recopilados en las tarjetas de las métricas, que incluye la métrica Duración predeterminada y todas las métricas personalizadas que hayas configurado para el seguimiento personalizado

    • Con las opciones de la esquina superior derecha del panel, podrás ver los datos de duración como valores agregados, en el tiempo o por versión de la app

    • Usar el botón Filtro de la esquina superior izquierda del panel para filtrar de forma básica los datos por atributo

  4. En cualquier métrica, haz clic en Ver más para obtener información más detallada sobre los datos recopilados y usar funciones de análisis más completas. Por ejemplo, puedes filtrar y segmentar los datos por atributo y verlos en el contexto de una sesión de uso de la app.

    En la siguiente sección, se describen las características disponibles del informe detallado de los seguimientos.

Obtén más detalles de los ejemplos de seguimiento

Puedes ver en detalle algunos segmentos de solicitudes de red o seguimientos específicos en Firebase console. En una muestra aleatoria de sesiones grabadas, se muestra la siguiente información:

Una imagen de la página de sesiones de Firebase Performance Monitoring

  • CPU: Cuánto tiempo de usuario y de sistema consume tu app.

  • Memoria: Cuánta memoria del montón usa tu app. La memoria del montón es la que se usa para asignaciones dinámicas, incluidos los objetos que se creen, los que se liberen y los que la app use de forma activa.

  • Información individual: Información detallada sobre una sola instancia de la solicitud de red o seguimiento, incluida la hora de inicio y de finalización, la duración y el tamaño de la solicitud y de la respuesta.

  • Instancias simultáneas: Información sobre las solicitudes de seguimientos o de red que ocurrieron al mismo tiempo.

  • Atributos del dispositivo: Información sobre el dispositivo, incluida la versión de la app, el modelo, la versión de SO, la radio y los atributos personalizados.

Para ver estas muestras detalladas en Firebase console, tienes las siguientes opciones:

  • Abre una de las solicitudes de red o seguimientos de tu app y, luego, haz clic en Ver sesiones.

  • Haz clic en el vínculo de las sesiones de un atributo en específico.

Una imagen del seguimiento de Firebase Performance Monitoring con un vínculo a las sesiones

Filtra sesiones por percentil

Los datos de las sesiones que recopila Performance Monitoring se distribuyen en percentiles para cada métrica. Las sesiones de los rangos percentiles más bajos tienen un valor menor para la métrica que las sesiones de los percentiles más altos.

Si deseas filtrar las sesiones disponibles por percentil, usa la lista desplegable que se encuentra arriba de los detalles de las sesiones.

Una imagen de la página de sesiones de Firebase Performance Monitoring

Pasos siguientes