Agregue monitoreo personalizado para código de aplicación específico

Performance Monitoring recopila rastros para ayudarlo a monitorear el rendimiento de su aplicación. Un seguimiento es un informe de los datos de rendimiento capturados entre dos puntos en el tiempo en su aplicación.

Puede crear sus propios seguimientos para monitorear los datos de rendimiento asociados con un código específico en su aplicación. Con un seguimiento de código personalizado , puede medir cuánto tiempo le toma a su aplicación completar una tarea específica o un conjunto de tareas, por ejemplo, cargar un conjunto de imágenes o consultar su base de datos.

La métrica predeterminada para un seguimiento de código personalizado es su "duración" (el tiempo entre los puntos de inicio y finalización del seguimiento), pero también puede agregar métricas personalizadas .

En su código, define el principio y el final de un seguimiento de código personalizado mediante las API proporcionadas por el SDK de Performance Monitoring.Para las aplicaciones de Android, también puede monitorear métodos específicos usando la anotación @AddTrace .Los seguimientos de código personalizados se pueden iniciar en cualquier momento después de que se hayan creado y son seguros para subprocesos.

Dado que la métrica predeterminada recopilada para estos seguimientos es "duración", a veces se denominan "seguimientos de duración".

Puede ver los datos de estos seguimientos en la subpestaña Seguimientos personalizados de la tabla de seguimientos, que se encuentra en la parte inferior del panel de rendimiento (obtenga más información sobre el uso de la consola más adelante en esta página).

Atributos predeterminados, atributos personalizados y métricas personalizadas

Para los seguimientos de código personalizados, Performance Monitoring registra automáticamente los atributos predeterminados (metadatos comunes como la versión de la aplicación, el país, el dispositivo, etc.) para que pueda filtrar los datos del seguimiento en Firebase console. También puede agregar y monitorear atributos personalizados (como el nivel del juego o las propiedades del usuario).

Además, puede configurar un seguimiento de código personalizado para registrar métricas personalizadas para eventos relacionados con el rendimiento que ocurren dentro del alcance del seguimiento. Por ejemplo, puede crear una métrica personalizada para la cantidad de aciertos y errores de caché o la cantidad de veces que la interfaz de usuario deja de responder durante un período de tiempo considerable.

Los atributos personalizados y las métricas personalizadas se muestran en Firebase console junto con los atributos predeterminados y la métrica predeterminada para el seguimiento.

Agregar seguimientos de código personalizados

Utilice la API de seguimiento de supervisión de rendimiento para agregar seguimientos de código personalizados para supervisar el código de aplicación específico.

Tenga en cuenta lo siguiente:

  • Una aplicación puede tener varios seguimientos de código personalizados.
  • Se puede ejecutar más de un seguimiento de código personalizado al mismo tiempo.
  • Los nombres para los seguimientos de código personalizados deben cumplir los siguientes requisitos: sin espacios en blanco iniciales ni finales, sin caracteres de subrayado ( _ ) iniciales y una longitud máxima de 100 caracteres.
  • Los seguimientos de código personalizados admiten la adición de métricas personalizadas y atributos personalizados .

Para iniciar y detener un seguimiento de código personalizado, ajuste el código que desea rastrear con líneas de código similares a las siguientes (este ejemplo usa un nombre de seguimiento personalizado de test_trace ):

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

Kotlin+KTX

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

(Opcional) Monitoree métodos específicos usando @AddTrace

Las aplicaciones de Android también admiten la anotación @AddTrace para instrumentar seguimientos de código personalizados. Con esta función, el seguimiento comienza al principio del método especificado y se detiene cuando se completa el método, incluido cualquier elemento invocado por el método.

Por ejemplo, puede crear un seguimiento de código personalizado llamado onCreateTrace que se ejecuta cuando se llama al método onCreate() .

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

Kotlin+KTX

// 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
@AddTrace(name = "onCreateTrace", enabled = true /* optional */)
override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
}

Agregar métricas personalizadas a seguimientos de código personalizados

Utilice la API de seguimiento de supervisión de rendimiento para agregar métricas personalizadas a los seguimientos de código personalizados.

Tenga en cuenta lo siguiente:

  • Los nombres de las métricas personalizadas deben cumplir los siguientes requisitos: sin espacios en blanco iniciales ni finales, sin caracteres de subrayado ( _ ) iniciales y una longitud máxima de 100 caracteres.
  • Cada seguimiento de código personalizado puede registrar hasta 32 métricas (incluida la métrica de duración predeterminada).

Para agregar una métrica personalizada, agregue 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 su aplicación, como los aciertos y errores de caché (usando nombres de eventos de ejemplo de item_cache_hit y item_cache_miss y 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 = 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()

Crear atributos personalizados para seguimientos de código personalizados

Utilice la API de seguimiento de supervisión de rendimiento para agregar atributos personalizados a los seguimientos de código personalizados.

Para usar atributos personalizados, agregue código a su aplicación que defina el atributo y lo asocie con un seguimiento de código personalizado específico. Puede establecer el atributo personalizado en cualquier momento entre el inicio y la finalización del seguimiento.

Tenga en cuenta lo siguiente:

  • Los nombres de los atributos personalizados deben cumplir los siguientes requisitos: sin espacios en blanco iniciales ni finales, sin carácter de subrayado inicial ( _ ) y una longitud máxima de 32 caracteres.

  • Cada seguimiento de código personalizado puede registrar hasta 5 atributos personalizados.

  • No debe utilizar atributos personalizados que contengan información que identifique personalmente a una persona ante Google.

    Más información sobre esta directriz

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

Kotlin+KTX

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
}

Seguimiento, visualización y filtrado de datos de rendimiento

Seguimiento de métricas específicas en su tablero

Para conocer las tendencias de sus métricas clave, agréguelas a su tablero de métricas en la parte superior del panel de rendimiento . Puede identificar rápidamente las regresiones al ver los cambios semana tras semana o verificar que los cambios recientes en su código están mejorando el rendimiento.

una imagen del tablero de métricas en el panel de Firebase Performance Monitoring

Para agregar una métrica a su tablero de métricas, siga estos pasos:

  1. Vaya al panel de rendimiento en la consola de Firebase.
  2. Haga clic en una tarjeta de métrica vacía, luego seleccione una métrica existente para agregar a su tablero.
  3. Haga clic en en una tarjeta de métrica completa para obtener más opciones, por ejemplo, para reemplazar o eliminar una métrica.

El tablero de métricas muestra los datos métricos recopilados a lo largo del tiempo, tanto en forma gráfica como en forma de cambio de porcentaje numérico.

Obtenga más información sobre el uso del tablero .

Ver rastros y sus datos

Para ver sus seguimientos, vaya al panel de rendimiento en la consola de Firebase, desplácese hacia abajo hasta la tabla de seguimientos y luego haga clic en la subpestaña correspondiente. La tabla muestra algunas métricas principales para cada seguimiento, e incluso puede ordenar la lista por el cambio porcentual de una métrica específica.

Performance Monitoring proporciona una página de solución de problemas en Firebase console que resalta los cambios de métricas, lo que facilita abordar rápidamente y minimizar el impacto de los problemas de rendimiento en sus aplicaciones y usuarios. Puede usar la página de solución de problemas cuando se entera de posibles problemas de rendimiento, por ejemplo, en los siguientes escenarios:

  • Selecciona métricas relevantes en el tablero y nota un gran delta.
  • En la tabla de seguimientos, ordena para mostrar los deltas más grandes en la parte superior y ve un cambio porcentual significativo.
  • Recibe una alerta por correo electrónico que le notifica un problema de rendimiento.

Puede acceder a la página de solución de problemas de las siguientes maneras:

  • En el panel de métricas, haga clic en el botón Ver detalles de métricas .
  • En cualquier tarjeta de métrica, seleccione => Ver detalles . La página de solución de problemas muestra información sobre la métrica que seleccionó.
  • En la tabla de seguimientos, haga clic en un nombre de seguimiento o cualquier valor de métrica en la fila asociada con ese seguimiento.
  • En una alerta por correo electrónico, haga clic en Investigar ahora .

Cuando hace clic en un nombre de rastreo en la tabla de rastreos, puede profundizar en las métricas de interés. Haga clic en el botón filtro para filtrar los datos por atributo, por ejemplo:

una imagen de los datos de Firebase Performance Monitoring filtrados por atributo
  • Filtre por versión de la aplicación para ver datos sobre un lanzamiento anterior o su último lanzamiento
  • Filtre por dispositivo para saber cómo los dispositivos más antiguos manejan su aplicación
  • Filtre por país para asegurarse de que la ubicación de su base de datos no afecte a una región específica

Obtenga más información sobre cómo ver los datos de sus seguimientos .

Próximos pasos

  • Obtenga más información sobre el uso de atributos para examinar los datos de rendimiento.

  • Obtén más información sobre cómo realizar un seguimiento de los problemas de rendimiento en Firebase console.

  • Configure alertas para los cambios de código que degradan el rendimiento de su aplicación. Por ejemplo, puede configurar una alerta de correo electrónico para su equipo si la duración de un seguimiento de código personalizado específico supera el umbral que usted establece.

  • Vea informes detallados de sesiones de usuario en los que puede ver un seguimiento específico en un contexto de línea de tiempo de otros seguimientos recopilados durante la misma sesión.