Anda dapat mengekspor data Performance Monitoring dari aplikasi Apple dan Android ke BigQuery untuk analisis lebih lanjut. BigQuery memungkinkan Anda menganalisis data menggunakan BigQuery SQL, mengekspornya ke penyedia cloud lain, dan bahkan menggunakan data untuk model ML kustom Anda.
Aktifkan ekspor BigQuery
Buka halaman Integrasi di konsol Firebase, lalu klik Tautkan di kartu BigQuery .
Ikuti petunjuk di layar untuk mengaktifkan BigQuery.
Saat Anda mengaktifkan ekspor BigQuery untuk Performance Monitoring, hal berikut terjadi:
Firebase mengekspor salinan data Anda yang ada ke BigQuery. Penyebaran awal data untuk ekspor dapat memakan waktu hingga 48 jam untuk diselesaikan.
- Anda dapat menjadwalkan pengisian ulang data secara manual hingga 30 hari terakhir atau untuk tanggal terbaru saat Anda mengaktifkan ekspor BigQuery (mana saja yang terbaru).
Setelah set data dibuat, lokasi tidak dapat diubah, tetapi Anda dapat menyalin set data ke lokasi lain atau secara manual memindahkan (membuat ulang) set data di lokasi berbeda. Untuk mempelajari lebih lanjut, lihat Mengubah lokasi kumpulan data .
Firebase menyiapkan sinkronisasi rutin data Anda dari project Firebase ke BigQuery. Operasi ekspor harian ini biasanya selesai dalam 24 jam setelah dijadwalkan.
Secara default, semua aplikasi di project Anda ditautkan ke BigQuery. Aplikasi apa pun yang nantinya Anda tambahkan ke proyek secara otomatis ditautkan ke BigQuery. Anda dapat mengelola aplikasi mana yang mengirim data .
Untuk menonaktifkan ekspor BigQuery, batalkan tautan project Anda di Firebase console.
Data apa yang diekspor ke BigQuery?
Untuk setiap aplikasi dalam proyek, ekspor akan membuat tabel yang menyertakan semua peristiwa kinerja yang ditangkap. Setiap baris dalam tabel adalah satu peristiwa kinerja yang dapat berupa salah satu dari berikut ini:
Pelacakan durasi — pelacakan yang mengumpulkan, secara default, metrik "durasi", yang mencakup permulaan aplikasi, aplikasi di latar depan, dan aplikasi di latar belakang, serta semua pelacakan kode khusus yang diinstrumentasi pengembang
-
event_type
adalahDURATION_TRACE
-
event_name
sama dengan nama trace
-
Trace metric — metrik kustom yang terkait dengan trace kode kustom yang diinstrumentasi developer
-
event_type
adalahTRACE_METRIC
-
event_name
adalah nama metrik -
parent_trace_name
adalah nama jejak yang berisi metrik ini
-
Jejak layar — jejak yang mencakup masa pakai layar (jejak perenderan layar)
-
event_type
adalahSCREEN_TRACE
-
event_name
adalah awalan_st_
plus nama layar yang sebenarnya
-
Permintaan jaringan — jejak yang mencakup masa permintaan jaringan (jejak permintaan jaringan HTTP)
-
event_type
adalahNETWORK_REQUEST
-
event_name
adalah pola yang dikategorikan dari URL permintaan jaringan
-
Setiap kejadian kinerja berisi atribut kejadian (seperti negara dan operator perangkat klien), serta informasi khusus kejadian:
- Trace durasi, metrik trace, dan trace layar berisi
trace_info
- Trace metric berisi
trace_info.metric_info
- Jejak layar berisi
trace_info.screen_info
- Jejak jaringan berisi
network_info
Skema data terperinci
Nama Bidang | Jenis | Keterangan |
---|---|---|
event_timestamp | cap waktu | Stempel waktu sejak Epoch saat peristiwa dimulai pada perangkat klien (pelacakan dimulai, jaringan dimulai, dll.) |
app_display_version | rangkaian | Menampilkan versi aplikasi (misalnya, "4.1.7")
|
app_build_version | rangkaian | Bangun versi aplikasi (misalnya, "1523456")
|
os_version | rangkaian | Versi OS perangkat klien
|
nama perangkat | rangkaian | Nama perangkat klien (misalnya, "Google Pixel") |
negara | rangkaian | Kode negara dua huruf dari negara tempat acara berlangsung (misalnya, "AS", atau "ZZ" untuk negara yang tidak diketahui) |
pembawa | rangkaian | Pembawa perangkat klien |
jenis_radio | rangkaian | Jenis radio aktif saat acara berlangsung (misalnya, "WIFI") |
atribut_khusus | ARRAY<REKAM> | Semua atribut khusus yang dilampirkan ke acara ini |
custom_attributes.key | rangkaian | Kunci atribut khusus |
custom_attributes.value | rangkaian | Nilai atribut khusus |
event_type | rangkaian | Jenis acara; kemungkinan nilai:
|
nama_acara | rangkaian | Nama acara
|
parent_trace_name | rangkaian | Nama pelacakan induk yang membawa metrik pelacakan Hanya ada untuk TRACE_METRIC |
trace_info | CATATAN | Hanya ada untuk DURATION_TRACE , SCREEN_TRACE , dan TRACE_METRIC |
trace_info.duration_us | int64 |
|
trace_info.screen_info | CATATAN | Hanya ada untuk SCREEN_TRACE |
trace_info.screen_info.slow_frame_ratio | float64 | Rasio frame lambat untuk pelacakan layar ini, antara 0 dan 1 (misalnya, nilai 0,05 berarti 5% frame untuk instance layar ini membutuhkan waktu lebih dari 16 md untuk dirender) |
trace_info.screen_info.frozen_frame_ratio | float64 | Rasio frame yang dibekukan untuk pelacakan layar ini, antara 0 dan 1 (misalnya, nilai 0,05 berarti 5% frame untuk instance layar ini membutuhkan waktu lebih dari 700 md untuk dirender) |
trace_info.metric_info | CATATAN | Hanya ada untuk TRACE_METRIC |
trace_info.metric_info.metric_value | int64 | Nilai metrik pelacakan |
network_info | CATATAN | Hanya hadir untuk NETWORK_REQUEST |
network_info.response_code | int64 | Kode respons HTTP untuk respons jaringan (misalnya, 200, 404) |
network_info.response_mime_type | rangkaian | Jenis MIME respons jaringan (misalnya, "teks/html") |
network_info.request_http_method | rangkaian | Metode HTTP dari permintaan jaringan (misalnya, "GET" atau "POST") |
network_info.request_payload_bytes | int64 | Ukuran payload permintaan jaringan Satuan: byte |
network_info.response_payload_bytes | int64 | Ukuran muatan respons jaringan Satuan: byte |
network_info.request_completed_time_us | int64 | Mikrodetik setelah event_timestamp saat pengiriman permintaan jaringan selesaiSatuan: mikrodetik |
network_info.response_initiated_time_us | int64 | Mikrodetik setelah event_timestamp saat respons jaringan dimulaiSatuan: mikrodetik |
network_info.response_completed_time_us | int64 | Mikrodetik setelah event_timestamp saat respons jaringan selesaiSatuan: mikrodetik |
Apa yang dapat Anda lakukan dengan data yang diekspor?
Bagian berikut menawarkan contoh kueri yang dapat Anda jalankan di BigQuery terhadap data Performance Monitoring yang diekspor.
Lihat perincian latensi mulai aplikasi rata-rata menurut negara
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;
Periksa rasio bingkai beku terhadap berbagai kondisi
Misalnya, Anda dapat memeriksa rasio frame yang dibekukan bersama dengan jumlah waktu yang dihabiskan pengguna di setiap layar aplikasi Anda saat menggunakan jenis radio yang berbeda (WiFi, 4G, dll.).
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;
Hitung tingkat hit cache untuk memuat jenis file tertentu dari disk
Analisis ini mengasumsikan bahwa Anda menginstrumentasi pelacakan kode khusus untuk memuat dari disk dengan atribut khusus bernama file-extension
dan metrik khusus (a TRACE_METRIC
) bernama cache-hit
yang disetel ke 1
jika cache berhasil dan 0
jika cache hilang.
Misalnya, Anda dapat menghitung tingkat hit cache untuk memuat file PNG dari disk:
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);
Periksa waktu saat pengguna mengeluarkan permintaan jaringan
Misalnya, Anda dapat memeriksa jam berapa pengguna dari Amerika Serikat mengeluarkan permintaan jaringan dari aplikasi Anda:
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;
Bawa data Performance Monitoring Anda ke mana saja
Terkadang Anda ingin mengakses sisi server data Performance Monitoring atau mendorongnya ke solusi pihak ketiga lainnya. Saat ini tidak ada biaya untuk mengekspor data.
Anda dapat mengekspor data Anda dengan:
Menggunakan UI web BigQuery
Menjalankan perintah CLI
bq extract
Mengirimkan tugas ekstrak melalui API atau pustaka klien.
Harga
Tidak ada biaya untuk mengekspor data dari Performance Monitoring, dan BigQuery memberikan batas penggunaan tanpa biaya yang besar. Untuk informasi mendetail, lihat harga BigQuery atau kotak pasir BigQuery .