Puede exportar datos de Monitoreo de rendimiento de aplicaciones de Apple y Android a BigQuery para un análisis más detallado. BigQuery le permite analizar los datos con BigQuery SQL, exportarlos a otro proveedor de la nube e incluso usar los datos para sus modelos de aprendizaje automático personalizados.
Habilitar la exportación de BigQuery
Vaya a la página Integraciones en la consola de Firebase, luego haga clic en Vínculo en la tarjeta de BigQuery .
Siga las instrucciones en pantalla para habilitar BigQuery.
Cuando habilita la exportación de BigQuery para la supervisión del rendimiento, ocurre lo siguiente:
Firebase exporta una copia de sus datos existentes a BigQuery. La propagación inicial de datos para la exportación puede tardar hasta 48 horas en completarse.
- Puede programar manualmente reabastecimientos de datos hasta los últimos 30 días o para la fecha más reciente cuando habilitó la exportación de BigQuery (lo que sea más reciente).
Después de crear el conjunto de datos, no se puede cambiar la ubicación, pero puede copiar el conjunto de datos a una ubicación diferente o mover manualmente (recrear) 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 sus datos desde su proyecto de Firebase a BigQuery. Estas operaciones diarias de exportación suelen finalizar 24 horas después de su programación.
De forma predeterminada, todas las aplicaciones de su proyecto están vinculadas a BigQuery. Cualquier aplicación que agregue más tarde al proyecto se vincula automáticamente a BigQuery. Puede 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ódigos personalizados instrumentados por el desarrollador
-
event_type
esTRACE_METRIC
-
event_name
es el nombre de la métrica -
parent_trace_name
es el nombre de rastreo que contiene esta métrica
-
Traza de pantalla : trazas que abarcan la vida útil de una pantalla (trazas 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 rastreo contienen
trace_info.metric_info
- Los seguimientos de pantalla contienen
trace_info.screen_info
- Los rastros de red contienen
network_info
Esquema de datos detallado
Nombre del campo | Escribe | Descripción |
---|---|---|
event_timestamp | marca de tiempo | Marca de tiempo desde la época en que comenzó el evento en el dispositivo cliente (inicio de seguimiento, inicio de red, etc.) |
app_display_versión | cuerda | Mostrar la versión de la aplicación (por ejemplo, "4.1.7")
|
app_build_version | cuerda | Versión de compilación de la aplicación (por ejemplo, "1523456")
|
versión del sistema operativo | cuerda | Versión del sistema operativo del dispositivo cliente
|
nombre del dispositivo | cuerda | Nombre del dispositivo cliente (por ejemplo, "Google Pixel") |
país | cuerda | Código de país de dos letras del país desde el que tuvo lugar el evento (por ejemplo, "US" o "ZZ" para país desconocido) |
transportador | cuerda | Operador del dispositivo cliente |
tipo_de_radio | cuerda | Tipo de radio activa cuando se produjo el evento (por ejemplo, "WIFI") |
atributos_personalizados | ARRAY<REGISTRO> | Todos los atributos personalizados adjuntos a este evento |
atributos_personalizados.clave | cuerda | Clave del atributo personalizado |
atributos_personalizados.valor | cuerda | Valor del atributo personalizado |
tipo de evento | cuerda | Tipo de evento; valores posibles:
|
nombre del evento | cuerda | Nombre del evento
|
parent_trace_name | cuerda | Nombre del seguimiento principal que lleva la métrica de seguimiento Solo presente para TRACE_METRIC |
trace_info | REGISTRO | Solo presente para DURATION_TRACE , SCREEN_TRACE y TRACE_METRIC |
trace_info.duration_us | int64 |
|
trace_info.screen_info | REGISTRO | Solo presente para SCREEN_TRACE |
trace_info.screen_info.slow_frame_ratio | flotar64 | 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 procesarse) |
trace_info.screen_info.frozen_frame_ratio | flotar64 | 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 procesarse) |
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 | cuerda | Tipo MIME de la respuesta de la red (por ejemplo, "text/html") |
network_info.request_http_method | cuerda | 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 solicitud de red Unidad: byte |
red_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 de event_timestamp cuando se completa el envío de la solicitud de redUnidad: microsegundo |
network_info.response_initiated_time_us | int64 | Microsegundos después de event_timestamp cuando se inicia la respuesta de la redUnidad: microsegundo |
network_info.response_completed_time_us | int64 | Microsegundos después de event_timestamp cuando se completa la respuesta de la redUnidad: microsegundo |
¿Qué se puede hacer con los datos exportados?
En las siguientes secciones, se ofrecen ejemplos de consultas que puede ejecutar en BigQuery en relación con los datos de supervisión del rendimiento exportados.
Ver el desglose de la latencia promedio de inicio de la aplicación 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 marcos congelados contra varias 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 están en 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;
Calcule la tasa de aciertos de caché para cargar ciertos tipos de archivos desde el disco
Este análisis supone que implementó un seguimiento de código personalizado para cargar 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 acierta en caché y 0
si falla en caché.
Por ejemplo, puede calcular la tasa de aciertos de 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, puede verificar a qué hora del día los usuarios de los Estados Unidos emiten solicitudes de red desde su 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 Performance Monitoring a cualquier parte
A veces desea acceder a su servidor de datos de Monitoreo de rendimiento o enviarlo a otra solución de terceros. Actualmente no hay ningún cargo por exportar datos.
Puede exportar sus datos de la siguiente manera:
Usar la interfaz de usuario web de BigQuery
Ejecutando el comando CLI
bq extract
Enviar un trabajo de extracción a través de la API o las bibliotecas del cliente.
Precios
No hay ningún cargo por exportar datos desde Performance Monitoring, y BigQuery proporciona generosos límites de uso sin costo. Para obtener información detallada, consulte los precios de BigQuery o la zona de pruebas de BigQuery .