Puoi esportare i dati di Performance Monitoring dalle app Apple e Android in BigQuery per ulteriori informazioni e analisi. BigQuery ti consente di analizzare i dati utilizzando BigQuery, esportarlo in un altro cloud provider e persino utilizzare per i tuoi modelli di ML personalizzati.
Abilita esportazione BigQuery
Vai alla pagina Integrazioni nella console Firebase, quindi fai clic su Collega nella scheda BigQuery.
Segui le istruzioni sullo schermo per attivare BigQuery.
Quando attivi l'esportazione di BigQuery per Performance Monitoring, viene fatto quanto segue si verifica:
Firebase esporta una copia dei tuoi dati esistenti in BigQuery. La propagazione iniziale dei dati per l'esportazione può richiedere fino a Il completamento richiede 48 ore.
- Puoi pianificare manualmente i backfill dati gli ultimi 30 giorni o la data più recente in cui hai attivato BigQuery esportarla (a seconda di quale delle due date è più recente).
Dopo aver creato il set di dati, la località non può essere modificato, ma puoi copiare il set di dati in una località diversa oppure spostare manualmente (ricreare) il set di dati in un'altra posizione. Per ulteriori informazioni vedi Modificare la posizione del set di dati.
Firebase configura sincronizzazioni regolari dei dati dal progetto Firebase a BigQuery. Queste operazioni di esportazione giornaliere di solito terminano entro 24 ore dopo la programmazione.
Per impostazione predefinita, tutte le app nel tuo progetto sono collegate a BigQuery. Qualsiasi le app che aggiungi in un secondo momento al progetto vengono collegate automaticamente BigQuery. Puoi gestire le app che inviano dati.
Per disattivare l'esportazione di BigQuery: scollegare il progetto nella console Firebase.
Quali dati vengono esportati in BigQuery?
Per ogni app nel progetto, l'esportazione crea una tabella che include tutte le e gli eventi di rendimento acquisiti. Ogni riga della tabella è un singolo evento di rendimento che può essere uno dei seguenti:
Traccia della durata: tracce che raccolgono, per impostazione predefinita, la metrica "durata", che includono avvio dell'app, app in primo piano e app in background, ed eventuali tracce di codice personalizzate strumentate dallo sviluppatore
event_type
èDURATION_TRACE
event_name
corrisponde al nome della traccia
Metrica di traccia: metriche personalizzate associate a tracce di codice personalizzate create con lo sviluppatore
event_type
èTRACE_METRIC
event_name
è il nome della metricaparent_trace_name
è il nome della traccia che contiene questa metrica
Traccia schermo: tracce per l'intera durata di una schermata (rendering dello schermo). )
event_type
èSCREEN_TRACE
event_name
è il prefisso_st_
e il nome effettivo della schermata
Richiesta di rete: tracce per la durata di una richiesta di rete. (Tracce richieste di rete HTTP)
event_type
èNETWORK_REQUEST
event_name
è il pattern classificato dell'URL di richiesta di rete
Ogni evento di rendimento contiene gli attributi dell'evento (ad esempio il paese e l'operatore del dispositivo client), nonché informazioni specifiche dell'evento:
- Le tracce della durata, le metriche delle tracce e le tracce dello schermo contengono
trace_info
- Le metriche di traccia contengono
trace_info.metric_info
- Le tracce dello schermo contengono
trace_info.screen_info
- Le tracce di rete contengono
network_info
Schema dei dati dettagliato
Nome campo | Tipo | Descrizione |
---|---|---|
event_timestamp | timestamp | Timestamp dall'epoca in cui è stato avviato l'evento sul dispositivo client (inizio traccia, inizio rete ecc.) |
versione_app_display | stringa | Visualizza la versione dell'applicazione (ad es. "4.1.7")
|
versione_build_app | stringa | Versione build dell'applicazione (ad esempio "1523456")
|
versione_OS | stringa | Versione del sistema operativo del dispositivo client
|
device_name | stringa | Nome del dispositivo client (ad esempio, "Google Pixel") |
country | stringa | Codice paese di due lettere del paese da cui si è verificato l'evento (ad esempio "US" o "ZZ" per paese sconosciuto) |
corriere | stringa | Operatore del dispositivo client |
radio_type | stringa | Tipo di segnale radio attivo quando si è verificato l'evento (ad esempio, "Wi-Fi") |
attributi_personalizzati | ARRAY<RECORD> | Tutti gli attributi personalizzati associati a questo evento |
custom_attributes.key | stringa | Chiave dell'attributo personalizzato |
attributi_personalizzati.valore | stringa | Valore dell'attributo personalizzato |
event_type | stringa | Tipo di evento; valori possibili:
|
event_name | stringa | Nome dell'evento
|
nome_traccia_principale | stringa | Nome della traccia principale che contiene la metrica della traccia Presente solo per TRACE_METRIC |
info_traccia | RECORD | Presente solo per DURATION_TRACE ,
SCREEN_TRACE e TRACE_METRIC |
trace_info.duration_us | int64 |
|
trace_info.screen_info | RECORD | Presente solo per SCREEN_TRACE |
trace_info.screen_info.slow_frame_ratio | float64 | Rapporto dei frame lenti per questa traccia schermo, compreso tra 0 e 1 Ad esempio, un valore 0,05 indica che il 5% dei frame per questa schermata. il rendering dell'istanza ha richiesto più di 16 ms) |
trace_info.screen_info.frozen_frame_ratio | float64 | Rapporto tra frame bloccati per questa traccia dello schermo, compreso tra 0 e 1 (ad esempio, un valore di 0,05 indica che il 5% dei frame per questa istanza dello schermo ha richiesto più di 700 ms per il rendering) |
trace_info.metric_info | RECORD | Presente solo per TRACE_METRIC |
trace_info.metric_info.metric_value | int64 | Valore della metrica di traccia |
info_rete | RECORD | Presente solo per NETWORK_REQUEST |
info_rete.codice_risposta | int64 | Il codice di risposta HTTP per la risposta di rete (ad esempio, 200, 404). |
network_info.response_mime_type | stringa | Tipo MIME della risposta della rete (ad esempio "text/html") |
network_info.request_http_method | stringa | Metodo HTTP della richiesta di rete (ad esempio "GET" o "POST") |
network_info.request_payload_bytes | int64 | Dimensione del payload della richiesta di rete Unità: byte |
network_info.response_payload_bytes | int64 | Dimensioni del payload della risposta di rete Unità: byte |
network_info.request_completed_time_us | int64 | Microsecondi dopo event_timestamp al termine dell'invio della richiesta di reteUnità: microsecondo |
network_info.response_initiated_time_us | int64 | Microsecondi dopo event_timestamp quando la risposta della rete
viene avviataUnità: microsecondo |
network_info.response_completed_time_us | int64 | Microsecondi dopo event_timestamp quando la risposta della rete
completatoUnità: microsecondo |
Che cosa puoi fare con i dati esportati?
Le sezioni seguenti forniscono esempi di query che puoi eseguire BigQuery rispetto ai dati Performance Monitoring esportati.
Visualizza la suddivisione media della latenza di avvio dell'app per paese
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;
Controllare il rapporto di frame bloccati in base a varie condizioni
Ad esempio, puoi controllare il rapporto tra frame bloccati e la quantità di Tempo trascorso dagli utenti su ogni schermata dell'app quando utilizzano tipi di segnali radio diversi (Wi-Fi, 4G e così via).
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;
Percentuale di successi della cache di computing per il caricamento di determinati tipi di file dal disco
Questa analisi presuppone che tu abbia implementato una traccia di codice personalizzata per il caricamento da
disco con un attributo personalizzato denominato file-extension
e una metrica personalizzata (un
TRACE_METRIC
) denominato cache-hit
impostato su 1
se successo della cache e 0
se
fallimento della cache.
Ad esempio, puoi calcolare la percentuale di successi della cache per il caricamento di file PNG. dal 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);
Controlla l'ora del giorno in cui gli utenti inviano richieste di rete
Ad esempio, puoi controllare a che ora del giorno gli utenti degli Stati Uniti inviare richieste di rete dall'app:
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;
Porta i tuoi dati di Performance Monitoring sempre con te
A volte vuoi accedere ai dati Performance Monitoring lato server o eseguirne il push a un'altra soluzione di terze parti. Al momento non è previsto alcun costo per l'esportazione dei dati.
Per esportare i dati:
Utilizzo dell'interfaccia utente web di BigQuery
Esecuzione del comando dell'interfaccia a riga di comando
bq extract
L'invio di un estrazione job tramite l'API o le librerie client.
Prezzi
Non è previsto alcun costo per l'esportazione dei dati da Performance Monitoring e BigQuery offre generosi limiti di utilizzo senza costi aggiuntivi. Per informazioni dettagliate, consulta Prezzi di BigQuery o la sandbox BigQuery.