En esta página, se proporcionan sugerencias para solucionar problemas relacionados con cómo comenzar a usar Performance Monitoring o utilizar las funciones y herramientas de Performance Monitoring.
Primeras comprobaciones para la solución de problemas
En todos los casos, se recomienda realizar las siguientes dos comprobaciones antes de iniciar otras tareas de solución de problemas.
1. Revisa los mensajes de registro de los eventos de rendimiento
Revisa los mensajes de registro para asegurarte de que el SDK de Performance Monitoring esté capturando los eventos de rendimiento.
Cómo visualizar los mensajes de registro de los eventos de rendimiento
Abre las herramientas para desarrolladores de tu navegador (por ejemplo, la pestaña Red de las Herramientas para desarrolladores de Chrome o el Monitor de red de Firefox).
Actualiza la app web en el navegador.
Revisa si hay mensajes de error en los mensajes de registro.
Después de unos segundos, busca una llamada de red a
firebaselogging.googleapis.com
en las herramientas para desarrolladores de tu navegador. La presencia de esta llamada de red indica que el navegador está enviando datos de rendimiento a Firebase.
Si tu app no registra eventos de rendimiento, revisa las sugerencias para solucionar problemas.
2. Verifica el panel de estado de Firebase
Revisa el panel de estado de Firebase en caso de que haya una interrupción conocida en Firebase o en Performance Monitoring.
Comenzar a usar Performance Monitoring
Si estás comenzando a usar Performance Monitoring (iOS+ | Android | Web), puedes aplicar estas sugerencias para solucionar problemas relacionados con la detección del SDK en Firebase o la visualización de los primeros datos de rendimiento en Firebase console.
Se agregó el SDK a la app, pero Console sigue diciendo que debe realizarse el agregado correspondiente
Firebase puede detectar si agregaste correctamente el SDK de Performance Monitoring a tu app cuando recibe información de eventos de esta (como las interacciones con la app). Por lo general, en el panel Rendimiento de Firebase console se muestra el mensaje “Se detectó el SDK” en un plazo de 10 minutos después de iniciar la app. Luego, en el término de 30 minutos, se muestran los datos procesados iniciales en el panel.
Si transcurrieron más de 10 minutos desde que agregaste la versión más reciente del SDK a tu app y aún no ves ningún cambio, verifica tus mensajes de registro para asegurarte de que Performance Monitoring registra eventos. Aplica los pasos que correspondan de la descripción que aparece a continuación para solucionar problemas relacionados con mensajes retrasados de detección del SDK.
La app registra eventos: pasos para solucionar problemas
Si sigues en la instancia de desarrollo local, intenta generar más eventos para recopilar datos:
Entrega y visualiza tu aplicación web en un entorno local.
Genera eventos mediante la carga de páginas secundarias para el sitio, la interacción con tu app o la activación de solicitudes de red. Asegúrate de mantener abierta la pestaña del navegador durante al menos 10 segundos después de cargar la página.
Asegúrate de que el objeto de configuración de Firebase se agregue correctamente a la app y de que no lo hayas modificado. Debes verificar lo siguiente:
- Que el ID de la app web de Firebase (
appId
) del objeto de configuración sea correcto para tu app. Busca el ID de la app de Firebase en la tarjeta Tus apps, en settings Configuración del proyecto.
Si hay algún problema con el objeto de configuración de la app, intenta lo siguiente:
Borra el objeto de configuración actual de la app.
Sigue estas instrucciones para obtener un objeto de configuración nuevo y agregarlo a la app web.
- Que el ID de la app web de Firebase (
Si el SDK registra 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 equipo de Asistencia de Firebase.
La app no registra eventos: pasos para solucionar problemas
Asegúrate de que el SDK de Performance Monitoring se inicialice correctamente en la app.
Asegúrate de que el SDK de Performance Monitoring no se inhabilite mediante la siguiente marca:
performance.instrumentationEnabled
Asegúrate de que el almacenamiento en caché del navegador esté inhabilitado; de lo contrario, es posible que el navegador no detecte ninguna configuración de instrumentación nueva.
Cierra la pestaña de la página web y vuelve a abrirla. Comprueba el registro nuevamente.
Si acabas de agregar el SDK de Performance Monitoring a la app, es posible que debas reiniciarla por completo para que el SDK comience a funcionar.
Si no encuentras recursos inhabilitados en la app, comunícate con el equipo de Asistencia de Firebase.
Console indica que se detectó el SDK, pero no se muestran datos
Performance Monitoring procesa los datos de eventos de rendimiento antes de mostrarlos en el Panel de rendimiento.
Si pasaron más de 24 horas desde que apareció el mensaje “Se detectó el SDK” y aún no ves los datos, consulta el panel de estado de Firebase en caso de que haya una interrupción conocida. Si no hay interrupciones, comunícate con el equipo de Asistencia de Firebase.
Solución de problemas general
Si agregaste correctamente el SDK y usas Performance Monitoring en tu app, puedes aplicar las siguientes sugerencias para solucionar problemas generales relacionados con las funciones y herramientas de Performance Monitoring.
La app no registra los eventos de rendimiento
Si no ves mensajes de registro de eventos de rendimiento, prueba estos pasos para solucionar problemas:
Asegúrate de que el SDK de Performance Monitoring se inicialice correctamente en la app.
Asegúrate de que el SDK de Performance Monitoring no se inhabilite mediante la siguiente marca:
performance.instrumentationEnabled
Asegúrate de que el almacenamiento en caché del navegador esté inhabilitado; de lo contrario, es posible que el navegador no detecte ninguna configuración de instrumentación nueva.
Cierra la pestaña de la página web y vuelve a abrirla. Comprueba el registro nuevamente.
Si acabas de agregar el SDK de Performance Monitoring a la app, es posible que debas reiniciarla por completo para que el SDK comience a funcionar.
Si no encuentras recursos inhabilitados en la app, comunícate con el equipo de Asistencia de Firebase.
Faltan datos de retraso de primera entrada en el panel Rendimiento
Si no ves los datos del retraso de primera entrada, prueba estos pasos para solucionar problemas:
Ten en cuenta que Performance Monitoring solo registra la métrica de retraso de primera entrada cuando un usuario hace clic en la página web durante los primeros 5 segundos tras la carga de la página.
Asegúrate de configurar la app para emplear esta métrica. La métrica de retraso de primera entrada requiere configuración manual. Concretamente, debes agregar la biblioteca polyfill para habilitar la métrica. Consulta la documentación de la biblioteca para revisar las instrucciones de instalación.
Ten en cuenta que no es necesario agregar la biblioteca de polyfills para que Performance Monitoring informe otras métricas de aplicaciones web.
Faltan datos de seguimientos personalizados en el Panel de rendimiento
¿Ves los datos de rendimiento de seguimientos recopilados de forma automática pero no los de seguimientos de código personalizados? Prueba los pasos que aparecen a continuación para solucionar problemas:
Verifica la configuración de los seguimientos de código personalizado que se instrumentaron con la API de Trace y, especialmente, lo siguiente:
- Los nombres de métricas personalizadas y seguimientos de código personalizados no deben incluir espacios en blanco al inicio ni al final, ni comenzar con guion bajo (
_
), y no pueden tener más de 32 caracteres. - Todos los seguimientos deben iniciarse y detenerse. No se registrará ningún seguimiento que no se inicie o no se detenga, o bien que se detenga antes de comenzar.
Ten en cuenta que si usas el método
record()
, no necesitas iniciar ni detener el seguimiento de forma explícita.- Los nombres de métricas personalizadas y seguimientos de código personalizados no deben incluir espacios en blanco al inicio ni al final, ni comenzar con guion bajo (
Asegúrate de que la recopilación de datos de Performance Monitoring no se inhabilite mediante la siguiente marca:
performance.dataCollectionEnabled
Esta función controla la recopilación de datos solo para seguimientos de código personalizados (no para todos los datos).
Revisa los mensajes de registro para asegurarte de que Performance Monitoring registre los seguimientos de código personalizados esperados.
Si Performance Monitoring registra eventos, pero no se muestran datos después de 24 horas, comunícate con el equipo de Asistencia de Firebase.
Faltan datos de solicitudes de red en el Panel de rendimiento
Si te faltan datos de solicitudes de red, ten en cuenta lo siguiente:
Performance Monitoring recopila automáticamente métricas de las solicitudes de red que informa la API del navegador. Esos informes no incluyen solicitudes de red que fallaron.
Según el comportamiento de tu código y las bibliotecas de herramientas de redes que este use, es posible que Performance Monitoring informe solo las solicitudes de red que se completan. Eso significa que tal vez no se informen las conexiones HTTP/S que quedan abiertas.
Los datos de solicitudes de red no se agregan del modo previsto
Más información sobre cómo Performance Monitoring agrega datos de solicitudes de red en patrones de URL.
También puedes probar los patrones de URL personalizados.
Preguntas frecuentes
¿Qué sucedió con la sección de problemas principales en la tarjeta Rendimiento de la página principal del proyecto?
Reemplazamos Problemas principales por Alertas recientes para continuar con la actual implementación de las alertas, que te notifican automáticamente cuando se sobrepasan los umbrales que configuraste. Los problemas dejaron de estar disponibles y se reemplazaron por alertas.
El selector de apps, en la parte superior de la tarjeta Rendimiento, filtra las entradas de alertas en Alertas recientes. Solo se muestran las tres alertas más recientes de las apps seleccionadas.
Para obtener más información sobre las alertas, consulta Configura alertas de problemas de rendimiento.
¿Qué sucedió con la capacidad de establecer umbrales para los problemas en console?
Performance Monitoring admite alertas para métricas que superan los umbrales definidos. A fin de evitar confusiones con estos umbrales configurables para las métricas de rendimiento, quitamos la capacidad de configurar umbrales para los problemas.
¿Qué sucedió con la información de detalles y métricas en Firebase console?
Reemplazamos las páginas Detalles y Métricas por una interfaz de usuario (IU) centralizada, que se rediseñó recientemente para mejorar la solución de problemas. Esta nueva IU para solucionar problemas ofrece la misma funcionalidad principal que ofrecían Detalles y Métricas. Si quieres saber más sobre la solución de problemas, consulta Visualiza más datos de un seguimiento específico.
¿Por qué la cantidad de muestras no es la que esperaba?
Performance Monitoring recopila datos de rendimiento de los dispositivos de los usuarios de tu app. Si tu aplicación tiene muchos usuarios o si 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 la métrica sean representativos de la experiencia de la app del usuario.
Para administrar el volumen de datos que recopilamos, Performance Monitoring usa las siguientes opciones de muestreo:
Límite de frecuencia integrado en el dispositivo: Para evitar que un dispositivo envíe aumentos repentinos de actividad de seguimientos, limitamos la cantidad de seguimientos de solicitudes de red y código que se envían desde un dispositivo a 300 eventos cada 10 minutos. Este enfoque protege el dispositivo de las instrumentación 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 aproximado de 100 millones de eventos para los seguimientos de código y 100 millones para los seguimientos de solicitudes de red diarios por app en todos los usuarios de la app. Se recupera una tasa de muestreo dinámico en los dispositivos (mediante Firebase Remote Config) para determinar si un dispositivo aleatorio debe captar y enviar seguimientos. Un dispositivo que no está seleccionado para el muestreo no envía ningún evento. La tasa de muestreo dinámico es específica de la app y se ajusta para garantizar que el volumen general de los 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 captar y enviar los datos. Para minimizar el impacto de las sesiones de usuario Performance Monitoring también podría restringir la cantidad de sesiones.
Límite de frecuencia del servidor: Para garantizar que las apps no superen el límite de muestreo, Performance Monitoring puede usar el muestreo del servidor a fin de descartar algunos eventos recibidos de dispositivos. Aunque este tipo de límite no cambia la eficacia de nuestras métricas, puede causar leves cambios en los patrones, incluidos los siguientes:
- La cantidad de seguimientos puede ser diferente de la cantidad de veces que se ejecutó un fragmento de código.
- Los seguimientos que están estrechamente vinculados en el código pueden tener una cantidad diferente de muestras.
¿Qué sucedió con la pestaña Problemas en la consola?
Reemplazamos la pestaña Problemas por Alertas, que te notifica automáticamente cuando se superan los límites que estableciste. Ya no necesitas verificar manualmente Firebase console para determinar el estado de un umbral. Para obtener más información sobre Alertas, consulta Configura alertas de problemas de rendimiento.
¿Qué sucedió con las pestañas En el dispositivo y Red de la consola? ¿Cómo puedo ver los seguimientos que estaban en esas páginas?
Rediseñamos la sección Performance Monitoring de Firebase console para que la pestaña Panel muestre tus métricas clave y todos los seguimientos en un solo espacio. Como parte del nuevo diseño, quitamos las páginas En el dispositivo y Red.
La tabla de seguimientos en la parte inferior de la pestaña Panel contiene la misma información que las pestañas En el dispositivo y Red, pero con algunas funciones adicionales, incluida la capacidad de ordenar los seguimientos según el cambio porcentual de una métrica específica. Para ver todas las métricas y los datos de un seguimiento específico, haz clic en su nombre en la tabla correspondiente.
Observa tus seguimientos en las siguientes pestañas secundarias de la tabla:
- Seguimientos de solicitudes de red (listos para usar y personalizados): Pestaña secundaria Solicitudes de red
- Seguimientos de código personalizado: Pestaña secundaria Seguimientos personalizados
- Seguimientos del inicio de la app, app en primer plano y app en segundo plano: Pestaña secundaria Seguimientos personalizados
- Seguimientos de renderización de pantalla: Pestaña secundaria Renderización de pantalla
- Seguimientos de carga de página: Pestaña secundaria Carga de página
Si quieres obtener más información sobre la tabla de seguimientos y la visualización de las métricas y los datos, visita la página de descripción general de console (iOS+ | Android | Web).
¿Por qué la cantidad de fotogramas lentos y congelados no es la que esperaba?
Los fotogramas de renderización lenta y los congelados se calculan con una frecuencia de actualización del dispositivo supuesta de 60 Hz. Si la frecuencia de actualización del dispositivo es inferior a 60 Hz, cada fotograma tendrá un tiempo de renderización más lento porque se procesan menos fotogramas por segundo. Los tiempos de renderización más lentos pueden provocar que se informen más fotogramas lentos o congelados, ya que se renderizarán más fotogramas de forma más lenta o se congelarán. Sin embargo, si la frecuencia de actualización del dispositivo es mayor que 60 Hz, cada fotograma tendrá un tiempo de renderización 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.
¿Cómo agrego el SDK de Performance Monitoring JS más pequeño y con espacios de nombres (el SDK “independiente”) a mi app web?
Si Performance Monitoring es el único producto de Firebase en tu app, puedes usar el SDK independiente de Performance Monitoring (y la secuencia de comandos del encabezado recomendada que se incluye a continuación) si te interesa lo siguiente:
- usar una biblioteca con espacio de nombres
- reducir el tamaño del paquete de tu SDK
- retrasar la inicialización del SDK hasta que tu página cargue
Para incluir el SDK independiente de Performance Monitoring en tu app y retrasar su inicialización hasta que la página se cargue, sigue estos pasos:
- Agrega la siguiente secuencia de comandos al encabezado de tu archivo de índice.
- Asegúrate de agregar el objeto de configuración de proyectos de Firebase a tu app.
(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);
En este ejemplo:
- performance_standalone es
.'https://www.gstatic.com/firebasejs/10.13.2/firebase-performance.js'
- firebaseConfig es el objeto de configuración de Firebase de tu app.
La secuencia de comandos anterior carga el SDK independiente de forma asíncrona y, luego, inicializa Firebase después de que se activa el evento onload
de la ventana. Con esta estrategia, se reduce el impacto que el SDK podría tener en las métricas de carga de la página, dado que el navegador ya informó sus métricas de carga cuando inicializas el SDK.
Obtén información sobre el SDK independiente de Performance Monitoring y la secuencia de comandos del encabezado
El SDK independiente se comprime en formato Gzip para optimizar su tamaño, por lo que solo pesa unos 10 kb. Tiene todas las funcionalidades de Firebase Performance Monitoring, además de un conjunto mínimo de las funciones principales del SDK de Firebase.
Firebase Performance Monitoring usa las APIs de fetch
y Promise
que no están disponibles en navegadores anteriores. Los polyfills de estas APIs se incluyen en el SDK estándar de Firebase Performance Monitoring JS, pero se omiten del SDK independiente para reducir su tamaño.
El SDK de Performance Monitoring depende, en parte, de la API de Resource Timing para obtener las métricas de carga de página de parte del navegador.
En el siguiente fragmento, se desglosa la secuencia de comandos del encabezado que incluye y retrasa la inicialización del SDK:
(function(sdkSource, firebaseConfigObject) { function load(f, c) { // Creates a script tag to load the standalone SDK var sdkScript = document.createElement('script'); // Sets it to an async script so that it doesn't interfere with page load sdkScript.async = 1; // Sets the source of the script sdkScript.src = f; // Inserts the script into the head of the page var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(sdkScript, s); } // Calls the load method load(sdkSource); // Initializes the SDK only when the onload method is called window.addEventListener('load', function() { firebase.initializeApp(firebaseConfigObject).performance(); }); })(performance_standalone, firebaseConfig);
En este ejemplo:
- performance_standalone es
.'https://www.gstatic.com/firebasejs/10.13.2/firebase-performance-standalone.js'
- firebaseConfig es el objeto de configuración de Firebase de tu app.
Procesamiento y visualización de datos casi en tiempo real
¿Qué significan los datos de rendimiento “casi en tiempo real”?
Firebase Performance Monitoring procesa los datos de rendimiento recopilados a medida que se presentan, lo que permite visualizar los datos casi en tiempo real en Firebase console. Los datos procesados se muestran en la consola unos pocos minutos después de su recopilación (por eso usamos el término “casi en tiempo real”).
Para aprovechar el procesamiento de datos casi en tiempo real, asegúrate de que tu app use una versión del SDK compatible con el tiempo real.
¿Cómo obtengo los datos de rendimiento de mi app casi en tiempo real?
Para aprovechar el procesamiento de datos casi en tiempo real, solo necesitas asegurarte de que la app use una versión del SDK de Performance Monitoring compatible con el procesamiento de datos en tiempo real.
Estas son las versiones del SDK compatibles con los datos en tiempo real:
- iOS: 7.3.0 o versiones posteriores
- 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
Ten en cuenta que siempre recomendamos usar la versión más reciente del SDK, pero cualquier versión mencionada anteriormente permitirá que Performance Monitoring procese tus datos casi en tiempo real.
¿Qué versiones del SDK de Performance Monitoring se consideran compatibles con los datos en tiempo real?
Estas son las versiones del SDK compatibles con el procesamiento de datos en tiempo real:
- iOS: 7.3.0 o versiones posteriores
- 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
Ten en cuenta que siempre recomendamos usar la versión más reciente del SDK, pero cualquier versión mencionada anteriormente permitirá que Performance Monitoring procese tus datos casi en tiempo real.
¿Qué sucede si no actualizo mi app para que use una versión del SDK compatible con los datos en tiempo real?
Si tu app no usa una versión del SDK compatible con los datos en tiempo real, seguirás viendo todos los datos de rendimiento de la app en Firebase console. Sin embargo, la visualización de los datos de rendimiento se retrasará aproximadamente 36 horas desde el momento de su recopilación.
Actualizamos a una versión del SDK compatible con datos en tiempo real, pero algunos de mis usuarios aún usan versiones antiguas de mi app. ¿Seguiré viendo sus datos de rendimiento en Firebase console?
Sí. Independientemente de la versión del SDK que use una instancia de app, verás los datos de rendimiento de todos tus usuarios.
Sin embargo, si buscas datos recientes (menos de 36 horas de antigüedad), los datos que se muestran provienen de usuarios de instancias de la app que usan una versión del SDK compatible en tiempo real. Sin embargo, los datos no recientes incluyen datos de rendimiento de todas las versiones de la app.
Comunícate con el equipo de Asistencia de Firebase
Si te comunicas con el equipo de Asistencia de Firebase, incluye siempre el ID de la app de Firebase. Busca el ID de la app de Firebase en la tarjeta Tus apps, en la settings configuración del proyecto.