Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Esporta i dati di monitoraggio delle prestazioni in BigQuery

È possibile esportare i dati di monitoraggio delle prestazioni da iOS 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 integrazioni pagina nella console Firebase, quindi fare clic su link nella scheda BigQuery.

  2. Segui le istruzioni sullo schermo per abilitare BigQuery.

Quando colleghi il tuo progetto a BiqQuery:

  • Firebase esporta una copia dei dati esistenti a BigQuery.

    • Al momento del collegamento iniziale, Firebase pianifica automaticamente le tue tabelle BigQuery per riempire i 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.

    • È possibile anche manualmente riporti dati di pianificazione per un massimo di ultimi 30 giorni.

  • Firebase configura le sincronizzazioni giornaliere dei tuoi dati dal tuo progetto Firebase a BigQuery.

  • Per impostazione predefinita, tutte le app nel tuo progetto sono collegate a BigQuery e tutte le app che aggiungi in seguito al progetto vengono collegate automaticamente a BigQuery. È possibile gestire le applicazioni che inviano i dati .

Per disattivare BigQuery esportazione, scollegare il progetto nella console Firebase.

Quali dati vengono esportati in BigQuery?

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

  • Durata traccia - tracce che raccolgono, per impostazione predefinita, la metrica di "durata", che includono avvio app, app-a-primo piano, e app-in-fondo, così come le tracce di codice personalizzato sviluppatori strumentati

    • event_type è DURATION_TRACE
    • event_name è lo stesso del nome di traccia
  • Trace metrica - metriche personalizzate che sono associati con tracce di codice personalizzato sviluppatori strumentati

    • event_type è TRACE_METRIC
    • event_name è il nome della metrica
    • parent_trace_name è il nome di traccia che contiene questa metrica
  • Schermo traccia - tracce che attraversano il corso della vita di uno schermo (tracce di rendering dello schermo)

    • event_type è SCREEN_TRACE
    • event_name IS prefisso _st_ più il nome della schermata attuale
  • Richiesta di rete - le tracce che attraversano il corso della vita di una richiesta di rete (HTTP richiesta di rete tracce)

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

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

  • Durata tracce, metriche tracce, e le tracce dello schermo contengono trace_info
  • Metriche Trace contengono trace_info.metric_info
  • Tracce dello schermo contengono trace_info.screen_info
  • Tracce di rete contengono network_info

Schema dettagliato dei dati

Nome del campo Tipo Descrizione
event_timestamp marca temporale Timestamp dall'epoca in cui l'evento è iniziato sul dispositivo client (inizio 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 si è verificato l'evento (ad esempio, "US" o "ZZ" per paese sconosciuto)
vettore corda Portante del dispositivo client
tipo_radio corda Tipo di radio attivo quando si è verificato l'evento (ad esempio, "WIFI")
attributi_personalizzati ARRAY<REGISTRA> Tutti gli attributi personalizzati allegati a questo evento
custom_attributes.key corda Chiave dell'attributo personalizzato
custom_attributes.value corda Valore dell'attributo personalizzato
Tipo di evento corda Tipo di evento; valori possibili:
  • DURATION_TRACE - tracce che raccolgono, per impostazione predefinita, la metrica di "durata", che includono avvio app, app-a-primo piano, e app-in-fondo, così come le tracce di codice personalizzato sviluppatori strumentati
  • SCREEN_TRACE - tracce che attraversano il corso della vita di uno schermo (tracce di rendering dello schermo)
  • TRACE_METRIC metriche personalizzate che sono associati con tracce di codice personalizzato per gli sviluppatori di strumentazione -
  • NETWORK_REQUEST - tracce che attraversano il corso della vita di una richiesta di rete (HTTP richiesta di rete tracce)
nome dell'evento corda Nome dell'evento
  • Per DURATION_TRACE - nome trace
  • Per TRACE_METRIC - nome metrica personalizzata
  • Per SCREEN_TRACE - _st_ seguita dal nome di traccia
  • Per NETWORK_REQUEST - rete modello richiesta di URL
parent_trace_name corda Nome della traccia padre che trasporta la metrica di traccia
Solo presenti per TRACE_METRIC
trace_info DISCO Solo presenti per DURATION_TRACE , SCREEN_TRACE e TRACE_METRIC
trace_info.duration_us int64
  • Per DURATION_TRACE e SCREEN_TRACE - Periodo di tempo ( "durata") dall'inizio alla fine della traccia
  • Per TRACE_METRIC - periodo di tempo ( "durata") dall'inizio alla fine della traccia genitore
Unità: microsecondo
trace_info.screen_info DISCO Solo presenti per SCREEN_TRACE
trace_info.screen_info.slow_frame_ratio float64 Rapporto di frame lenti per questa traccia dello schermo, 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 float64 Rapporto di frame bloccati per questa traccia dello schermo, 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 700 ms per il rendering)
trace_info.metric_info DISCO Solo presenti per TRACE_METRIC
trace_info.metric_info.metric_value int64 Valore della metrica di traccia
network_info DISCO Solo presenti 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, "testo/html")
network_info.request_http_method corda 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 Dimensione del payload della risposta di rete
Unità: byte
network_info.request_completed_time_us int64 Microsecondi dopo event_timestamp quando richiesta di rete l'invio è completo
Unità: microsecondo
network_info.response_initiated_time_us int64 Microsecondi dopo event_timestamp quando viene avviato di risposta della rete
Unità: microsecondo
network_info.response_completed_time_us int64 Microsecondi dopo event_timestamp quando la risposta di rete è completata
Unità: microsecondo

Cosa puoi fare con i dati esportati?

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

Visualizza la ripartizione 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;

Controlla il rapporto tra fotogrammi bloccati rispetto a varie condizioni

Ad esempio, puoi controllare il rapporto tra i frame bloccati insieme alla quantità di tempo che gli utenti trascorrono su ciascuna schermata della tua app quando utilizzano 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 il tasso di successo della cache per il caricamento di determinati tipi di file dal disco

Questa analisi si presuppone che si strumentati una traccia codice personalizzato per il caricamento da disco con un attributo personalizzato denominato file-extension e una metrica personalizzata (un TRACE_METRIC ) denominato cache-hit che è impostato a 1 se la cache colpo e 0 se la cache perdere.

Ad esempio, puoi calcolare il tasso di successo 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 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. Al momento non ci sono costi per l'esportazione dei dati.

Puoi esportare i tuoi dati tramite:

  • Utilizzo dell'interfaccia utente web di BigQuery

  • L'esecuzione del CLI di comando bq extract

  • Invio di un lavoro estratto tramite le librerie API o client.

Prezzi

L'esportazione dei dati da Performance Monitoring è gratuita e BigQuery offre ampi limiti di utilizzo gratuiti. Per informazioni dettagliate, fare riferimento a BigQuery prezzi o la sandbox BigQuery .