Preguntas frecuentes y solución de problemas de Performance Monitoring
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
Habilita el registro de depuración de la siguiente manera:
En Xcode (v15.2 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 sus mensajes de registro con Firebase/Performance para que
puedas filtrar tus mensajes de registro.
Verifica los siguientes tipos de registros que indican que Performance Monitoring está
registrando eventos de rendimiento:
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:
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 settingsConfiguració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
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.
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
(v11.2.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 y UITabBarController). 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, 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.
Revisa los mensajes de registro para asegurarte de que Performance Monitoring registre los seguimientos de código personalizados esperados.
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 encabezados Content-Type.
Los datos de solicitudes de red no se agregan del modo previsto
¿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.
¿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.
Mis datos de Performance Monitoring están tardando 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 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”).
¿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