Esta página proporciona sugerencias para la solución de problemas para comenzar a usar Performance Monitoring o usar las funciones y herramientas de Performance Monitoring.
Primeras comprobaciones para solucionar problemas
Las siguientes dos verificaciones son las mejores prácticas generales recomendadas para cualquier persona antes de continuar con la solución de problemas.
1. Verifique los mensajes de registro para 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 ).
Actualice su aplicación web en el navegador.
Verifique sus mensajes de registro para ver si hay mensajes de error.
Después de unos segundos, busque una llamada de red a
firebaselogging.googleapis.com
en las herramientas para desarrolladores de su 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, consulte los consejos para la solución de problemas .
2. Consulta 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 Performance Monitoring.
Introducción a la supervisión del rendimiento
Si está comenzando con el Monitoreo del rendimiento ( iOS+ | Android | Web ), los siguientes consejos para la resolución de problemas pueden ayudarlo con los problemas que implican que Firebase detecte el SDK o muestre sus primeros datos de rendimiento en Firebase console.
Firebase puede detectar si agregó correctamente el SDK de monitoreo de rendimiento a su aplicación cuando recibe información de eventos (como interacciones de aplicaciones) de su aplicación. Por lo general, dentro de los 10 minutos posteriores al inicio de su aplicación, el panel de rendimiento de la consola Firebase muestra el mensaje "SDK detectado". Luego, dentro de los 30 minutos, el tablero muestra los datos procesados iniciales.
Si han pasado más de 10 minutos desde que agregó la última versión de 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 de SDK retrasado.
Si todavía está desarrollando localmente, intente generar más eventos para la recopilación de datos:
Sirva y visualice su 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 se haya agregado correctamente a su aplicación y de que no haya modificado el objeto. En concreto, comprueba 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 su ID de aplicación de Firebase en la tarjeta Sus aplicaciones de su del proyecto .
Si algo parece estar mal con el objeto de configuración en su aplicación, intente lo siguiente:
Elimine el objeto de configuración que tiene actualmente en su 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 ve el mensaje de detección del SDK o los datos procesados (después de 2 horas), comuníquese 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 nueva configuración de instrumentación.
Cierre, luego vuelva a abrir la pestaña de la página web. Compruebe si ha iniciado sesión de nuevo.
Si acaba de agregar el SDK de supervisión del rendimiento en su aplicación, es posible que deba reiniciarla por completo 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 los 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 ve los datos, verifique el Panel de estado de Firebase en caso de que haya una interrupción conocida. Si no hay interrupción, comuníquese con Firebase Support .
Solución de problemas generales
Si ha agregado correctamente el SDK y está utilizando Performance Monitoring en su aplicación, los siguientes consejos para la solución de problemas pueden ayudar con problemas generales relacionados con 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 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 nueva configuración de instrumentación.
Cierre, luego vuelva a abrir la pestaña de la página web. Compruebe si ha iniciado sesión de nuevo.
Si acaba de agregar el SDK de supervisión del rendimiento en su aplicación, es posible que deba reiniciarla por completo 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 la carga de 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 una 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 de polyfill para que Performance Monitoring informe otras métricas de aplicaciones web.
¿Está viendo datos de rendimiento para seguimientos recopilados automáticamente, pero no para seguimientos de código personalizados ? Pruebe los siguientes pasos de solución de problemas:
Verifique la configuración de seguimientos de códigos personalizados instrumentados a través de Trace API , especialmente los siguientes:
- Los nombres para los seguimientos de códigos personalizados y 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 32 caracteres. - Todos los seguimientos deben iniciarse y detenerse. Cualquier rastreo que no se inicie, no se detenga o se detenga antes de comenzar no se registrará.
Tenga en cuenta que si está utilizando el método
record()
, entonces no necesita iniciar o detener explícitamente su seguimiento.- Los nombres para los seguimientos de códigos personalizados y las métricas personalizadas deben cumplir los siguientes requisitos: sin espacios en blanco iniciales ni finales, sin caracteres de subrayado (
Asegúrese de que la recopilación de datos de Performance Monitoring no esté deshabilitada mediante el siguiente indicador:
performance.dataCollectionEnabled
Esta marca controla la recopilación de datos solo para seguimientos de códigos personalizados (no todos los datos).
Verifique sus mensajes de registro para asegurarse de que Performance Monitoring esté registrando los rastros de código personalizados esperados.
Si Performance Monitoring está registrando eventos, pero no se muestran datos después de 24 horas, comuníquese con Firebase Support .
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.
Según el comportamiento de su código y las bibliotecas de redes utilizadas por su código, es posible que la supervisión del rendimiento 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 bajo patrones de URL.
¡También puede probar patrones de URL personalizados !
Preguntas más frecuentes
Reemplazamos los principales problemas con alertas recientes como seguimiento de nuestra reciente introducción de alertas, que le notifican automáticamente cuando se superan los umbrales que estableció. Los problemas ahora están en desuso y se reemplazan 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 confusiones con estos umbrales configurables para las 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 en que soluciona los problemas. Esta nueva interfaz de usuario de solución de problemas ofrece la misma funcionalidad principal que ofrecieron 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, la supervisión del rendimiento puede 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 de su 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 seguimientos, limitamos la cantidad de seguimientos de solicitud de red y código enviados desde un dispositivo a 300 eventos cada 10 minutos. Este enfoque protege al 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 aproximadamente 100 millones de eventos para seguimientos de código y 100 millones para seguimientos de solicitudes de red por aplicación en todos los usuarios de la aplicación. Se obtiene una frecuencia de muestreo dinámica en los dispositivos (usando Firebase Remote Config) para determinar si un dispositivo aleatorio debe capturar y enviar rastros. 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 total de datos recopilados se mantenga 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 la cantidad de sesiones.
Limitación de frecuencia del lado del servidor : para garantizar que las aplicaciones no excedan el límite de muestreo, Performance Monitoring puede usar el muestreo del lado del servidor para descartar algunos eventos recibidos de los dispositivos. Si bien este tipo de limitación no cambia la efectividad de nuestras métricas, puede causar cambios menores en los patrones, incluidos los siguientes:
- El número de seguimientos puede diferir del número de veces que se ejecutó un fragmento de código.
- Los rastros que están estrechamente acoplados en el código pueden tener cada uno un número diferente de muestras.
Reemplazamos la pestaña Problemas con la introducción de Alertas, que le notifica automáticamente cuando se superan los umbrales que estableció. Ya no necesita verificar manualmente Firebase console para determinar el estado de un umbral. Para obtener más información sobre las alertas, consulte Configurar alertas para problemas de rendimiento .
Hemos rediseñado la sección Supervisión del 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 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 rastros en las siguientes subpestañas de la tabla de rastros:
- Rastreos de solicitudes de red (tanto listos para usar como personalizados): subpestaña Solicitudes de red
- Seguimientos de código personalizados: subpestaña Seguimientos personalizados
- Rastreos de inicio de aplicación, aplicación en primer plano, aplicación en segundo plano: subpestaña Rastreos personalizados
- Rastros de representación de pantalla : subpestaña Representación de pantalla
- Rastros 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 información general de la consola ( iOS+ | Android | Web ).
Los fotogramas de procesamiento 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 cuadro tendrá un tiempo de procesamiento más lento porque se procesan menos cuadros por segundo. Los tiempos de renderizado más lentos pueden causar que se informen fotogramas más 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 hacer que se informen menos fotogramas lentos o congelados. Esta es una limitación actual en el SDK de Performance Monitoring.
If Performance Monitoring is the only Firebase product in your app, you can use the standalone Performance Monitoring SDK (and the recommended header script below) if you're interested in:
- using a namespaced library
- reducing your SDK package size
- delaying initialization of the SDK until after your page loads
To include the standalone Performance Monitoring SDK in your app and delay its initialization to after your page loads:
- Add the following script to the header of your index file.
- Make sure to add your app's Firebase project configuration object .
(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);
where,
- performance_standalone is
'https://www.gstatic.com/firebasejs/9.16.0/firebase-performance-standalone.js'
- firebaseConfig is your app's Firebase config object
The above script asynchronously loads the standalone SDK then initializes Firebase after the window's onload
event fires. This tactic reduces the impact that the SDK could have on page load metrics since the browser has already reported its loading metrics when you initialize the SDK.
Near real-time data processing and display
Firebase Performance Monitoring processes collected performance data as it comes in, which results in near real-time data display in the Firebase console. Processed data displays in the console within a few minutes of its collection, hence the term "near real-time".
To take advantage of near real-time data processing, make sure your app uses a real-time compatible SDK version .
To take advantage of near real-time data processing, you only need to make sure that your app uses a Performance Monitoring SDK version that's compatible with real-time data processing.
These are the real-time compatible SDK versions:
- iOS — v7.3.0 or later
- tvOS — v8.9.0 or later
- Android — v19.0.10 or later (or Firebase Android BoM v26.1.0 or later)
- Web — v7.14.0 or later
Note that we always recommend using the latest version of SDK, but any version listed above will enable Performance Monitoring to process your data in near real time.
These are the SDK versions compatible with real-time data processing:
- iOS — v7.3.0 or later
- tvOS — v8.9.0 or later
- Android — v19.0.10 or later (or Firebase Android BoM v26.1.0 or later)
- Web — v7.14.0 or later
Note that we always recommend using the latest version of SDK, but any version listed above will enable Performance Monitoring to process your data in near real time.
If your app doesn't use a real-time compatible SDK version, you will still see all your app's performance data in the Firebase console. However, the display of performance data will be delayed by roughly 36 hours from the time of its collection.
Yes! Regardless of which SDK version an app instance uses, you'll see performance data from all your users.
However, if you're looking at recent data (less than roughly 36 hours old), then the displayed data is from users of app instances using a real-time compatible SDK version. The non-recent data, though, includes performance data from all versions of your app.
Contacting Firebase Support
If you reach out to Firebase Support , always include your Firebase App ID. Find your Firebase App ID in the Your apps card of your Project settings .