Esporta i dati di monitoraggio delle prestazioni in BigQuery

Puoi esportare i dati di monitoraggio delle prestazioni dalle app Apple e Android in BigQuery per ulteriori analisi. BigQuery ti consente di analizzare i dati utilizzando BigQuery SQL, esportarli in un altro provider cloud e persino utilizzare i dati per i tuoi modelli ML personalizzati.

Abilita esportazione BigQuery

  1. Vai alla pagina Integrazioni nella console Firebase, quindi fai clic su Collegamento nella scheda BigQuery .

  2. Segui le istruzioni sullo schermo per abilitare BigQuery.

Quando abiliti l'esportazione BigQuery per il monitoraggio delle prestazioni:

  • Firebase esporta una copia dei tuoi dati esistenti in BigQuery.

    • Al collegamento iniziale, Firebase pianifica automaticamente le tabelle BigQuery per il backfill dei dati degli ultimi 7 giorni in modo che tu possa iniziare subito a sperimentare. Attendi alcune ore affinché i dati iniziali siano disponibili in BigQuery.

    • Puoi anche pianificare manualmente i backfill dei dati per gli ultimi 30 giorni.

  • Dopo aver creato il set di dati, la posizione non può essere modificata, ma puoi copiare il set di dati in una posizione diversa o spostare (ricreare) manualmente il set di dati in una posizione diversa. Per ulteriori informazioni, consulta Modifica della posizione del set di dati .

  • Firebase imposta sincronizzazioni regolari dei tuoi dati dal tuo progetto Firebase a BigQuery. Queste operazioni di esportazione giornaliere iniziano alle 4:00 ora del Pacifico e di solito terminano in 24 ore.

  • Per impostazione predefinita, tutte le app del tuo progetto sono collegate a BigQuery e tutte le app che aggiungi in seguito al progetto vengono automaticamente collegate a BigQuery. Puoi gestire quali app inviano dati .

Per disattivare l'esportazione BigQuery, scollega il tuo progetto nella console di Firebase.

Quali dati vengono esportati in BigQuery?

Per ogni app nel progetto, l'esportazione crea una tabella che include tutti gli eventi di prestazioni acquisiti. Ogni riga della tabella è un singolo evento di performance che può essere uno dei seguenti:

  • Traccia della durata : tracce che raccolgono, per impostazione predefinita, la metrica della "durata", che include l'avvio dell'app, l'app in primo piano e l'app in background, nonché eventuali tracce di codice personalizzato strumentate dallo sviluppatore

    • event_type è DURATION_TRACE
    • event_name è uguale al nome della traccia
  • Metrica di traccia: metriche personalizzate associate a tracce di codice personalizzato strumentate dallo sviluppatore

    • event_type è TRACE_METRIC
    • event_name è il nome della metrica
    • parent_trace_name è il nome della traccia che contiene questa metrica
  • Traccia dello schermo : tracce che coprono la durata di uno schermo (tracce di rendering dello schermo)

    • event_type è SCREEN_TRACE
    • event_name è il prefisso _st_ più il nome dello schermo effettivo
  • Richiesta di rete : tracce che coprono la durata di una richiesta di rete (tracce di richiesta di rete HTTP)

    • event_type è NETWORK_REQUEST
    • event_name è il modello classificato dell'URL della richiesta di rete

Ogni evento di performance contiene gli attributi dell'evento (come il paese e l'operatore del dispositivo client), nonché informazioni specifiche dell'evento:

  • Le tracce della durata, le metriche di traccia 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 dati dettagliato

Nome campo Tipo Descrizione
event_timestamp timestamp Timestamp dall'epoca in cui l'evento è stato avviato sul dispositivo client (avvio della traccia, avvio della rete, ecc.)
app_display_version corda Visualizza la versione dell'applicazione (ad esempio, "4.1.7")
  • Per Android — VersionName
  • Per iOS: CFBundleShortVersionString
app_build_version corda Versione build dell'applicazione (ad esempio "1523456")
  • Per Android — VersionCode
  • Per iOS — CFBundleVersion
os_version corda Versione del sistema operativo del dispositivo client
  • Per Android: livello API Android (ad esempio "26")
  • Per iOS — versione iOS (ad esempio "11.4")
nome del dispositivo corda Nome del dispositivo client (ad esempio "Google Pixel")
nazione corda Codice paese di due lettere del paese da cui ha avuto luogo l'evento (ad esempio, "US" o "ZZ" per paese sconosciuto)
vettore corda Gestore del dispositivo client
tipo_radio corda Tipo di radio attivo al momento dell'evento (ad esempio "WIFI")
attributi_personalizzati ARRAY<REGISTRAZIONE> Tutti gli attributi personalizzati allegati a questo evento
custom_attributes.key corda Chiave dell'attributo personalizzato
valore_attributo_personalizzato corda Valore dell'attributo personalizzato
Tipo di evento corda Tipologia dell'evento; valori possibili:
  • DURATION_TRACE — tracce che raccolgono, per impostazione predefinita, la metrica di "durata", che include l'avvio dell'app, l'app in primo piano e l'app in background, nonché eventuali tracce di codice personalizzato strumentate dallo sviluppatore
  • SCREEN_TRACE — tracce che coprono la durata di uno schermo (tracce di rendering dello schermo)
  • TRACE_METRIC — metriche personalizzate associate a tracce di codice personalizzato strumentate dallo sviluppatore
  • NETWORK_REQUEST — tracce che coprono la durata di una richiesta di rete (tracce di richiesta di rete HTTP)
nome dell'evento corda Nome dell'evento
  • Per DURATION_TRACE — nome della traccia
  • Per TRACE_METRIC : nome della metrica personalizzata
  • Per SCREEN_TRACE_st_ seguito dal nome della traccia
  • Per NETWORK_REQUEST — pattern URL richiesta di rete
nome_traccia_genitore corda Nome della traccia padre che contiene la metrica di traccia
Presente solo per TRACE_METRIC
trace_info DISCO Presente solo per DURATION_TRACE , SCREEN_TRACE e TRACE_METRIC
trace_info.duration_us int64
  • Per DURATION_TRACE e SCREEN_TRACE — Durata ("durata") dall'inizio alla fine della traccia
  • Per TRACE_METRIC — intervallo di tempo ("durata") dall'inizio alla fine della traccia padre
Unità: microsecondo
trace_info.screen_info DISCO Presente solo per SCREEN_TRACE
trace_info.screen_info.slow_frame_ratio galleggiante64 Rapporto di frame lenti per questa traccia dello schermo, compreso tra 0 e 1 (ad esempio, un valore di 0,05 significa che il 5% dei frame per questa istanza dello schermo ha richiesto più di 16 ms per il rendering)
trace_info.screen_info.frozen_frame_ratio galleggiante64 Rapporto dei fotogrammi bloccati per questa traccia dello schermo, compreso tra 0 e 1 (ad esempio, un valore di 0,05 significa che il 5% dei fotogrammi per questa istanza dello schermo ha richiesto più di 700 ms per il rendering)
trace_info.metric_info DISCO Presente solo per TRACE_METRIC
trace_info.metric_info.metric_value int64 Valore della metrica di traccia
info_rete DISCO Presente solo per NETWORK_REQUEST
network_info.response_code int64 Codice di risposta HTTP per la risposta di rete (ad esempio, 200, 404)
network_info.response_mime_type corda Tipo MIME della risposta di rete (ad esempio, "text/html")
network_info.request_http_method corda Metodo HTTP della richiesta di rete (ad esempio "GET" o "POST")
network_info.request_payload_bytes int64 Dimensioni del carico utile della richiesta di rete
Unità: byte
network_info.response_payload_bytes int64 Dimensione del carico utile della risposta di rete
Unità: byte
network_info.request_completed_time_us int64 Microsecondi dopo event_timestamp quando l'invio della richiesta di rete è completo
Unità: microsecondo
network_info.response_initiated_time_us int64 Microsecondi dopo event_timestamp quando viene avviata la risposta di rete
Unità: microsecondo
network_info.response_completed_time_us int64 Microsecondi dopo event_timestamp al completamento della risposta di rete
Unità: microsecondo

Cosa puoi fare con i dati esportati?

Le sezioni seguenti offrono esempi di query che puoi eseguire in BigQuery rispetto ai dati di monitoraggio delle prestazioni esportati.

Visualizza la ripartizione media della latenza di inizio 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;

Controlla il rapporto dei fotogrammi bloccati rispetto a varie condizioni

Ad esempio, puoi controllare il rapporto tra i fotogrammi bloccati insieme alla quantità di tempo che gli utenti trascorrono su ciascuna schermata della tua app su diversi tipi di radio (WiFi, 4G, ecc.).

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;

Calcola la frequenza di accesso alla cache per il caricamento di determinati tipi di file dal disco

Questa analisi presuppone che tu abbia strumentato una traccia di codice personalizzata per il caricamento dal disco con un attributo personalizzato denominato file-extension e una metrica personalizzata (a TRACE_METRIC ) denominata cache-hit che è impostata su 1 se cache hit e 0 se cache miss.

Ad esempio, puoi calcolare la percentuale di hit 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);

Verificare l'ora del giorno in cui gli utenti inviano le richieste di rete

Ad esempio, puoi controllare a quale ora del giorno gli utenti degli Stati Uniti inviano richieste di rete dalla tua 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 monitoraggio delle prestazioni ovunque

A volte si desidera accedere ai dati di monitoraggio delle prestazioni lato server o inviarli a un'altra soluzione di terze parti. Attualmente non ci sono costi per l'esportazione dei dati.

Puoi esportare i tuoi dati:

  • Utilizzo dell'interfaccia utente web di BigQuery

  • Esecuzione del comando CLI bq extract

  • Invio di un lavoro di estrazione tramite l'API o le librerie client.

Prezzo

Non sono previsti addebiti per l'esportazione dei dati da Monitoraggio delle prestazioni e BigQuery offre generosi limiti di utilizzo gratuiti. Per informazioni dettagliate, consulta i prezzi di BigQuery o la sandbox di BigQuery .