Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Esporta i dati di Firebase Crashlytics in BigQuery

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Puoi esportare i dati di Crashlytics in BigQuery per ulteriori analisi. BigQuery ti consente di analizzare i dati utilizzando BigQuery SQL, esportarli in un altro provider cloud e utilizzarli per la visualizzazione e dashboard personalizzati con Google Data Studio.

Abilita esportazione BigQuery

  1. Vai alla pagina Integrazioni nella console Firebase.
  2. Nella scheda BigQuery , fai clic su Link .
  3. Segui le istruzioni sullo schermo per abilitare BigQuery.

Quando colleghi il tuo progetto a BigQuery:

  • Firebase imposta le sincronizzazioni giornaliere dei tuoi dati dal tuo progetto Firebase a BigQuery.
  • 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 .
  • Firebase esporta una copia dei tuoi dati esistenti in BigQuery. Per ogni app collegata, include una tabella batch contenente i dati della sincronizzazione giornaliera.
  • Se abiliti l'esportazione in streaming di Crashlytics BigQuery, tutte le app collegate avranno anche una tabella in tempo reale contenente dati in costante aggiornamento.

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

Quali dati vengono esportati in BigQuery?

I dati di Firebase Crashlytics vengono esportati in un set di dati BigQuery denominato firebase_crashlytics . Per impostazione predefinita, le singole tabelle verranno create all'interno del set di dati Crashlytics per ogni app nel tuo progetto. Firebase nomina le tabelle in base all'identificatore del bundle dell'app, con punti convertiti in caratteri di sottolineatura e un nome di piattaforma aggiunto alla fine.

Ad esempio, i dati per un'app con l'ID com.google.test sarebbero in una tabella denominata com_google_test_ANDROID . Questa tabella batch viene aggiornata una volta al giorno. Se abiliti l'esportazione in streaming di Crashlytics BigQuery, anche i dati di Firebase Crashlytics verranno trasmessi in streaming in tempo reale a com_google_test_ANDROID_REALTIME .

Ogni riga in una tabella rappresenta un evento che si è verificato nell'app, inclusi arresti anomali, errori non irreversibili e ANR.

Abilita l'esportazione in streaming di Crashlytics BigQuery

Puoi eseguire lo streaming dei dati di Crashlytics in tempo reale con BigQueryStreaming . È possibile utilizzarlo per qualsiasi scopo che richieda dati in tempo reale, ad esempio la presentazione di informazioni in un dashboard in tempo reale, la visualizzazione di un'implementazione in tempo reale o il monitoraggio di problemi applicativi che attivano avvisi e flussi di lavoro personalizzati.

L'esportazione in streaming di Crashlytics BigQuery non è disponibile per la sandbox BigQuery.

Quando abiliti l'esportazione in streaming di Crashlytics BigQuery, oltre alla tabella batch avrai una tabella in tempo reale. Ecco le differenze di cui dovresti essere a conoscenza tra le tabelle:

Tabella dei lotti Tabella in tempo reale
  • Dati esportati una volta al giorno
  • Eventi archiviati in modo duraturo prima della scrittura in batch in BigQuery
  • Può essere riempito fino a 90 giorni prima
  • Dati esportati in tempo reale
  • Nessun riempimento disponibile

La tabella batch è ideale per l'analisi a lungo termine e l'identificazione delle tendenze nel tempo perché memorizziamo gli eventi in modo duraturo prima di scriverli e possono essere inseriti nella tabella per un massimo di 90 giorni. Quando scriviamo i dati nella tua tabella in tempo reale, li scriviamo immediatamente in BigQuery, quindi è l'ideale per dashboard live e avvisi personalizzati. Queste due tabelle possono essere combinate con una query di stitching per ottenere i vantaggi di entrambe. Vedere la query Esempio 9 di seguito.

Per impostazione predefinita, la tabella in tempo reale ha un tempo di scadenza della partizione di 30 giorni. Per informazioni su come modificarlo, vedere Aggiornamento della scadenza della partizione .

Abilita lo streaming di Crashlytics BigQuery

Per abilitare lo streaming, vai alla sezione Crashlytics della pagina delle integrazioni di BigQuery e seleziona la casella di controllo Includi streaming .

Modello di studio dati

Per abilitare i dati in tempo reale nel modello di Data Studio, segui le istruzioni in Visualizzazione dei dati di Crashlytics esportati con Data Studio .

Visualizzazioni

Puoi trasformare le query di esempio seguenti in visualizzazioni utilizzando l'interfaccia utente di BigQuery. Vedere Creazione di viste per istruzioni dettagliate.

Cosa puoi fare con i dati esportati?

Le esportazioni di BigQuery contengono dati non elaborati sugli arresti anomali, inclusi tipo di dispositivo, sistema operativo, eccezioni (app Android) o errori (app Apple) e registri di Crashlytics, nonché altri dati.

Utilizzo dei dati di Firebase Crashlytics in BigQuery

Gli esempi seguenti mostrano le query che puoi eseguire sui dati di Crashlytics. Queste query generano rapporti che non sono disponibili nel dashboard di Crashlytics.

Esempi di query Crashlytics

Gli esempi seguenti mostrano come generare rapporti che aggregano i dati degli eventi di arresto anomalo in riepiloghi più facilmente comprensibili.

Esempio 1: arresti anomali diurni

Dopo aver lavorato per correggere il maggior numero possibile di bug, uno sviluppatore capo pensa che il suo team sia finalmente pronto per lanciare la loro nuova app per la condivisione di foto. Prima di farlo, vogliono controllare il numero di arresti anomali al giorno nell'ultimo mese, per essere sicuri che il loro bug-bash abbia reso l'app più stabile nel tempo:

SELECT
  COUNT(DISTINCT event_id) AS number_of_crashes,
  FORMAT_TIMESTAMP("%F", event_timestamp) AS date_of_crashes
FROM
 `projectId.firebase_crashlytics.package_name_ANDROID`
GROUP BY
  date_of_crashes
ORDER BY
  date_of_crashes DESC
LIMIT 30;

Esempio 2: trova gli arresti anomali più pervasivi

Per assegnare correttamente la priorità ai piani di produzione, un project manager riflette su come evidenziare i primi 10 arresti anomali più pervasivi del proprio prodotto. Producono una query che fornisce i punti di dati pertinenti:

SELECT
  DISTINCT issue_id,
  COUNT(DISTINCT event_id) AS number_of_crashes,
  COUNT(DISTINCT installation_uuid) AS number_of_impacted_user,
  blame_frame.file,
  blame_frame.line
FROM
  `projectId.firebase_crashlytics.package_name_ANDROID`
WHERE
  event_timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(),INTERVAL 168 HOUR)
  AND event_timestamp < CURRENT_TIMESTAMP()
GROUP BY
  issue_id,
  blame_frame.file,
  blame_frame.line
ORDER BY
  number_of_crashes DESC
LIMIT 10;

Esempio 3: i primi 10 dispositivi che si arrestano in modo anomalo

L'autunno è la nuova stagione del telefono! Uno sviluppatore sa che significa anche che è una nuova stagione di problemi specifici del dispositivo. Per anticipare i problemi di compatibilità incombenti, hanno messo insieme una query che identifica i 10 dispositivi che hanno subito il maggior numero di arresti anomali nell'ultima settimana:

SELECT
  device.model,
COUNT(DISTINCT event_id) AS number_of_crashes
FROM
  `projectId.firebase_crashlytics.package_name_ANDROID`
WHERE
  event_timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 168 HOUR)
  AND event_timestamp < CURRENT_TIMESTAMP()
GROUP BY
  device.model
ORDER BY
  number_of_crashes DESC
LIMIT 10;

Esempio 4: Filtra per chiave personalizzata

Uno sviluppatore di giochi vuole sapere quale livello del proprio gioco subisce il maggior numero di arresti anomali. Per aiutarli a tenere traccia di tale statistica, impostano una chiave Crashlytics personalizzata current_level e la aggiornano ogni volta che l'utente raggiunge un nuovo livello.

Obiettivo-C

CrashlyticsKit setIntValue:3 forKey:@"current_level";

Veloce

Crashlytics.sharedInstance().setIntValue(3, forKey: "current_level");

Giava

Crashlytics.setInt("current_level", 3);

Con quella chiave nella loro esportazione BigQuery, scrivono quindi una query per segnalare la distribuzione dei valori di current_level associati a ciascun evento di arresto anomalo:

SELECT
COUNT(DISTINCT event_id) AS num_of_crashes,
  value
FROM
  `projectId.firebase_crashlytics.package_name_ANDROID`
UNNEST(custom_keys)
WHERE
  key = "current_level"
GROUP BY
  key,
  value
ORDER BY
  num_of_crashes DESC

Esempio 5: Estrazione dell'ID utente

Uno sviluppatore ha un'app in accesso anticipato. La maggior parte dei loro utenti lo adora, ma tre hanno riscontrato un numero insolito di arresti anomali. Per arrivare alla fine del problema, scrivono una query che estrae tutti gli eventi di arresto anomalo per quegli utenti, utilizzando i loro ID utente:

SELECT *
FROM
  `projectId.firebase_crashlytics.package_name_ANDROID`
WHERE
  user.id IN ("userid1", "userid2", "userid3")
ORDER BY
  user.id
 

Esempio 6: trova tutti gli utenti che devono affrontare un particolare problema di arresto anomalo

Uno sviluppatore ha rilasciato un bug critico a un gruppo di beta tester. Il team è stato in grado di utilizzare la query dell'Esempio 2 sopra per identificare l'ID specifico del problema di arresto anomalo. Ora vorrebbe eseguire una query per estrarre l'elenco degli utenti dell'app che sono stati interessati da questo arresto anomalo:

SELECT user.id as user_id
FROM
  `projectId.firebase_crashlytics.package_name_ANDROID`
WHERE
  issue_id = "YOUR_ISSUE_ID"
  AND application.display_version = ""
  AND user.id != ""
ORDER BY
  user.id;

Esempio 7: numero di utenti interessati da un problema di arresto anomalo, suddiviso per paese

Ora il team ha rilevato un bug critico durante il lancio di una nuova versione. Sono stati in grado di utilizzare la query dell'Esempio 2 sopra per identificare l'ID specifico del problema di arresto anomalo. Il team ora vorrebbe vedere se questo crash si è diffuso agli utenti in diversi paesi del mondo.

Per scrivere questa query, il team dovrà:

  1. Abilita le esportazioni BigQuery per Google Analytics. Consulta Esportare i dati del progetto in BigQuery .

  2. Aggiorna la sua app per trasferire un ID utente sia nell'SDK di Google Analytics che nell'SDK di Crashlytics.

    Obiettivo-C
    CrashlyticsKit setUserIdentifier:@"123456789";
    FIRAnalytics setUserID:@"12345678 9";
    
    Veloce
    Crashlytics.sharedInstance().setUserIdentifier("123456789");
    Analytics.setUserID("123456789");
    
    Giava
    Crashlytics.setUserIdentifier("123456789");
    mFirebaseAnalytics.setUserId("123456789");
    
  3. Scrivi una query che utilizzi il campo ID utente per unire eventi nel set di dati BigQuery di Google Analytics con arresti anomali nel set di dati di Crashlytics BigQuery:

    SELECT DISTINCT c.issue_id, a.geo.country, COUNT(DISTINCT c.user.id) as num_users_impacted
    FROM `projectId.firebase_crashlytics.package_name_ANDROID` c
    INNER JOIN  `projectId.analytics_YOUR_TABLE.events_*` a on c.user.id = a.user_id
    WHERE
     c.issue_id = "YOUR_ISSUE_ID"
     AND a._TABLE_SUFFIX BETWEEN '20190101'
     AND '20200101'
    GROUP BY
     c.issue_id,
     a.geo.country,
     c.user.id
    

Esempio 8: i primi 5 problemi fino ad oggi

Richiede l'abilitazione dell'esportazione in streaming BigQuery di Crashlytics

SELECT
  issue_id,
  COUNT(DISTINCT event_id) AS events
FROM
  `your_project.firebase_crashlytics.package_name_ANDROID_REALTIME`
WHERE
  DATE(event_timestamp) = CURRENT_DATE()
GROUP BY
  issue_id
ORDER BY
  events DESC
LIMIT
  5;

Esempio 9: i primi 5 problemi dal DATE, incluso oggi

Richiede l'abilitazione dell'esportazione in streaming BigQuery di Crashlytics.

In questo esempio, combiniamo tabelle batch e in tempo reale per aggiungere informazioni in tempo reale ai dati batch affidabili. Poiché event_id è una chiave primaria, possiamo utilizzare DISTINCT event_id per deduplicare tutti gli eventi comuni dalle due tabelle.

SELECT
  issue_id,
  COUNT(DISTINCT event_id) AS events
FROM (
  SELECT
    issue_id,
    event_id,
    event_timestamp
  FROM
    `your_project.firebase_crashlytics.package_name_ANDROID_REALTIME`
  UNION ALL
  SELECT
    issue_id,
    event_id,
    event_timestamp
  FROM
    `your_project.firebase_crashlytics.package_name_ANDROID`)
WHERE
  event_timestamp >= "2020-01-13"
GROUP BY
  issue_id
ORDER BY
  events DESC
LIMIT
  5;

Comprensione dello schema Firebase Crashlytics in BigQuery

Quando colleghi Crashlytics a BigQuery, Firebase esporta gli eventi recenti (crash, errori non irreversibili e ANR), inclusi gli eventi fino a due giorni prima del collegamento, con la possibilità di eseguire il backfill fino a novanta giorni.

Da quel momento fino a quando non disabiliti il ​​collegamento, Firebase esporta gli eventi Crashlytics su base giornaliera. Possono essere necessari alcuni minuti prima che i dati siano disponibili in BigQuery dopo ogni esportazione.

Set di dati

Firebase Crashlytics crea un nuovo set di dati nei dati di BigQuery per Crashlytics. Il set di dati copre l'intero progetto, anche se ha più app.

Tabelle

Firebase Crashlytics crea una tabella nel set di dati per ogni app nel tuo progetto, a meno che tu non abbia scelto di non esportare i dati per quell'app. Firebase nomina le tabelle in base all'identificatore del bundle dell'app, con punti convertiti in caratteri di sottolineatura e un nome di piattaforma aggiunto alla fine.

Ad esempio, i dati per un'app Android con l'ID com.google.test sarebbero in una tabella denominata com_google_test_ANDROID e i dati in tempo reale (se abilitati) sarebbero in una tabella denominata com_google_test_ANDROID_REALTIME

Le tabelle contengono un set standard di dati Crashlytics oltre a qualsiasi chiave Crashlytics personalizzata definita dagli sviluppatori.

Righe

Ogni riga di una tabella rappresenta un errore riscontrato dall'app.

Colonne

Le colonne in una tabella sono identiche per arresti anomali, errori non irreversibili e ANR. Se l'esportazione in streaming di Crashlytics BigQuery è abilitata, la tabella in tempo reale avrà le stesse colonne della tabella batch. Le colonne all'interno dell'esportazione sono elencate di seguito.

Senza tracce di stack

Colonne presenti in righe che rappresentano eventi senza tracce di stack.

Nome campo Tipo di dati Descrizione
piattaforma CORDA App Apple o Android
bundle_identifier CORDA L'ID bundle, ad es. com.google.gmail
id_evento CORDA Un ID univoco per l'evento
è_fatale BOOLEANO Se l'app si è arrestata in modo anomalo
tipo_errore CORDA Tipo di errore dell'evento (FATAL, NON_FATAL, ANR)
problema_id CORDA Un problema associato all'evento
event_timestamp SEGNALIBRO Quando si è verificato l'evento
dispositivo DISCO Il dispositivo su cui si è verificato l'evento
produttore.di.dispositivo CORDA Il produttore del dispositivo
Modello del dispositivo CORDA Il modello del dispositivo
dispositivo.architettura CORDA X86_32, X86_64, ARMV7, ARM64, ARMV7S o ARMV7K
memoria DISCO Lo stato della memoria del dispositivo
memoria.usata INT64 Byte di memoria utilizzati
senza.memoria INT65 Byte di memoria rimanenti
Conservazione DISCO La memoria permanente del dispositivo
memoria.usata INT64 Byte di memoria utilizzati
deposito.libero INT64 Byte di memoria rimanenti
sistema operativo DISCO Dettagli del sistema operativo del dispositivo
sistema_operativo.display_versione CORDA La versione del sistema operativo
nome_sistema_operativo CORDA Il nome del sistema operativo
stato_sistema_operativo.stato_di_modifica CORDA MODIFIED o UNMODIFIED, ovvero se il dispositivo è stato jailbroken/rootato
tipo.sistema_operativo CORDA Il tipo di sistema operativo sul dispositivo. Es. IOS, MACOS
sistema_operativo.tipo_di_dispositivo CORDA Il tipo di dispositivo. Es. CELLULARE, TABLET, TV
applicazione DISCO L'app che ha generato l'evento
application.build_version CORDA La versione build dell'app
application.display_version CORDA
utente DISCO Facoltativo: informazioni raccolte sull'utente dell'app
nome utente CORDA Facoltativo: il nome dell'utente
utente.email CORDA Facoltativo: l'indirizzo e-mail dell'utente
ID utente CORDA Facoltativo: un ID specifico dell'app associato all'utente
chiavi_personalizzate REGISTRAZIONE RIPETUTA Coppie chiave-valore definite dallo sviluppatore
chiavi_personalizzate.chiave CORDA Una chiave definita dallo sviluppatore
valore_chiavi_personalizzate CORDA Un valore definito dallo sviluppatore
installazione_uuid CORDA Un ID che identifica un'installazione univoca di app e dispositivi
crashlytics_sdk_versions CORDA La versione di Crashlytics SDK che ha generato l'evento
orientamento_app CORDA RITRATTO, PAESAGGIO, FACE_UP o FACE_DOWN
orientamento_dispositivo CORDA RITRATTO, PAESAGGIO, FACE_UP o FACE_DOWN
stato_processo CORDA SFONDO o PRIMO PIANO
registri REGISTRAZIONE RIPETUTA Messaggi di registro con timestamp generati dal logger Crashlytics, se abilitato
log.timestamp SEGNALIBRO Quando è stato creato il registro
log.messaggio CORDA Il messaggio registrato
briciole di pane REGISTRAZIONE RIPETUTA Breadcrumb di Google Analytics con timestamp, se abilitati
breadcrumbs.timestamp SEGNALIBRO Il timestamp associato al breadcrumb
breadcrumbs.name CORDA Il nome associato al breadcrumb
breadcrumbs.params REGISTRAZIONE RIPETUTA Parametri associati al breadcrumb
breadcrumbs.params.key CORDA Una chiave parametro associata al breadcrumb
breadcrumbs.params.value CORDA Un valore di parametro associato al breadcrumb
incolpare_frame DISCO Il frame identificato come causa principale dell'arresto anomalo o dell'errore
linea_di_colpa INT64 Il numero di riga del file del frame
incolpare_frame.file CORDA Il nome del file frame
incolpare_frame.symbol CORDA Il simbolo idratato, o il simbolo grezzo se non è idratabile
colpa_frame.offset INT64 L'offset del byte nell'immagine binaria che contiene il codice, non impostato per le eccezioni Java
indirizzo_frame_di_colpa INT64 L'indirizzo nell'immagine binaria che contiene il codice, non impostato per i frame Java
libreria_frame.colpa CORDA Il nome visualizzato della libreria che include il frame
incolpare_frame.proprietario CORDA SVILUPPATORE, FORNITORE, RUNTIME, PIATTAFORMA o SISTEMA
incolpare_frame.incolpato BOOLEANO Se l'analisi di Crashlytics ha determinato che questo frame è la causa dell'arresto anomalo o dell'errore
eccezioni REGISTRAZIONE RIPETUTA Solo Android: eccezioni che si sono verificate durante questo evento. Le eccezioni annidate sono presentate in ordine cronologico inverso (leggi: l'ultimo record è la prima eccezione generata)
tipo.eccezione CORDA Il tipo di eccezione, ad esempio java.lang.IllegalStateException
eccezioni.messaggio_eccezione CORDA Un messaggio associato all'eccezione
eccezioni.nidificato BOOLEANO Vero per tutti tranne l'ultima eccezione (ovvero il primo record)
eccezioni.titolo CORDA Il titolo del thread
eccezioni.sottotitolo CORDA Il sottotitolo del thread
eccezioni.incolpate BOOLEANO True se Crashlytics determina che l'eccezione è responsabile dell'errore o dell'arresto anomalo
eccezioni.frames REGISTRAZIONE RIPETUTA I frame associati all'eccezione
Eccezioni.frames.line INT64 Il numero di riga del file del frame
eccezioni.frames.file CORDA Il nome del file frame
eccezioni.frames.simbolo CORDA Il simbolo idratato, o il simbolo grezzo se non è idratabile
offset.frame.eccezione INT64 L'offset del byte nell'immagine binaria che contiene il codice, non impostato per le eccezioni Java
eccezioni.frames.address INT64 L'indirizzo nell'immagine binaria che contiene il codice, non impostato per i frame Java
libreria.frames.exceptions CORDA Il nome visualizzato della libreria che include il frame
proprietari.di.frame.di eccezioni CORDA SVILUPPATORE, FORNITORE, RUNTIME, PIATTAFORMA o SISTEMA
eccezioni.frames.incolpati BOOLEANO Se l'analisi di Crashlytics ha determinato che questo frame è la causa dell'arresto anomalo o dell'errore
errore REGISTRAZIONE RIPETUTA Solo app Apple: errori non fatali
errore.nome_coda CORDA La coda su cui era in esecuzione il thread
codice di errore INT64 Codice di errore associato all'errore NSError registrato personalizzato dell'app
errore.titolo CORDA Il titolo del thread
errore.sottotitolo CORDA Il sottotitolo del thread
errore.incolpato BOOLEANO Se l'analisi di Crashlytics ha determinato che questo frame è la causa dell'errore
frame.errore REGISTRAZIONE RIPETUTA I frame dello stacktrace
linea.frame.errore INT64 Il numero di riga del file del frame
errore.frames.file CORDA Il nome del file frame
simbolo.frame.errore CORDA Il simbolo idratato, o il simbolo grezzo se non è idratabile
offset.frame.errore INT64 L'offset del byte nell'immagine binaria che contiene il codice
indirizzo.frame.errore INT64 L'indirizzo nell'immagine binaria che contiene il codice
libreria.frames.errore CORDA Il nome visualizzato della libreria che include il frame
proprietario.di.frame.errore CORDA SVILUPPATORE, FORNITORE, RUNTIME, PIATTAFORMA o SISTEMA
frame.errore.incolpato BOOLEANO Se l'analisi di Crashlytics ha determinato che questo frame è la causa dell'errore
fili REGISTRAZIONE RIPETUTA Thread presenti al momento dell'evento
thread.si sono bloccati BOOLEANO Se il thread è andato in crash
threads.thread_name CORDA Il nome del thread
thread.nome_coda CORDA Solo app Apple: la coda su cui era in esecuzione il thread
thread.nome_segnale CORDA Il nome del segnale che ha causato l'arresto anomalo dell'app, presente solo sui thread nativi arrestati in modo anomalo
thread.codice_segnale CORDA Il codice del segnale che ha causato l'arresto anomalo dell'app; presente solo su thread nativi bloccati
threads.crash_address INT64 L'indirizzo del segnale che ha causato l'arresto anomalo dell'applicazione; presente solo su thread nativi bloccati
thread.codice INT64 Solo app Apple: codice di errore dell'errore NSError registrato personalizzato dell'applicazione
thread.titolo CORDA Il titolo del thread
thread.sottotitolo CORDA Il sottotitolo del thread
discussioni.incolpate BOOLEANO Se l'analisi di Crashlytics ha determinato che questo frame è la causa dell'arresto anomalo o dell'errore
fili.telai REGISTRAZIONE RIPETUTA Le cornici del filo
fili.frame.line INT64 Il numero di riga del file del frame
thread.frames.file CORDA Il nome del file frame
fili.frames.simbolo CORDA Il simbolo idratato, o il simbolo grezzo se non è idratabile
fili.frame.offset INT64 L'offset del byte nell'immagine binaria che contiene il codice
thread.frame.indirizzo INT64 L'indirizzo nell'immagine binaria che contiene il codice
thread.frames.library CORDA Il nome visualizzato della libreria che include il frame
thread.frame.proprietario CORDA SVILUPPATORE, FORNITORE, RUNTIME, PIATTAFORMA o SISTEMA
fili.telai.incolpati BOOLEANO Se l'analisi di Crashlytics ha determinato che questo frame è la causa dell'errore

Visualizzazione dei dati Crashlytics esportati con Data Studio

Google Data Studio trasforma i tuoi set di dati Crashlytics in BigQuery in rapporti facili da leggere, facili da condividere e completamente personalizzabili.

Per ulteriori informazioni sull'utilizzo di Data Studio, prova la guida di avvio rapido di Data Studio, Benvenuto in Data Studio .

Utilizzo di un modello di rapporto Crashlytics

Data Studio dispone di un rapporto di esempio per Crashlytics che include un set completo di dimensioni e metriche dallo schema Crashlytics BigQuery esportato. Se hai abilitato l'esportazione in streaming di Crashlytics BigQuery, puoi visualizzare i dati nella pagina Tendenze in tempo reale del modello di Data Studio. Puoi utilizzare l'esempio come modello per creare rapidamente nuovi rapporti e visualizzazioni in base ai dati grezzi sugli arresti anomali della tua app:

  1. Aprire il modello Dashboard di Crashlytics Data Studio .
  2. Fai clic su Usa modello nell'angolo in alto a destra.
  3. Nel menu a discesa Nuova origine dati , seleziona Crea nuova origine dati .
  4. Fai clic su Seleziona nella scheda BigQuery .
  5. Seleziona una tabella contenente i dati di Crashlytics esportati scegliendo I miei progetti > [nome-del-tuo-progetto] > firebase_crashlytics > [nome-della-tua-tabella] . La tua tabella batch è sempre disponibile per la selezione; se l'esportazione in streaming di Crashlytics BigQuery è abilitata, puoi invece selezionare la tua tabella in tempo reale.
  6. In Configurazione , imposta il livello del modello di Crashlytics su Predefinito .
  7. Fare clic su Connetti per creare la nuova origine dati.
  8. Fare clic su Aggiungi al rapporto per tornare al modello Crashlytics.
  9. Infine, fai clic su Crea rapporto per creare la tua copia del modello di dashboard di Crashlytics Data Studio.