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

Performance Monitoring recopila seguimientos para ayudarle a monitorear el rendimiento de su aplicación. Un seguimiento es un informe de 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 utilizando las API proporcionadas por el SDK de Performance Monitoring.Para aplicaciones de Android, también puede monitorear métodos específicos usando la anotación @AddTrace .Los seguimientos de código personalizado se pueden iniciar en cualquier momento después de su creación y son seguros para subprocesos.

Dado que la métrica predeterminada recopilada para estos seguimientos es la "duración", a veces se les denomina "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 seguimientos de código personalizados, Performance Monitoring registra automáticamente los atributos predeterminados (metadatos comunes como versión de la aplicación, país, dispositivo, etc.) para que puedas filtrar los datos para el seguimiento en Firebase console. También puede agregar y monitorear atributos personalizados (como nivel de juego o propiedades de 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 y métricas personalizados se muestran en Firebase console junto con los atributos y métricas predeterminados para el seguimiento.

Agregar seguimientos de código personalizados

Utilice la API de seguimiento de monitoreo de rendimiento para agregar seguimientos de código personalizados para monitorear el código de una aplicación específica.

Tenga en cuenta lo siguiente:

  • Una aplicación puede tener varios seguimientos de código personalizado.
  • Se puede ejecutar más de un seguimiento de código personalizado al mismo tiempo.
  • Los nombres para los seguimientos de código personalizado deben cumplir los siguientes requisitos: sin espacios en blanco al principio ni al final, sin carácter de guión bajo ( _ ) al inicio y una longitud máxima de 100 caracteres.
  • Los seguimientos de código personalizados admiten la adición de métricas 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 utiliza un nombre de seguimiento personalizado de test_trace ):

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

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

(Opcional) Supervise métodos específicos utilizando @AddTrace

Las aplicaciones de Android también admiten la anotación @AddTrace para instrumentar seguimientos de código personalizados. Al utilizar esta característica, el seguimiento comienza al principio del método especificado y se detiene cuando el método se completa, incluido todo lo 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() .

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

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

Agregue 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 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 al principio ni al final, sin carácter de guión bajo ( _ ) al inicio 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 aciertos y errores de caché (usando nombres de eventos de ejemplo item_cache_hit y item_cache_miss y un incremento de 1 ).

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

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

Cree atributos personalizados para seguimientos de código personalizados

Utilice la API de seguimiento de supervisión del 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 momento en que se inicia el seguimiento y el momento en que se detiene.

Tenga en cuenta lo siguiente:

  • Los nombres de los atributos personalizados deben cumplir los siguientes requisitos:

    • Sin espacios en blanco al principio ni al final, ni carácter de subrayado ( _ ) al inicio
    • No hay espacios
    • La longitud máxima es de 32 caracteres.
    • Los caracteres permitidos para el nombre son AZ , az y _ .
  • Cada seguimiento de código personalizado puede registrar hasta 5 atributos personalizados.

  • Asegúrese de que los atributos personalizados no contengan ninguna información que identifique personalmente a un individuo ante Google.

    Obtenga más información sobre esta guía

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
}

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

Realice un seguimiento, vea y filtre datos de rendimiento

Realice un seguimiento de métricas específicas en su panel

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 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 Firebase console.
  2. Haga clic en una tarjeta de métrica vacía, luego seleccione una métrica existente para agregarla 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 de métricas recopilados a lo largo del tiempo, tanto en forma gráfica como como un cambio porcentual numérico.

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

Ver trazas y sus datos.

Para ver sus seguimientos, vaya al panel de rendimiento en Firebase console, 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 en las métricas, lo que facilita abordar y minimizar rápidamente el impacto de los problemas de rendimiento en sus aplicaciones y usuarios. Puede utilizar la página de solución de problemas cuando conozca posibles problemas de rendimiento, por ejemplo, en los siguientes escenarios:

  • Seleccionas métricas relevantes en el panel y notas 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 sobre 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 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 el nombre de un seguimiento o en 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 el nombre de un seguimiento en la tabla de seguimientos, 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 una versión anterior o su última versión
  • 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 datos de sus seguimientos .

Próximos pasos

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

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

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

  • Vea informes detallados de sesiones de usuarios 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.