Puedes exportar datos de Performance Monitoring de aplicaciones de Apple y Android a BigQuery para realizar análisis adicionales. BigQuery le permite analizar los datos usando BigQuery SQL, exportarlos a otro proveedor de nube e incluso usar los datos para sus modelos de ML personalizados.
Habilitar la exportación de BigQuery
Vaya a la página Integraciones en Firebase console y luego haga clic en Enlace en la tarjeta de BigQuery .
Siga las instrucciones que aparecen en pantalla para habilitar BigQuery.
Cuando habilitas la exportación de BigQuery para la supervisión del rendimiento, ocurre lo siguiente:
Firebase exporta una copia de tus datos existentes a BigQuery. La propagación inicial de datos para exportación puede tardar hasta 48 horas en completarse.
- Puedes programar manualmente reposiciones de datos hasta los últimos 30 días o para la fecha más reciente en la que habilitaste la exportación de BigQuery (la que sea más reciente).
Una vez creado el conjunto de datos, la ubicación no se puede cambiar, pero puede copiar el conjunto de datos a una ubicación diferente o mover (recrear) manualmente el conjunto de datos en una ubicación diferente. Para obtener más información, consulte Cambiar la ubicación del conjunto de datos .
Firebase configura sincronizaciones periódicas de tus datos desde tu proyecto de Firebase con BigQuery. Estas operaciones de exportación diarias suelen finalizar en 24 horas después de lo programado.
De forma predeterminada, todas las aplicaciones de tu proyecto están vinculadas a BigQuery. Cualquier aplicación que agregues posteriormente al proyecto se vincula automáticamente a BigQuery. Puedes administrar qué aplicaciones envían datos .
Para desactivar la exportación de BigQuery, desvincula tu proyecto en Firebase console.
¿Qué datos se exportan a BigQuery?
Para cada aplicación del proyecto, la exportación crea una tabla que incluye todos los eventos de rendimiento capturados. Cada fila de la tabla es un único evento de rendimiento que puede ser uno de los siguientes:
Seguimiento de duración : seguimientos que recopilan, de forma predeterminada, la métrica de "duración", que incluye el inicio de la aplicación, la aplicación en primer plano y la aplicación en segundo plano, así como cualquier seguimiento de código personalizado instrumentado por el desarrollador.
-
event_type
esDURATION_TRACE
-
event_name
es el mismo que el nombre de seguimiento
-
Métrica de seguimiento : métricas personalizadas asociadas con seguimientos de código personalizado instrumentados por el desarrollador.
-
event_type
esTRACE_METRIC
-
event_name
es el nombre de la métrica -
parent_trace_name
es el nombre de seguimiento que contiene esta métrica
-
Seguimiento de pantalla : seguimientos que abarcan la vida útil de una pantalla (seguimientos de representación de pantalla)
-
event_type
esSCREEN_TRACE
-
event_name
es el prefijo_st_
más el nombre de pantalla real
-
Solicitud de red : seguimientos que abarcan la vida útil de una solicitud de red (seguimientos de solicitud de red HTTP)
-
event_type
esNETWORK_REQUEST
-
event_name
es el patrón categorizado de la URL de solicitud de red
-
Cada evento de rendimiento contiene atributos del evento (como el país y el operador del dispositivo cliente), así como información específica del evento:
- Los seguimientos de duración, las métricas de seguimiento y los seguimientos de pantalla contienen
trace_info
- Las métricas de seguimiento contienen
trace_info.metric_info
- Los seguimientos de pantalla contienen
trace_info.screen_info
- Los seguimientos de red contienen
network_info
Esquema de datos detallado
Nombre del campo | Tipo | Descripción |
---|---|---|
marca_hora_evento | marca de tiempo | Marca de tiempo desde la época en que se inició el evento en el dispositivo cliente (inicio de seguimiento, inicio de red, etc.) |
versión_pantalla_aplicación | cadena | Versión para mostrar de la aplicación (por ejemplo, "4.1.7")
|
versión_construcción_aplicación | cadena | Versión de compilación de la aplicación (por ejemplo, "1523456")
|
versión del sistema operativo | cadena | Versión del sistema operativo del dispositivo cliente
|
nombre del dispositivo | cadena | Nombre del dispositivo cliente (por ejemplo, "Google Pixel") |
país | cadena | Código de país de dos letras del país desde el que tuvo lugar el evento (por ejemplo, "EE. UU." o "ZZ" para un país desconocido) |
transportador | cadena | Portador del dispositivo cliente |
tipo_radio | cadena | Tipo de radio activo cuando ocurrió el evento (por ejemplo, "WIFI") |
atributos_personalizados | MATRIZ<GRABAR> | Todos los atributos personalizados adjuntos a este evento |
atributos_personalizados.clave | cadena | Clave del atributo personalizado |
atributos_personalizados.valor | cadena | Valor del atributo personalizado |
tipo de evento | cadena | Tipo de evento; valores posibles:
|
nombre del evento | cadena | Nombre del evento
|
nombre_rastreo_padre | cadena | Nombre del seguimiento principal que lleva la métrica de seguimiento Solo presente para TRACE_METRIC |
información_rastreo | REGISTRO | Solo presente para DURATION_TRACE , SCREEN_TRACE y TRACE_METRIC |
trace_info.duración_es | int64 |
|
trace_info.screen_info | REGISTRO | Solo presente para SCREEN_TRACE |
trace_info.screen_info.slow_frame_ratio | flotador64 | Proporción de fotogramas lentos para este seguimiento de pantalla, entre 0 y 1 (por ejemplo, un valor de 0,05 significa que el 5 % de los fotogramas de esta instancia de pantalla tardaron más de 16 ms en renderizarse) |
trace_info.screen_info.frozen_frame_ratio | flotador64 | Proporción de fotogramas congelados para este seguimiento de pantalla, entre 0 y 1 (por ejemplo, un valor de 0,05 significa que el 5 % de los fotogramas de esta instancia de pantalla tardaron más de 700 ms en renderizarse) |
trace_info.metric_info | REGISTRO | Solo presente para TRACE_METRIC |
trace_info.metric_info.metric_value | int64 | Valor de la métrica de seguimiento |
información de red | REGISTRO | Solo presente para NETWORK_REQUEST |
información_red.código_respuesta | int64 | Código de respuesta HTTP para la respuesta de la red (por ejemplo, 200, 404) |
network_info.response_mime_type | cadena | Tipo MIME de la respuesta de la red (por ejemplo, "texto/html") |
network_info.request_http_método | cadena | Método HTTP de la solicitud de red (por ejemplo, "GET" o "POST") |
network_info.request_payload_bytes | int64 | Tamaño de la carga útil de la solicitud de red Unidad: byte |
network_info.response_payload_bytes | int64 | Tamaño de la carga útil de respuesta de la red Unidad: byte |
network_info.request_completed_time_us | int64 | Microsegundos después event_timestamp cuando se completa el envío de la solicitud de redUnidad: microsegundo |
network_info.response_initiated_time_us | int64 | Microsegundos después event_timestamp cuando se inicia la respuesta de la redUnidad: microsegundo |
network_info.response_completed_time_us | int64 | Microsegundos después event_timestamp cuando se completa la respuesta de la redUnidad: microsegundo |
¿Qué puedes hacer con los datos exportados?
Las siguientes secciones ofrecen ejemplos de consultas que puedes ejecutar en BigQuery con tus datos exportados de Performance Monitoring.
Ver el desglose de la latencia promedio de inicio de aplicaciones por país
SELECT AVG(trace_info.duration_us), country FROM `TABLE_NAME` WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD") AND event_type = "DURATION_TRACE" AND event_name = "_app_start" GROUP BY 2;
Verifique la proporción de fotogramas congelados frente a diversas condiciones
Por ejemplo, puede verificar la proporción de cuadros congelados junto con la cantidad de tiempo que los usuarios pasan en cada pantalla de su aplicación cuando usan diferentes tipos de radio (WiFi, 4G, etc.).
SELECT AVG(trace_info.duration_us / 1000000) AS seconds_on_screen, AVG(trace_info.screen_info.frozen_frame_ratio) AS frozen_frame_ratio, event_name, radio_type FROM `TABLE_NAME` WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD") AND event_type = "SCREEN_TRACE" GROUP BY event_name, radio_type ORDER BY event_name, radio_type;
Calcular la tasa de aciertos de la caché para cargar ciertos tipos de archivos desde el disco
Este análisis supone que instrumentó un seguimiento de código personalizado para la carga desde el disco con un atributo personalizado denominado file-extension
y una métrica personalizada ( TRACE_METRIC
) denominada cache-hit
que se establece en 1
si se acierta la caché y 0
si se pierde la caché.
Por ejemplo, puede calcular la tasa de aciertos de la caché para cargar archivos PNG desde el disco:
SELECT AVG(trace_info.metric_info.metric_value) AS cache_hit_rate FROM `TABLE_NAME` WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD") AND event_type = "TRACE_METRIC" AND event_name = "cache-hit" AND parent_trace_name = "loadFromDisk" AND STRUCT("file-extension", "png") IN UNNEST(custom_attributes);
Verifique la hora del día en que los usuarios emiten solicitudes de red
Por ejemplo, puedes comprobar a qué hora del día los usuarios de Estados Unidos emiten solicitudes de red desde tu aplicación:
SELECT count(1) AS hourly_count, EXTRACT(HOUR FROM event_timestamp) AS hour_of_day FROM `TABLE_NAME` WHERE _PARTITIONTIME > TIMESTAMP("YYYY-MM-DD") AND event_type = "NETWORK_REQUEST" AND country = "US" GROUP BY 2 ORDER BY 2;
Lleve sus datos de Monitoreo de desempeño a cualquier lugar
A veces desea acceder al lado del servidor de datos de Performance Monitoring o enviarlos a otra solución de terceros. Actualmente no hay ningún cargo por exportar datos.
Puede exportar sus datos mediante:
Usar la interfaz de usuario web de BigQuery
Ejecutando el comando CLI
bq extract
Envío de un trabajo de extracción a través de la API o bibliotecas cliente.
Precios
No hay ningún cargo por exportar datos desde Performance Monitoring y BigQuery ofrece generosos límites de uso sin costo. Para obtener información detallada, consulta los precios de BigQuery o el sandbox de BigQuery .