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.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 país, navegador, URL de página, etc.) para que pueda 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:

Web modular API

import { trace } from "firebase/performance";

const t = trace(perf, "CUSTOM_TRACE_NAME");
t.start();

// Code that you want to trace 
// ...

t.stop();

Web namespaced API

const trace = perf.trace("CUSTOM_TRACE_NAME");
trace.start();

// Code that you want to trace 
// ...

trace.stop();

Agregue seguimientos de código personalizados utilizando la API de sincronización del usuario

Además de la API de seguimiento de monitoreo de rendimiento, puede agregar seguimientos de código personalizados utilizando la API de sincronización de usuario nativa de un navegador. El SDK de Performance Monitoring recoge automáticamente la duración de un seguimiento medida con esta API. El uso de User Timing API es especialmente útil si prefiere cargar el SDK de Performance Monitoring de forma asincrónica. Una vez que se inicializa el SDK, registrará las mediciones que ocurrieron antes de su carga.

Para utilizar esta función, ajuste el código que desea rastrear con marcas de sincronización del usuario:

Web modular API

const performance = window.performance;

performance.mark("measurementStart");

// Code that you want to trace 
// ...

performance.mark("measurementStop");
performance.measure("customTraceName", "measurementStart", "measurementStop");

Web namespaced API

const performance = window.performance;

performance.mark("measurementStart");

// Code that you want to trace 
// ...

performance.mark("measurementStop");
performance.measure("customTraceName", "measurementStart", "measurementStop");

Tenga en cuenta que performance en el ejemplo anterior se refiere al objeto window.performance del navegador.

Cuando se utiliza la API de sincronización del usuario, no se pueden agregar métricas y atributos personalizados a los seguimientos del código personalizado. Utilice la API de seguimiento de supervisión de rendimiento si desea agregar esos elementos personalizados a un seguimiento de código personalizado.

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.

Web modular API

import { trace } from "firebase/performance";

async function getInventory(inventoryIds) {
  const t = trace(perf, "inventoryRetrieval");

  // Tracks the number of IDs fetched (the metric could help you to optimize in the future)
  t.incrementMetric("numberOfIds", inventoryIds.length);

  // Measures the time it takes to request inventory based on the amount of inventory
  t.start();
  const inventoryData = await retrieveInventory(inventoryIds);
  t.stop();

  return inventoryData;
}

Web namespaced API

async function getInventory(inventoryIds) {
  const trace = perf.trace("inventoryRetrieval");

  // Tracks the number of IDs fetched (the metric could help you to optimize in the future)
  trace.incrementMetric("numberOfIds", inventoryIds.length);

  // Measures the time it takes to request inventory based on the amount of inventory
  trace.start();
  const inventoryData = await retrieveInventory(inventoryIds);
  trace.stop();

  return inventoryData;
}

Cree atributos personalizados para seguimientos de código personalizados

Utilice la API de seguimiento de Performance Monitoring para agregar atributos personalizados a 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

Web modular API

import { trace } from "firebase/performance";

const t = trace(perf, "test_trace");
t.putAttribute("experiment", "A");

// Update scenario
t.putAttribute("experiment", "B");

// Reading scenario
const experimentValue = t.getAttribute("experiment");

// Delete scenario
t.removeAttribute("experiment");

// Read attributes
const traceAttributes = t.getAttributes();

Web namespaced API

const trace = perf.trace("test_trace");
trace.putAttribute("experiment", "A");

// Update scenario
trace.putAttribute("experiment", "B");

// Reading scenario
const experimentValue = trace.getAttribute("experiment");

// Delete scenario
trace.removeAttribute("experiment");

// Read attributes
const traceAttributes = trace.getAttributes();

Realice un seguimiento, vea y filtre datos de rendimiento

Para ver datos de rendimiento en tiempo real, asegúrese de que su aplicación utilice una versión del SDK de monitoreo de rendimiento que sea compatible con el procesamiento de datos en tiempo real. Obtenga más información sobre los datos de rendimiento en tiempo real .

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 URL de página para ver datos de una página específica de su sitio
  • Filtre por tipo de conexión efectiva para saber cómo una conexión 3G afecta 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.