En esta página, se proporcionan sugerencias para la solución de problemas relacionados con cómo comenzar a usar Performance Monitoring, o bien aprovechar sus funciones y herramientas.
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 captura los eventos de rendimiento.
Cómo visualizar los mensajes de registro de los eventos de rendimiento
Habilita el registro de depuración de la siguiente manera:
- En Xcode (v14.1 como mínimo), selecciona Product > Scheme > Edit scheme.
- Selecciona Run en el menú de la izquierda y, luego, selecciona la pestaña Arguments.
- En la sección Arguments Passed on Launch, agrega
-FIRDebugEnabled
.
Revisa si hay mensajes de error en los mensajes de registro.
Performance Monitoring etiqueta los mensajes de registro con
Firebase/Performance
para que puedas filtrarlos.Verifica los siguientes tipos de registros que indican que Performance Monitoring registra los eventos de rendimiento:
Logging trace metric: TRACE_NAME, FIREBASE_PERFORMANCE_CONSOLE_URL
Logging network request trace: URL
Haz clic en la URL para ver tus datos en Firebase console. Los datos pueden tardar unos minutos en actualizarse en el panel.
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.
Primeros pasos con 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 indicando 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:
Sigue desarrollando la app con un emulador o un dispositivo de prueba.
Para generar eventos, puedes alternar varias veces la ejecución de la app entre el primer y segundo plano, interactuar con la app mediante la navegación por las pantallas o activar solicitudes de red.
Asegúrate de que el archivo de configuración de Firebase (
Google-Service-Info.plist
) se agregue correctamente a la app y de que no lo hayas modificado. Debes verificar lo siguiente:Que al nombre del archivo de configuración no se hayan agregado caracteres adicionales, como
(2)
.Que el archivo de configuración esté en la raíz de tu proyecto de Xcode y se agregue a los destinos correctos.
Que el ID de la app de Firebase para Apple (
GOOGLE_APP_ID
) que aparece en el archivo de configuración sea correcto para tu app. Busca tu ID de app de Firebase en la tarjeta Tus apps, en settings Configuración del proyecto.
Si hay algún problema con el archivo de configuración de la app, intenta lo siguiente:
Borra el archivo de configuración que tienes actualmente en la app.
Sigue estas instrucciones a fin de descargar un archivo de configuración nuevo y agregarlo a tu app para Apple.
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 no se inhabilite mediante alguna de las siguientes funciones en el archivo
Info.plist
:firebase_performance_collection_enabled
firebase_performance_collection_deactivated
Asegúrate de que Performance Monitoring no se inhabilite durante el tiempo de ejecución (Swift | Obj-C).
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 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 generales
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 no se inhabilite mediante alguna de las siguientes funciones en el archivo
Info.plist
:firebase_performance_collection_enabled
firebase_performance_collection_deactivated
Asegúrate de que Performance Monitoring no se inhabilite durante el tiempo de ejecución (Swift | Obj-C).
Si no encuentras recursos inhabilitados en la app, comunícate con el equipo de Asistencia de Firebase.
Faltan datos de seguimiento de pantalla en el Panel de rendimiento
Si faltan datos de seguimientos de renderización de pantalla, sigue estos pasos para solucionar problemas:
Asegúrate de usar la versión más reciente del SDK para plataformas de Apple (v10.10.0). Los seguimientos de renderización de pantalla solo están disponibles en la versión 5.0.0 o posterior.
Performance Monitoring no crea seguimientos de renderización de pantalla para los controladores de vista de contenedores (como
UINavigationController
yUITabBarController
). Si solo faltan datos para estas pantallas, entonces este es el comportamiento esperado.
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, en especial, controla 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.
- 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 (
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 faltan datos de solicitudes de red, prueba estos pasos para solucionar problemas:
Verifica si hay bibliotecas de red no compatibles. Performance Monitoring recopila automáticamente métricas de las solicitudes de red en las que se usan las siguientes bibliotecas de red:
- Para Swift: URLSession y URLConnection
- Para Objective-C: NSURLSession y NSURLConnection
Ten en cuenta que puedes agregar supervisión personalizada para las solicitudes de red.
Algunas consideraciones:
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.
Performance Monitoring no informa sobre las solicitudes de red con encabezados
Content-Type
no válidos. Sin embargo, aún se aceptarán las solicitudes de red sin los encabezadosContent-Type
.
Los datos de solicitudes de red no se agregan del modo previsto
Obtén más información sobre cómo Performance Monitoring agrega datos de solicitudes de red en los 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 las métricas que exceden 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 aproximadamente 100 millones de eventos para seguimientos de código y 100 millones para seguimientos de solicitudes de red por app en todos los usuarios de la app. Se recupera una tasa de muestreo dinámica en los dispositivos (mediante Firebase Remote Config) a fin de 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 puede 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.
Mis datos de Performance Monitoring tardan más de lo esperado en exportarse a BigQuery. ¿No se exportan en tiempo real?
Si habilitaste la integración de BigQuery para Firebase Performance Monitoring, tus datos se exportarán a BigQuery de 12 a 24 horas después de que termine el 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 corresponden a la hora del Pacífico).
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 los recibe, 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 la BoM de Firebase para Android 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 la BoM de Firebase para Android 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 usuarios aún utilizan 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.