Esta página proporciona sugerencias de solución de problemas para comenzar con Performance Monitoring o utilizar las funciones y herramientas de Performance Monitoring.
Primeras comprobaciones para solucionar problemas
Las siguientes dos comprobaciones son las mejores prácticas generales recomendadas para cualquier persona antes de seguir solucionando problemas.
1. Verifique los mensajes de registro para detectar eventos de rendimiento
Verifique sus mensajes de registro para asegurarse de que el SDK de Performance Monitoring esté capturando eventos de rendimiento.
Abra las herramientas de desarrollo de su navegador (por ejemplo, la pestaña Red para Chrome Dev Tools o en Network Monitor para Firefox ).
Actualiza tu aplicación web en el navegador.
Revise sus mensajes de registro para ver si hay mensajes de error.
Después de unos segundos, busca una llamada de red a
firebaselogging.googleapis.com
en las herramientas de desarrollo de tu navegador. La presencia de esa llamada de red muestra que el navegador está enviando datos de rendimiento a Firebase.
Si su aplicación no registra eventos de rendimiento, revise las sugerencias para la solución de problemas .
2. Verifique el panel de estado de Firebase
Consulte el Panel de estado de Firebase en caso de que haya una interrupción conocida de Firebase o de Monitoreo de rendimiento.
Primeros pasos con la supervisión del rendimiento
Si está comenzando con el Monitoreo de rendimiento ( iOS+ | Android | Web ), los siguientes consejos para la solución de problemas pueden ayudarlo con problemas que involucran que Firebase detecte el SDK o muestre sus primeros datos de rendimiento en Firebase console.
Firebase puede detectar si agregaste correctamente el SDK de monitoreo de rendimiento a tu aplicación cuando recibe información de eventos (como interacciones de la aplicación) de tu aplicación. Por lo general, dentro de los 10 minutos posteriores al inicio de su aplicación, el panel de rendimiento de Firebase console muestra un mensaje "SDK detectado". Luego, en 30 minutos, el panel muestra los datos procesados iniciales.
Si han pasado más de 10 minutos desde que agregó la última versión del SDK a su aplicación y aún no ve ningún cambio, verifique sus mensajes de registro para asegurarse de que Performance Monitoring esté registrando eventos. Pruebe los pasos de solución de problemas apropiados como se describe a continuación para solucionar un mensaje de detección retrasada del SDK.
Si todavía estás desarrollando localmente, intenta generar más eventos para la recopilación de datos:
Sirve y visualiza tu aplicación web en un entorno local.
Genere eventos cargando subpáginas para su sitio, interactuando con su aplicación y/o activando solicitudes de red. Asegúrese de mantener abierta la pestaña del navegador durante al menos 10 segundos después de que se cargue la página.
Asegúrese de que su objeto de configuración de Firebase esté agregado correctamente a su aplicación y de que no haya modificado el objeto. Específicamente, verifique lo siguiente:
- El ID de la aplicación web de Firebase (
appId
) en el objeto de configuración es correcto para su aplicación. Busque el ID de su aplicación Firebase en la tarjeta Sus aplicaciones de su Configuración del proyecto .
Si hay algún problema con el objeto de configuración de su aplicación, intente lo siguiente:
Elimina el objeto de configuración que tienes actualmente en tu aplicación.
Siga estas instrucciones para obtener un nuevo objeto de configuración y agregarlo a su aplicación web.
- El ID de la aplicación web de Firebase (
Si el SDK está registrando eventos y todo parece estar configurado correctamente, pero aún no ves el mensaje de detección del SDK ni los datos procesados (después de 2 horas), comunícate con el soporte de Firebase .
Asegúrese de que el SDK de Performance Monitoring esté correctamente inicializado en su aplicación.
Asegúrese de que el SDK de Performance Monitoring no esté deshabilitado mediante el siguiente indicador:
-
performance.instrumentationEnabled
-
Asegúrese de que el almacenamiento en caché de su navegador esté deshabilitado; de lo contrario, es posible que el navegador no detecte ninguna configuración de instrumentación nueva.
Cierre y vuelva a abrir la pestaña de la página web. Verifique el inicio de sesión nuevamente.
Si acaba de agregar el SDK de Performance Monitoring en su aplicación, es posible que deba reiniciar completamente su aplicación para que el SDK comience a funcionar.
Si no puede encontrar nada que esté deshabilitado en su aplicación, comuníquese con el Soporte de Firebase .
Performance Monitoring procesa datos de eventos de rendimiento antes de mostrarlos en el panel de rendimiento .
Si han pasado más de 24 horas desde que apareció el mensaje "SDK detectado" y aún no ves datos, consulta el Panel de estado de Firebase en caso de que haya una interrupción conocida. Si no hay ninguna interrupción, comuníquese con el soporte de Firebase .
Solución de problemas generales
Si agregó correctamente el SDK y está utilizando Performance Monitoring en su aplicación, los siguientes consejos de solución de problemas pueden ayudarle con problemas generales que involucran funciones y herramientas de Performance Monitoring.
Si no ve mensajes de registro para eventos de rendimiento , intente los siguientes pasos de solución de problemas:
Asegúrese de que el SDK de Performance Monitoring esté correctamente inicializado en su aplicación.
Asegúrese de que el SDK de Performance Monitoring no esté deshabilitado mediante la siguiente marca:
-
performance.instrumentationEnabled
-
Asegúrese de que el almacenamiento en caché de su navegador esté deshabilitado; de lo contrario, es posible que el navegador no detecte ninguna configuración de instrumentación nueva.
Cierre y vuelva a abrir la pestaña de la página web. Verifique el inicio de sesión nuevamente.
Si acaba de agregar el SDK de Performance Monitoring en su aplicación, es posible que deba reiniciar completamente su aplicación para que el SDK comience a funcionar.
Si no puede encontrar nada que esté deshabilitado en su aplicación, comuníquese con el Soporte de Firebase .
Si no ve datos para la primera métrica de retraso de entrada , intente los siguientes pasos de solución de problemas:
Tenga en cuenta que Performance Monitoring solo registra la primera métrica de retraso de entrada cuando un usuario hace clic en la página web dentro de los primeros 5 segundos después de cargar la página.
Asegúrese de haber configurado su aplicación para medir esta métrica. La primera métrica de retardo de entrada requiere configuración manual . Específicamente, debe agregar la biblioteca polyfill para esta métrica. Para obtener instrucciones de instalación, consulte la documentación de la biblioteca.
Tenga en cuenta que no es necesario agregar esta biblioteca polyfill para que Performance Monitoring informe otras métricas de la aplicación web.
¿Está viendo datos de rendimiento para los seguimientos recopilados automáticamente pero no para los seguimientos de código personalizado ? Pruebe los siguientes pasos de solución de problemas:
Verifique la configuración de seguimientos de código personalizado instrumentados a través de Trace API , especialmente los siguientes:
- Los nombres para seguimientos de código personalizados y 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 32 caracteres. - Todos los rastreos deben iniciarse y detenerse. Cualquier seguimiento que no se inicie, no se detenga o se detenga antes de iniciarse no se registrará.
Tenga en cuenta que si está utilizando el método
record()
, no necesita iniciar o detener explícitamente su seguimiento.- Los nombres para seguimientos de código personalizados y métricas personalizadas deben cumplir los siguientes requisitos: sin espacios en blanco al principio ni al final, sin carácter de guión bajo (
Asegúrese de que la recopilación de datos de Performance Monitoring no esté deshabilitada mediante la siguiente marca:
performance.dataCollectionEnabled
Esta marca controla la recopilación de datos solo para seguimientos de código personalizado (no todos los datos).
Verifique sus mensajes de registro para asegurarse de que Performance Monitoring registre los seguimientos de código personalizado esperados.
Si Performance Monitoring registra eventos, pero no se muestran datos después de 24 horas, comuníquese con el soporte de Firebase .
Si le faltan datos de solicitud de red, tenga en cuenta lo siguiente:
Performance Monitoring recopila automáticamente métricas para las solicitudes de red informadas por la API del navegador. Estos informes no incluyen solicitudes de red fallidas.
Dependiendo del comportamiento de su código y de las bibliotecas de red utilizadas por su código, es posible que Performance Monitoring solo informe sobre las solicitudes de red que se completan. Esto significa que es posible que no se informen las conexiones HTTP/S que se dejan abiertas.
Obtenga más información sobre cómo Performance Monitoring agrega datos de solicitudes de red en patrones de URL.
¡También puedes probar patrones de URL personalizados !
Preguntas más frecuentes
Reemplazamos los problemas principales con alertas recientes como seguimiento de nuestra reciente introducción de alertas, que le notifican automáticamente cuando se cruzan los umbrales que establezca. Los problemas ahora están obsoletos y reemplazados por alertas.
El selector de aplicaciones en la parte superior de la tarjeta Rendimiento filtra las entradas de alerta en Alertas recientes . Solo se muestran las tres alertas más recientes para las aplicaciones seleccionadas.
Para obtener más información sobre las alertas, consulte Configurar alertas para problemas de rendimiento .
Performance Monitoring admite alertas para métricas que superan los umbrales definidos. Para evitar confusión con estos umbrales configurables para métricas de rendimiento, eliminamos la capacidad de configurar umbrales para problemas .
Reemplazamos las páginas de Detalles y Métricas con una interfaz de usuario (UI) centralizada y recientemente rediseñada para mejorar la forma de solucionar problemas. Esta nueva interfaz de usuario de solución de problemas ofrece la misma funcionalidad principal que ofrecían Detalles y Métricas. Para obtener más información sobre la solución de problemas, consulte Ver más datos para un seguimiento específico .
Performance Monitoring recopila datos de rendimiento de los dispositivos de usuario de su aplicación. Si su aplicación tiene muchos usuarios o si la aplicación genera una gran cantidad de actividad de rendimiento, Performance Monitoring podría limitar la recopilación de datos a un subconjunto de dispositivos para reducir la cantidad de eventos procesados. Estos límites son lo suficientemente altos como para que, incluso con menos eventos, los valores de las métricas sigan siendo representativos de la experiencia de la aplicación del usuario.
Para gestionar el volumen de datos que recopilamos, Performance Monitoring utiliza las siguientes opciones de muestreo:
Limitación de velocidad en el dispositivo : para evitar que un dispositivo envíe ráfagas repentinas de rastreos, limitamos la cantidad de rastreos de código y solicitudes de red enviados desde un dispositivo a 300 eventos cada 10 minutos. Este enfoque protege el dispositivo de instrumentaciones en bucle que pueden enviar grandes cantidades de datos de rendimiento y evita que un solo dispositivo distorsione las mediciones de rendimiento.
Muestreo dinámico : Performance Monitoring recopila un límite de aproximadamente 100 millones de eventos para seguimientos de código y 100 millones para seguimientos de solicitudes de red por aplicación diariamente entre todos los usuarios de la aplicación. Se obtiene una frecuencia de muestreo dinámica en los dispositivos (mediante Firebase Remote Config) para determinar si un dispositivo aleatorio debe capturar y enviar seguimientos. Un dispositivo que no está seleccionado para el muestreo no envía ningún evento. La frecuencia de muestreo dinámico es específica de la aplicación y se ajusta para garantizar que el volumen general de datos recopilados permanezca por debajo del límite.
Las sesiones de usuario envían datos adicionales y detallados desde el dispositivo de un usuario, lo que requiere más recursos para capturar y enviar los datos. Para minimizar el impacto de las sesiones de usuario, Performance Monitoring también puede restringir el número de sesiones.
Limitación de velocidad del lado del servidor : para garantizar que las aplicaciones no superen el límite de muestreo, Performance Monitoring puede utilizar el muestreo del lado del servidor para descartar algunos eventos recibidos de los dispositivos. Aunque este tipo de limitación no cambia la eficacia de nuestras métricas, puede provocar cambios menores en los patrones, incluidos los siguientes:
- La cantidad de seguimientos puede diferir de la cantidad de veces que se ejecutó un fragmento de código.
- Las trazas que están estrechamente acopladas en el código pueden tener cada una un número diferente de muestras.
Reemplazamos la pestaña Problemas con la introducción de Alertas, que le notifica automáticamente cuando se exceden los umbrales que establezca. Ya no es necesario verificar manualmente Firebase console para determinar el estado de un umbral. Para obtener información sobre las alertas, consulte Configurar alertas para problemas de rendimiento .
Rediseñamos la sección Monitoreo de rendimiento de Firebase console para que la pestaña Panel muestre sus métricas clave y todos sus seguimientos en un solo espacio. Como parte del rediseño, eliminamos las páginas En el dispositivo y Red .
La tabla de seguimientos en la parte inferior de la pestaña Panel tiene la misma información que las pestañas En el dispositivo y Red , pero con algunas características adicionales, incluida la capacidad de ordenar sus seguimientos por el cambio porcentual para una métrica específica. Para ver todas las métricas y datos de un seguimiento específico, haga clic en el nombre del seguimiento en la tabla de seguimientos.
Vea sus seguimientos en las siguientes subpestañas de la tabla de seguimientos:
- Seguimientos de solicitudes de red (tanto listos para usar como personalizados): subpestaña Solicitudes de red
- Seguimientos de código personalizados: subpestaña Seguimientos personalizados
- Inicio de la aplicación, seguimiento de la aplicación en primer plano y seguimiento de la aplicación en segundo plano: subpestaña Seguimientos personalizados
- Seguimientos de representación de pantalla: subpestaña Representación de pantalla
- Seguimientos de carga de página: subpestaña Carga de página
Para obtener detalles sobre la tabla de seguimientos y la visualización de métricas y datos, visite la página de descripción general de la consola ( iOS+ | Android | Web ).
Los fotogramas de renderizado lento y los fotogramas congelados se calculan con una frecuencia de actualización del dispositivo supuesta de 60 Hz. Si la frecuencia de actualización de un dispositivo es inferior a 60 Hz, cada fotograma tendrá un tiempo de renderizado más lento porque se renderizan menos fotogramas por segundo. Los tiempos de renderizado más lentos pueden hacer que se informen más fotogramas lentos o congelados porque más fotogramas se renderizarán más lento o se congelarán. Sin embargo, si la frecuencia de actualización de un dispositivo es superior a 60 Hz, cada cuadro tendrá un tiempo de renderizado más rápido. Esto puede provocar que se informen menos fotogramas lentos o congelados. Esta es una limitación actual en el SDK de Performance Monitoring.
Si el monitoreo del rendimiento es el único producto Firebase en su aplicación, puede usar el SDK de monitoreo de rendimiento independiente (y el script de encabezado recomendado a continuación) si está interesado en:
- Usando una biblioteca llena de nombres
- Reducir el tamaño de su paquete SDK
- Retrasar la inicialización del SDK hasta que se cargue su página
Para incluir el SDK de monitoreo de rendimiento independiente en su aplicación y retrasar su inicialización después de que su página se carga:
- Agregue el siguiente script al encabezado de su archivo de índice.
- Asegúrese de agregar el objeto de configuración del proyecto Firebase de su aplicación.
(function(sa,fbc){function load(f,c){var a=document.createElement('script'); a.async=1;a.src=f;var s=document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(a,s);}load(sa); window.addEventListener('load',function(){firebase.initializeApp(fbc).performance()}); })(performance_standalone, firebaseConfig);
dónde,
- performance_standalone es
'https://www.gstatic.com/firebasejs/10.9.0/firebase-performance.js'
- firebaseConfig es el objeto de configuración de Firebase de su aplicación
El script anterior carga asincrónicamente cargue el SDK independiente y luego inicializa Firebase después de que el evento onload
de la ventana se dispara. Esta táctica reduce el impacto que el SDK podría tener en las métricas de carga de la página ya que el navegador ya ha informado sus métricas de carga cuando inicializa el SDK.
Procesamiento y pantalla de datos casi en tiempo real
Los procesos de monitoreo de rendimiento de Firebase recopilaron datos de rendimiento a medida que se produce, lo que da como resultado una visualización de datos casi en tiempo real en la consola Firebase. Los datos procesados se muestran en la consola a los pocos minutos de su recopilación, de ahí el término "casi en tiempo real".
Para aprovechar el procesamiento de datos casi en tiempo real, asegúrese de que su aplicación use una versión SDK compatible con tiempo real .
Para aprovechar el procesamiento de datos casi en tiempo real, solo debe asegurarse de que su aplicación use una versión SDK de monitoreo de rendimiento que sea compatible con el procesamiento de datos en tiempo real.
Estas son las versiones SDK compatibles en tiempo real:
- iOS - V7.3.0 o posterior
- tvOS - v8.9.0 o posterior
- Android - V19.0.10 o posterior (o Firebase Android Bom V26.1.0 o posterior)
- Web - V7.14.0 o posterior
Tenga en cuenta que siempre recomendamos usar la última versión de SDK, pero cualquier versión enumerada anteriormente habilitará el monitoreo del rendimiento para procesar sus datos en tiempo casi real.
Estas son las versiones SDK compatibles con el procesamiento de datos en tiempo real:
- iOS - V7.3.0 o posterior
- tvOS - v8.9.0 o posterior
- Android - V19.0.10 o posterior (o Firebase Android Bom V26.1.0 o posterior)
- Web - V7.14.0 o posterior
Tenga en cuenta que siempre recomendamos usar la última versión de SDK, pero cualquier versión enumerada anteriormente habilitará el monitoreo del rendimiento para procesar sus datos en tiempo casi real.
Si su aplicación no usa una versión SDK compatible en tiempo real, aún verá todos los datos de rendimiento de su aplicación en la consola Firebase. Sin embargo, la visualización de datos de rendimiento se retrasará aproximadamente 36 horas desde el momento de su recopilación.
¡Sí! Independientemente de qué versión SDK use una instancia de aplicación, verá datos de rendimiento de todos sus usuarios.
Sin embargo, si está viendo datos recientes (menos de aproximadamente 36 horas), entonces los datos mostrados son de usuarios de instancias de aplicaciones utilizando una versión SDK compatible en tiempo real. Sin embargo, los datos no recientes incluyen datos de rendimiento de todas las versiones de su aplicación.
Contactar al soporte de Firebase
Si se acerca al soporte de Firebase , siempre incluya su ID de aplicación Firebase. Encuentre su ID de aplicación Firebase en la tarjeta de su aplicación de su del proyecto de configuración .