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.
Habilite el registro de depuración, de la siguiente manera:
- En Xcode (mínimo v13.3.1), seleccione Producto > Esquema > Editar esquema .
- Seleccione Ejecutar en el menú de la izquierda, luego seleccione la pestaña Argumentos .
- En la sección Argumentos pasados en el lanzamiento , agregue
-FIRDebugEnabled
.
Verifique sus mensajes de registro para ver si hay mensajes de error.
Performance Monitoring etiqueta sus mensajes de registro con
Firebase/Performance
para que pueda filtrar sus mensajes de registro.Verifique los siguientes tipos de registros que indican que Performance Monitoring está registrando eventos de rendimiento:
-
Logging trace metric: TRACE_NAME , FIREBASE_PERFORMANCE_CONSOLE_URL
-
Logging network request trace: URL
-
Haga clic en la URL para ver sus datos en la consola de Firebase. Es posible que los datos tarden unos minutos en actualizarse en el tablero.
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:
Continúe desarrollando su aplicación usando un simulador o dispositivo de prueba.
Genere eventos cambiando su aplicación entre el fondo y el primer plano varias veces, interactuando con su aplicación navegando por las pantallas y/o activando solicitudes de red.
Asegúrese de que su archivo de configuración de Firebase (
Google-Service-Info.plist
) se haya agregado correctamente a su aplicación y que no haya modificado el archivo. En concreto, comprueba lo siguiente:El nombre del archivo de configuración no se agrega con caracteres adicionales, como
(2)
.El archivo de configuración está en la raíz de su proyecto XCode y se agrega a los objetivos correctos.
El ID de la aplicación Apple de Firebase (
GOOGLE_APP_ID
) que figura en el archivo 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 archivo de configuración en su aplicación, intente lo siguiente:
Elimine el archivo de configuración que tiene actualmente en su aplicación.
Siga estas instrucciones para descargar un nuevo archivo de configuración y agregarlo a su aplicación Apple.
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 supervisión del rendimiento no esté deshabilitado mediante ninguno de los siguientes indicadores en su archivo
Info.plist
:-
firebase_performance_collection_enabled
-
firebase_performance_collection_deactivated
-
Asegúrese de que la supervisión del rendimiento no esté deshabilitada en tiempo de ejecución ( Swift | Obj-C ).
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 supervisión del rendimiento no esté deshabilitado mediante ninguno de los siguientes indicadores en su archivo
Info.plist
:-
firebase_performance_collection_enabled
-
firebase_performance_collection_deactivated
-
Asegúrese de que la supervisión del rendimiento no esté deshabilitada en tiempo de ejecución ( Swift | Obj-C ).
Si no puede encontrar nada que esté deshabilitado en su aplicación, comuníquese con el Soporte de Firebase .
Si le faltan datos para los seguimientos de representación de pantalla, intente los siguientes pasos de solución de problemas:
Asegúrese de estar utilizando la última versión del SDK de las plataformas de Apple (v10.4.0). Los seguimientos de representación de pantalla solo están disponibles con v5.0.0 o posterior.
Performance Monitoring no crea seguimientos de representación de pantalla para controladores de vista de contenedor (como
UINavigationController
yUITabBarController
). Si solo faltan datos para estas pantallas, entonces este es el comportamiento esperado.
¿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á.
- 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 (
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, intente los siguientes pasos de solución de problemas:
Verifique la incompatibilidad de la biblioteca de red. Performance Monitoring recopila automáticamente métricas para solicitudes de red que utilizan las siguientes bibliotecas de red:
- Para Swift: URLSession y URLConnection
- Para Objective-C: NSURLSession y NSURLConnection
Tenga en cuenta que puede agregar monitoreo personalizado para solicitudes de red .
Tenga en cuenta lo siguiente:
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.
Performance Monitoring no informa sobre solicitudes de red con encabezados
Content-Type
no válidos. Sin embargo, se seguirán aceptando solicitudes de red sin los encabezadosContent-Type
.
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.
Si habilitó la integración de BigQuery para Firebase Performance Monitoring, sus datos se exportarán a BigQuery entre 12 y 24 horas después del final del día (hora del Pacífico).
Por ejemplo, los datos del 19 de abril estarán disponibles en BigQuery el 20 de abril entre las 12:00 p. m. y la medianoche (todas las fechas y horas son la hora del Pacífico).
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 .