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 Pemantauan Kinerja ke BigQuery

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

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

  1. Buka halaman Integrasi di Firebase console, lalu klik Tautkan di kartu BigQuery .

  2. Ikuti petunjuk di layar untuk mengaktifkan BigQuery.

    Saat Anda mengaktifkan ekspor BigQuery untuk Performance Monitoring, hal berikut akan terjadi:

    • Firebase mengekspor salinan data Anda yang ada ke BigQuery. Penyebaran awal data untuk ekspor mungkin memerlukan waktu hingga 48 jam untuk diselesaikan.

    • Setelah kumpulan data dibuat, lokasi tidak dapat diubah, tetapi Anda dapat menyalin kumpulan data ke lokasi yang berbeda atau memindahkan (membuat ulang) kumpulan data secara manual di lokasi yang berbeda. Untuk mempelajari lebih lanjut, lihat Mengubah lokasi kumpulan data .

    • Firebase menyiapkan sinkronisasi reguler data Anda dari proyek 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 nanti Anda tambahkan ke proyek secara otomatis ditautkan ke BigQuery. Anda dapat mengelola aplikasi mana yang mengirim data .

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

Data apa yang diekspor ke BigQuery?

Untuk setiap aplikasi dalam proyek, ekspor membuat tabel yang menyertakan semua peristiwa kinerja yang direkam. Setiap baris dalam tabel adalah peristiwa kinerja tunggal yang dapat berupa salah satu dari berikut ini:

  • Pelacakan durasi — pelacakan yang mengumpulkan, secara default, metrik "durasi", yang mencakup awal aplikasi, aplikasi-di-latar depan, dan aplikasi-di-latar belakang, serta pelacakan kode kustom yang diinstrumentasi pengembang

    • event_type adalah DURATION_TRACE
    • event_name sama dengan nama jejak
  • Metrik pelacakan — metrik khusus yang dikaitkan dengan pelacakan kode khusus yang diinstrumentasi oleh pengembang

    • event_type adalah TRACE_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 rendering layar)

    • event_type adalah SCREEN_TRACE
    • event_name adalah awalan _st_ ditambah nama layar yang sebenarnya
  • Permintaan jaringan — pelacakan yang mencakup masa pakai permintaan jaringan (jejak permintaan jaringan HTTP)

    • event_type adalah NETWORK_REQUEST
    • event_name adalah pola yang dikategorikan dari URL permintaan jaringan

Setiap peristiwa kinerja berisi atribut peristiwa (seperti negara dan operator perangkat klien), serta informasi khusus peristiwa:

  • Jejak durasi, metrik pelacakan, dan pelacakan layar berisi trace_info
  • Metrik pelacakan 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 stempel waktu Stempel waktu sejak Epoch saat acara dimulai di perangkat klien (mulai lacak, mulai jaringan, dll.)
app_display_version rangkaian Tampilkan versi aplikasi (misalnya, "4.1.7")
  • Untuk Android — VersionName
  • Untuk iOS — CFBundleShortVersionString
app_build_version rangkaian Versi build aplikasi (misalnya, "1523456")
  • Untuk Android — VersionCode
  • Untuk iOS — CFBundleVersion
os_version rangkaian Versi OS perangkat klien
  • Untuk Android — Android API level (misalnya "26")
  • Untuk iOS — versi iOS (misalnya "11.4")
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 dikenal)
pembawa rangkaian Pembawa perangkat klien
radio_type rangkaian Jenis radio aktif saat acara berlangsung (misalnya, "WIFI")
custom_attributes ARRAY<REKAM> Semua atribut khusus yang dilampirkan ke acara ini
custom_attributes.key rangkaian Kunci dari atribut khusus
custom_attributes.value rangkaian Nilai atribut khusus
event_type rangkaian Jenis acara; kemungkinan nilai:
  • DURATION_TRACE — pelacakan yang mengumpulkan, secara default, metrik "durasi", yang mencakup awal aplikasi, aplikasi-di-latar depan, dan aplikasi-di-latar belakang, serta setiap pelacakan kode kustom yang diinstrumentasi pengembang
  • SCREEN_TRACE — jejak yang mencakup masa pakai layar (jejak rendering layar)
  • TRACE_METRIC — metrik khusus yang terkait dengan pelacakan kode khusus yang diinstrumentasi oleh pengembang
  • NETWORK_REQUEST — pelacakan yang mencakup masa pakai permintaan jaringan (jejak permintaan jaringan HTTP)
event_name rangkaian Nama acara
  • Untuk DURATION_TRACE — nama jejak
  • Untuk TRACE_METRIC — nama metrik khusus
  • Untuk SCREEN_TRACE_st_ diikuti dengan nama jejak
  • Untuk NETWORK_REQUEST — pola URL permintaan jaringan
parent_trace_name rangkaian Nama jejak induk yang membawa metrik jejak
Hanya hadir untuk TRACE_METRIC
jejak_info CATATAN Hanya hadir untuk DURATION_TRACE , SCREEN_TRACE , dan TRACE_METRIC
trace_info.duration_us int64
  • Untuk DURATION_TRACE dan SCREEN_TRACE — Lama waktu ("durasi") dari awal hingga akhir pelacakan
  • Untuk TRACE_METRIC — lamanya waktu ("durasi") dari awal hingga akhir jejak induk
Satuan: mikrodetik
trace_info.screen_info CATATAN Hanya hadir untuk SCREEN_TRACE
trace_info.screen_info.slow_frame_ratio float64 Rasio bingkai lambat untuk pelacakan layar ini, antara 0 dan 1 (misalnya, nilai 0,05 berarti 5% bingkai untuk instans layar ini membutuhkan waktu lebih dari 16 md untuk dirender)
trace_info.screen_info.frozen_frame_ratio float64 Rasio bingkai beku untuk pelacakan layar ini, antara 0 dan 1 (misalnya, nilai 0,05 berarti 5% bingkai untuk instans layar ini membutuhkan waktu lebih dari 700 md untuk dirender)
trace_info.metric_info CATATAN Hanya hadir untuk TRACE_METRIC
trace_info.metric_info.metric_value int64 Nilai metrik jejak
jaringan_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 dari 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 payload respons jaringan
Satuan: byte
network_info.request_completed_time_us int64 Mikrodetik setelah event_timestamp saat pengiriman permintaan jaringan selesai
Satuan: mikrodetik
network_info.response_initiated_time_us int64 Mikrodetik setelah event_timestamp saat respons jaringan dimulai
Satuan: mikrodetik
network_info.response_completed_time_us int64 Mikrodetik setelah event_timestamp saat respons jaringan selesai
Satuan: 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 Anda ekspor.

Lihat perincian latensi awal 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 bingkai beku di samping 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 menginstruksikan pelacakan kode khusus untuk memuat dari disk dengan atribut khusus bernama file-extension dan metrik khusus ( TRACE_METRIC ) bernama cache-hit yang disetel ke 1 jika cache hit dan 0 jika cache hilang.

Misalnya, Anda dapat menghitung hit rate 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 pada 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 Pemantauan Kinerja Anda ke mana saja

Terkadang Anda ingin mengakses sisi server data Performance Monitoring Anda atau mendorongnya ke solusi pihak ketiga lainnya. Saat ini tidak ada biaya untuk mengekspor data.

Anda dapat mengekspor data Anda dengan:

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 sandbox BigQuery .