Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Ekspor data Firebase Crashlytics ke BigQuery

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Anda dapat mengekspor data Crashlytics ke BigQuery untuk analisis lebih lanjut. BigQuery memungkinkan Anda menganalisis data menggunakan BigQuery SQL, mengekspornya ke penyedia cloud lain, dan menggunakannya untuk visualisasi dan dasbor kustom dengan Google Data Studio.

Aktifkan ekspor BigQuery

  1. Buka halaman Integrasi di konsol Firebase.
  2. Di kartu BigQuery , klik Tautkan .
  3. Ikuti petunjuk di layar untuk mengaktifkan BigQuery.

Saat Anda menautkan proyek Anda ke BigQuery:

  • Firebase menyiapkan sinkronisasi harian data Anda dari proyek Firebase ke BigQuery.
  • Secara default, semua aplikasi di proyek Anda ditautkan ke BigQuery dan aplikasi apa pun yang nanti Anda tambahkan ke proyek secara otomatis ditautkan ke BigQuery. Anda dapat mengelola aplikasi mana yang mengirim data .
  • Firebase mengekspor salinan data Anda yang ada ke BigQuery. Untuk setiap aplikasi tertaut, ini termasuk tabel batch yang berisi data dari sinkronisasi harian.
  • Jika Anda mengaktifkan ekspor streaming Crashlytics BigQuery, semua aplikasi tertaut juga akan memiliki tabel waktu nyata yang berisi data yang terus diperbarui.

Untuk menonaktifkan ekspor BigQuery, batalkan tautan proyek Anda di Firebase console.

Data apa yang diekspor ke BigQuery?

Data Firebase Crashlytics diekspor ke set data BigQuery bernama firebase_crashlytics . Secara default, tabel individual akan dibuat di dalam kumpulan data Crashlytics untuk setiap aplikasi di project Anda. Firebase memberi nama tabel berdasarkan pengidentifikasi bundel aplikasi, dengan titik yang dikonversi menjadi garis bawah, dan nama platform ditambahkan di bagian akhir.

Misalnya, data untuk aplikasi dengan ID com.google.test akan berada dalam tabel bernama com_google_test_ANDROID . Tabel batch ini diperbarui sekali setiap hari. Jika Anda mengaktifkan ekspor streaming Crashlytics BigQuery, data Firebase Crashlytics juga akan dialirkan secara realtime ke com_google_test_ANDROID_REALTIME .

Setiap baris dalam tabel mewakili peristiwa yang terjadi di aplikasi, termasuk error, error non-fatal, dan ANR.

Aktifkan ekspor streaming Crashlytics BigQuery

Anda dapat melakukan streaming data Crashlytics secara realtime dengan BigQueryStreaming . Anda dapat menggunakannya untuk tujuan apa pun yang memerlukan data langsung, seperti menyajikan informasi di dasbor langsung, menonton peluncuran langsung, atau memantau masalah aplikasi yang memicu peringatan dan alur kerja kustom.

Ekspor streaming BigQuery Crashlytics tidak tersedia untuk sandbox BigQuery.

Saat Anda mengaktifkan ekspor streaming Crashlytics BigQuery, selain tabel batch, Anda akan memiliki tabel waktu nyata. Berikut adalah perbedaan yang harus Anda ketahui antara tabel:

Meja Batch Tabel Waktu Nyata
  • Data diekspor sekali sehari
  • Acara disimpan secara tahan lama sebelum penulisan batch ke BigQuery
  • Dapat diisi ulang hingga 90 hari sebelumnya
  • Data diekspor secara real time
  • Tidak ada isi ulang yang tersedia

Tabel batch sangat ideal untuk analisis jangka panjang dan mengidentifikasi tren dari waktu ke waktu karena kami menyimpan peristiwa secara tahan lama sebelum menulisnya, dan mereka dapat diisi ulang ke tabel hingga 90 hari. Saat kami menulis data ke tabel waktu nyata Anda, kami segera menulisnya ke BigQuery, sehingga sangat ideal untuk dasbor langsung dan lansiran khusus. Kedua tabel ini dapat digabungkan dengan kueri penggabungan untuk mendapatkan manfaat dari keduanya. Lihat contoh kueri 9 di bawah ini.

Secara default, tabel waktu nyata memiliki waktu kedaluwarsa partisi selama 30 hari. Untuk mempelajari cara mengubah ini, lihat Memperbarui masa berlaku partisi .

Aktifkan streaming Crashlytics BigQuery

Untuk mengaktifkan streaming, buka bagian Crashlytics pada halaman integrasi BigQuery dan pilih kotak centang Sertakan streaming .

Template Data Studio

Untuk mengaktifkan data realtime di template Data Studio Anda, ikuti petunjuk di Memvisualisasikan data Crashlytics yang diekspor dengan Data Studio .

Tampilan

Anda dapat mengubah contoh kueri di bawah menjadi tampilan menggunakan UI BigQuery. Lihat Membuat tampilan untuk petunjuk detail.

Apa yang dapat Anda lakukan dengan data yang diekspor?

Ekspor BigQuery berisi data error mentah termasuk jenis perangkat, sistem operasi, pengecualian (aplikasi Android) atau error (aplikasi Apple), dan log Crashlytics, serta data lainnya.

Bekerja dengan data Firebase Crashlytics di BigQuery

Contoh berikut menunjukkan kueri yang dapat Anda jalankan pada data Crashlytics Anda. Kueri ini menghasilkan laporan yang tidak tersedia di dasbor Crashlytics.

Contoh kueri Crashlytics

Contoh berikut menunjukkan cara membuat laporan yang menggabungkan data peristiwa mogok menjadi ringkasan yang lebih mudah dipahami.

Contoh 1: Kerusakan di siang hari

Setelah berusaha memperbaiki bug sebanyak mungkin, seorang pemimpin pengembang berpikir bahwa timnya akhirnya siap meluncurkan aplikasi berbagi foto baru mereka. Sebelum melakukannya, mereka ingin memeriksa jumlah kerusakan per hari selama sebulan terakhir, untuk memastikan bash-bug mereka membuat aplikasi lebih stabil dari waktu ke waktu:

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;

Contoh 2: Temukan kerusakan yang paling sering terjadi

Untuk memprioritaskan rencana produksi dengan benar, seorang manajer proyek merenungkan cara menunjukkan 10 kerusakan paling parah dalam produk mereka. Mereka menghasilkan kueri yang menyediakan poin data terkait:

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;

Contoh 3: 10 perangkat mogok teratas

Musim gugur adalah musim ponsel baru! Seorang pengembang tahu itu juga berarti musim masalah khusus perangkat baru. Untuk mengatasi masalah kompatibilitas yang membayangi, mereka mengumpulkan kueri yang mengidentifikasi 10 perangkat yang paling sering mengalami kerusakan dalam seminggu terakhir:

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;

Contoh 4: Filter menurut kunci khusus

Seorang pengembang game ingin mengetahui level mana dari game mereka yang paling sering mengalami crash. Untuk membantu mereka melacak statistik itu, mereka menyetel kunci Crashlytics khusus current_level , dan memperbaruinya setiap kali pengguna mencapai level baru.

Objective-C

CrashlyticsKit setIntValue:3 forKey:@"current_level";

Cepat

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

Jawa

Crashlytics.setInt("current_level", 3);

Dengan kunci tersebut dalam ekspor BigQuery, mereka kemudian menulis kueri untuk melaporkan distribusi nilai current_level yang terkait dengan setiap peristiwa error:

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

Contoh 5: Ekstraksi ID Pengguna

Pengembang memiliki aplikasi dalam akses awal. Sebagian besar penggunanya menyukainya, tetapi tiga mengalami jumlah crash yang tidak biasa. Untuk menyelesaikan masalah, mereka menulis kueri yang menarik semua peristiwa mogok untuk pengguna tersebut, menggunakan ID pengguna mereka:

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

Contoh 6: Temukan semua pengguna yang menghadapi masalah mogok tertentu

Pengembang telah merilis bug kritis ke sekelompok penguji beta. Tim dapat menggunakan kueri dari Contoh 2 di atas untuk mengidentifikasi ID masalah kerusakan tertentu. Sekarang mereka ingin menjalankan kueri untuk mengekstrak daftar pengguna aplikasi yang terpengaruh oleh kerusakan ini:

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;

Contoh 7: Jumlah pengguna yang terkena dampak masalah mogok, dikelompokkan menurut negara

Sekarang tim telah mendeteksi bug kritis selama peluncuran rilis baru. Mereka dapat menggunakan kueri dari Contoh 2 di atas untuk mengidentifikasi ID masalah kerusakan tertentu. Tim sekarang ingin melihat apakah kerusakan ini telah menyebar ke pengguna di berbagai negara di seluruh dunia.

Untuk menulis kueri ini, tim perlu:

  1. Aktifkan ekspor BigQuery untuk Google Analytics. Lihat Mengekspor data proyek ke BigQuery .

  2. Perbarui aplikasi mereka untuk meneruskan ID pengguna ke Google Analytics SDK dan Crashlytics SDK.

    Objective-C
    CrashlyticsKit setUserIdentifier:@"123456789";
    FIRAnalytics setUserID:@"12345678 9";
    
    Cepat
    Crashlytics.sharedInstance().setUserIdentifier("123456789");
    Analytics.setUserID("123456789");
    
    Jawa
    Crashlytics.setUserIdentifier("123456789");
    mFirebaseAnalytics.setUserId("123456789");
    
  3. Tulis kueri yang menggunakan bidang ID pengguna untuk menggabungkan peristiwa di kumpulan data BigQuery Google Analytics dengan error di kumpulan data BigQuery Crashlytics:

    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
    

Contoh 8: 5 masalah teratas sejauh ini hari ini

Memerlukan pengaktifan ekspor streaming BigQuery 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;

Contoh 9: 5 masalah teratas sejak DATE, termasuk hari ini

Memerlukan pengaktifan ekspor streaming BigQuery Crashlytics.

Dalam contoh ini, kami menggabungkan tabel batch dan realtime untuk menambahkan informasi realtime ke data batch yang andal. Karena event_id adalah kunci utama, kita dapat menggunakan DISTINCT event_id untuk mengurangi kejadian umum dari dua tabel.

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;

Memahami skema Firebase Crashlytics di BigQuery

Saat Anda menautkan Crashlytics dengan BigQuery, Firebase mengekspor peristiwa terbaru (kerusakan, kesalahan non-fatal, dan ANR), termasuk peristiwa hingga dua hari sebelum penautan, dengan opsi untuk mengisi ulang hingga sembilan puluh hari.

Sejak saat itu hingga Anda menonaktifkan tautan, Firebase mengekspor peristiwa Crashlytics setiap hari. Diperlukan waktu beberapa menit agar data tersedia di BigQuery setelah setiap ekspor.

Kumpulan data

Firebase Crashlytics membuat set data baru di BigQuery untuk data Crashlytics. Kumpulan data mencakup seluruh proyek Anda, meskipun memiliki beberapa aplikasi.

Tabel

Firebase Crashlytics membuat tabel dalam kumpulan data untuk setiap aplikasi di proyek Anda, kecuali jika Anda memilih untuk tidak mengekspor data untuk aplikasi tersebut. Firebase memberi nama tabel berdasarkan pengidentifikasi bundel aplikasi, dengan titik yang dikonversi menjadi garis bawah, dan nama platform ditambahkan di bagian akhir.

Misalnya, data untuk aplikasi Android dengan ID com.google.test akan berada dalam tabel bernama com_google_test_ANDROID , dan data waktu nyata (jika diaktifkan) akan berada dalam tabel bernama com_google_test_ANDROID_REALTIME

Tabel berisi kumpulan data Crashlytics standar selain kunci Crashlytics khusus yang ditentukan oleh pengembang.

Baris

Setiap baris dalam tabel mewakili kesalahan yang ditemui aplikasi.

kolom

Kolom dalam tabel identik untuk error, error non-fatal, dan ANR. Jika ekspor streaming Crashlytics BigQuery diaktifkan, tabel realtime akan memiliki kolom yang sama dengan tabel batch. Kolom dalam ekspor tercantum di bawah ini.

Tanpa jejak tumpukan

Kolom hadir dalam baris yang mewakili peristiwa tanpa jejak tumpukan.

Nama Bidang Tipe data Keterangan
platform RANGKAIAN Aplikasi Apple atau Android
bundle_identifier RANGKAIAN ID bundel, misalnya com.google.gmail
event_id RANGKAIAN ID unik untuk acara tersebut
is_fatal BOLEAN Apakah aplikasi mogok
error_type RANGKAIAN Jenis kesalahan acara (FATAL, NON_FATAL, ANR)
issue_id RANGKAIAN Masalah yang terkait dengan acara
event_timestamp TIMESTAMP Ketika peristiwa itu terjadi
perangkat CATATAN Perangkat tempat acara terjadi
perangkat.produsen RANGKAIAN Produsen perangkat
perangkat.model RANGKAIAN Model perangkat
perangkat.arsitektur RANGKAIAN X86_32, X86_64, ARMV7, ARM64, ARMV7S, atau ARMV7K
Penyimpanan CATATAN Status memori perangkat
memori. digunakan INT64 Byte memori yang digunakan
memori.bebas INT65 Byte memori yang tersisa
penyimpanan CATATAN Penyimpanan persisten perangkat
penyimpanan. digunakan INT64 Byte penyimpanan yang digunakan
penyimpanan.gratis INT64 Byte penyimpanan yang tersisa
sistem operasi CATATAN Detail OS perangkat
operating_system.display_version RANGKAIAN Versi OS-nya
operating_system.name RANGKAIAN Nama OSnya
operating_system.modification_state RANGKAIAN MODIFIED atau UNMODIFIED, yaitu apakah perangkat telah di-jailbreak/di-root
operating_system.type RANGKAIAN Jenis sistem operasi pada perangkat. Misalnya IOS, MACOS
operating_system.device_type RANGKAIAN Jenis perangkat. Misalnya SELULER, TABLET, TV
aplikasi CATATAN Aplikasi yang menghasilkan acara
application.build_version RANGKAIAN Versi pembuatan aplikasi
application.display_version RANGKAIAN
pengguna CATATAN Opsional: Info yang dikumpulkan pada pengguna aplikasi
nama belakang RANGKAIAN Opsional: Nama pengguna
pengguna. email RANGKAIAN Opsional: Alamat email pengguna
identitas pengguna RANGKAIAN Opsional: ID khusus aplikasi yang terkait dengan pengguna
custom_keys REKAM BERULANG Pasangan nilai kunci yang ditentukan pengembang
custom_keys.key RANGKAIAN Kunci yang ditentukan pengembang
custom_keys.value RANGKAIAN Nilai yang ditentukan pengembang
instalasi_uuid RANGKAIAN ID yang mengidentifikasi aplikasi unik & penginstalan perangkat
crashlytics_sdk_versions RANGKAIAN Versi Crashlytics SDK yang menghasilkan acara
aplikasi_orientasi RANGKAIAN POTRET, LANDSCAPE, FACE_UP, atau FACE_DOWN
perangkat_orientasi RANGKAIAN POTRET, LANDSCAPE, FACE_UP, atau FACE_DOWN
proses_status RANGKAIAN LATAR BELAKANG atau LATAR BELAKANG
log REKAM BERULANG Pesan log berstempel waktu yang dihasilkan oleh logger Crashlytics, jika diaktifkan
log.timestamp TIMESTAMP Ketika log dibuat
log.pesan RANGKAIAN Pesan yang dicatat
tepung roti REKAM BERULANG Remah roti Google Analytics yang diberi cap waktu, jika diaktifkan
remah roti.timestamp TIMESTAMP Stempel waktu yang terkait dengan remah roti
remah roti.nama RANGKAIAN Nama yang terkait dengan remah roti
remah roti.params REKAM BERULANG Parameter yang terkait dengan remah roti
remah roti.params.key RANGKAIAN Kunci parameter yang terkait dengan remah roti
remah roti.params.nilai RANGKAIAN Nilai parameter yang terkait dengan remah roti
menyalahkan_frame CATATAN Bingkai diidentifikasi sebagai akar penyebab kerusakan atau kesalahan
menyalahkan_frame.line INT64 Nomor baris file bingkai
menyalahkan_frame.file RANGKAIAN Nama file bingkai
menyalahkan_frame.symbol RANGKAIAN Simbol terhidrasi, atau simbol mentah jika tidak terhidrasi
menyalahkan_frame.offset INT64 Offset byte ke dalam gambar biner yang berisi kode, tidak disetel untuk pengecualian Java
menyalahkan_frame.alamat INT64 Alamat dalam gambar biner yang berisi kode, tidak disetel untuk bingkai Java
menyalahkan_frame.library RANGKAIAN Nama tampilan perpustakaan yang menyertakan bingkai
menyalahkan_frame.pemilik RANGKAIAN PENGEMBANG, VENDOR, RUNTIME, PLATFORM, atau SISTEM
menyalahkan_frame.disalahkan BOLEAN Apakah analisis Crashlytics menentukan bahwa frame ini adalah penyebab error atau error
pengecualian REKAM BERULANG Khusus Android: Pengecualian yang terjadi selama acara ini. Pengecualian bersarang disajikan dalam urutan kronologis terbalik (baca: catatan terakhir adalah pengecualian pertama yang dilemparkan)
pengecualian.type RANGKAIAN Jenis pengecualian, misalnya java.lang.IllegalStateException
exceptions.exception_message RANGKAIAN Pesan yang terkait dengan pengecualian
pengecualian.bersarang BOLEAN Benar untuk semua kecuali pengecualian lemparan terakhir (yaitu catatan pertama)
exceptions.title RANGKAIAN Judul threadnya
pengecualian.subtitle RANGKAIAN Subtitle threadnya
pengecualian.disalahkan BOLEAN Benar jika Crashlytics menentukan bahwa pengecualian bertanggung jawab atas kesalahan atau kerusakan
exceptions.frames REKAM BERULANG Bingkai yang terkait dengan pengecualian
exceptions.frames.line INT64 Nomor baris file bingkai
exceptions.frames.file RANGKAIAN Nama file bingkai
exceptions.frames.symbol RANGKAIAN Simbol terhidrasi, atau simbol mentah jika tidak terhidrasi
exceptions.frames.offset INT64 Offset byte ke dalam gambar biner yang berisi kode, tidak disetel untuk pengecualian Java
exceptions.frames.address INT64 Alamat dalam gambar biner yang berisi kode, tidak disetel untuk bingkai Java
exceptions.frames.library RANGKAIAN Nama tampilan perpustakaan yang menyertakan bingkai
exceptions.frames.owner RANGKAIAN PENGEMBANG, VENDOR, RUNTIME, PLATFORM, atau SISTEM
exceptions.frames.blamed BOLEAN Apakah analisis Crashlytics menentukan bahwa frame ini adalah penyebab error atau error
kesalahan REKAM BERULANG Khusus aplikasi Apple: kesalahan tidak fatal
error.queue_name RANGKAIAN Antrian tempat utas berjalan
error.code INT64 Kode kesalahan yang terkait dengan NSError log khusus aplikasi
error.title RANGKAIAN Judul threadnya
error.subtitle RANGKAIAN Subtitle threadnya
kesalahan.disalahkan BOLEAN Apakah analisis Crashlytics menentukan bahwa bingkai ini adalah penyebab kesalahan
error.frames REKAM BERULANG Bingkai dari stacktrace
error.frames.line INT64 Nomor baris file bingkai
error.frames.file RANGKAIAN Nama file bingkai
error.frames.symbol RANGKAIAN Simbol terhidrasi, atau simbol mentah jika tidak terhidrasi
error.frames.offset INT64 Offset byte ke dalam gambar biner yang berisi kode
error.frames.address INT64 Alamat dalam gambar biner yang berisi kode
error.frames.library RANGKAIAN Nama tampilan perpustakaan yang menyertakan bingkai
error.frames.owner RANGKAIAN PENGEMBANG, VENDOR, RUNTIME, PLATFORM, atau SISTEM
error.frames.blamed BOLEAN Apakah analisis Crashlytics menentukan bahwa bingkai ini adalah penyebab kesalahan
benang REKAM BERULANG Utas hadir pada saat acara
threads.crashed BOLEAN Apakah utasnya mogok
threads.thread_name RANGKAIAN Nama threadnya
threads.queue_name RANGKAIAN Khusus aplikasi Apple: Antrian tempat thread dijalankan
threads.signal_name RANGKAIAN Nama sinyal yang menyebabkan aplikasi mogok, hanya ada di utas asli yang mogok
threads.signal_code RANGKAIAN Kode sinyal yang menyebabkan aplikasi mogok; hanya ada di utas asli yang rusak
threads.crash_address INT64 Alamat sinyal yang menyebabkan aplikasi mogok; hanya ada di utas asli yang rusak
utas.kode INT64 Khusus aplikasi Apple: Kode kesalahan NSError yang dicatat khusus aplikasi
threads.title RANGKAIAN Judul threadnya
threads.subtitle RANGKAIAN Subtitle threadnya
threads.blamed BOLEAN Apakah analisis Crashlytics menentukan bahwa frame ini adalah penyebab error atau error
threads.frames REKAM BERULANG Bingkai dari benang
threads.frames.line INT64 Nomor baris file bingkai
threads.frames.file RANGKAIAN Nama file bingkai
threads.frames.symbol RANGKAIAN Simbol terhidrasi, atau simbol mentah jika tidak dapat terhidrasi
threads.frames.offset INT64 Offset byte ke dalam gambar biner yang berisi kode
threads.frames.address INT64 Alamat dalam gambar biner yang berisi kode
threads.frames.library RANGKAIAN Nama tampilan perpustakaan yang menyertakan bingkai
threads.frames.owner RANGKAIAN PENGEMBANG, VENDOR, RUNTIME, PLATFORM, atau SISTEM
threads.frames.blamed BOLEAN Apakah analisis Crashlytics menentukan bahwa bingkai ini adalah penyebab kesalahan

Memvisualisasikan data Crashlytics yang diekspor dengan Data Studio

Google Data Studio mengubah set data Crashlytics Anda di BigQuery menjadi laporan yang mudah dibaca, mudah dibagikan, dan sepenuhnya dapat disesuaikan.

Untuk mempelajari lebih lanjut cara menggunakan Data Studio, coba panduan memulai cepat Data Studio, Selamat datang di Data Studio .

Menggunakan template laporan Crashlytics

Data Studio memiliki contoh laporan untuk Crashlytics yang mencakup kumpulan dimensi dan metrik yang komprehensif dari skema BigQuery Crashlytics yang diekspor. Jika Anda telah mengaktifkan ekspor streaming Crashlytics BigQuery, Anda dapat melihat data tersebut di halaman tren Realtime dari template Data Studio. Anda dapat menggunakan sampel sebagai template untuk membuat laporan dan visualisasi baru dengan cepat berdasarkan data error mentah aplikasi Anda sendiri:

  1. Buka template Dasbor Crashlytics Data Studio .
  2. Klik Gunakan Template di pojok kanan atas.
  3. Di tarik-turun Sumber Data Baru , pilih Buat Sumber Data Baru .
  4. Klik Pilih pada kartu BigQuery .
  5. Pilih tabel yang berisi data Crashlytics yang diekspor dengan memilih Proyek Saya > [nama-proyek-Anda] > firebase_crashlytics > [nama-tabel-Anda] . Tabel batch Anda selalu tersedia untuk dipilih; jika ekspor streaming Crashlytics BigQuery diaktifkan, Anda dapat memilih tabel realtime sebagai gantinya.
  6. Di bawah Konfigurasi , setel tingkat Template Crashlytics ke Default .
  7. Klik Hubungkan untuk membuat sumber data baru.
  8. Klik Tambahkan ke Laporan untuk kembali ke template Crashlytics.
  9. Terakhir, klik Buat Laporan untuk membuat salinan template Dasbor Crashlytics Data Studio.