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.
Habilite el registro de depuración, de la siguiente manera:
- En Xcode (mínimo v14.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
.
Revise 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.Compruebe 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 Firebase console. Es posible que los datos tarden unos momentos en actualizarse en el panel.
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:
Continúe desarrollando su aplicación utilizando un simulador o dispositivo de prueba.
Genere eventos cambiando su aplicación entre fondo y primer plano varias veces, interactuando con su aplicación navegando entre pantallas y/o activando solicitudes de red.
Asegúrese de que su archivo de configuración de Firebase (
Google-Service-Info.plist
) esté agregado correctamente a su aplicación y que no haya modificado el archivo. Específicamente, verifique lo siguiente:Al nombre del archivo de configuración no se le añaden caracteres adicionales, como
(2)
.El archivo de configuración está en la raíz de su proyecto XCode y se agrega a los destinos correctos.
El ID de la aplicación Firebase Apple (
GOOGLE_APP_ID
) que figura en el archivo 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 archivo de configuración de 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 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 no esté deshabilitado mediante ninguna de las siguientes marcas 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 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 no esté deshabilitado mediante ninguna de las siguientes marcas 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 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 Apple (v10.23.0). Los seguimientos de representación de pantalla solo están disponibles con la versión 5.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 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á.
- 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 (
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 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:
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.
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 encabezadosContent-Type
.
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 ha habilitado 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 hora del Pacífico).
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 .