Esporta i dati di Performance Monitoring in BigQuery

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

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

  2. 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.

    • 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 metrica
    • parent_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")
  • Per Android - VersionName
  • Per iOS: CFBundleShortVersionString
versione_build_app stringa Versione build dell'applicazione (ad esempio "1523456")
  • Per Android - VersionCode
  • Per iOS: CFBundleVersion
versione_OS stringa Versione del sistema operativo del dispositivo client
  • Per Android: livello API Android (ad es. "26")
  • Per iOS: versione iOS (ad esempio "11.4")
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:
  • DURATION_TRACE: tracce che raccolgono, per predefinita, la metrica "durata", che include avvio dell'app, app in primo piano e app in background, nonché qualsiasi tracce di codice personalizzate create con lo sviluppatore
  • SCREEN_TRACE: tracce che coprono la durata di una schermata (tracce di rendering dello schermo)
  • TRACE_METRIC: metriche personalizzate che sono associate a tracce di codice personalizzate strumentate dallo sviluppatore
  • NETWORK_REQUEST: tracce che coprono l'intera durata di una richiesta di rete (tracce delle richieste di rete HTTP)
event_name stringa Nome dell'evento
  • Per DURATION_TRACE - nome traccia
  • Per TRACE_METRIC: nome della metrica personalizzata
  • Per SCREEN_TRACE - _st_ seguito dal nome della traccia
  • Per NETWORK_REQUEST: pattern URL della richiesta di rete
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
  • Per DURATION_TRACE e SCREEN_TRACE — Durata ("durata") dall'inizio alla fine di la traccia
  • Per TRACE_METRIC: durata ("durata") dall'inizio alla fine della traccia padre
di Gemini Advanced. Unità: microsecondo
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 rete
Unità: microsecondo
network_info.response_initiated_time_us int64 Microsecondi dopo event_timestamp quando la risposta della rete viene avviata
Unità: microsecondo
network_info.response_completed_time_us int64 Microsecondi dopo event_timestamp quando la risposta della rete completato
Unità: 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.