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 konsol Firebase, lalu klik Tautkan di kartu BigQuery .

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

    • 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 adalah DURATION_TRACE
    • event_name sama dengan nama trace
  • Trace metric — metrik kustom yang terkait dengan trace kode kustom yang diinstrumentasi developer

    • 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 perenderan layar)

    • event_type adalah SCREEN_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 adalah NETWORK_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")
  • Untuk Android — VersionName
  • Untuk iOS — CFBundleShortVersionString
app_build_version rangkaian Bangun versi 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 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:
  • DURATION_TRACE — 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
  • SCREEN_TRACE — jejak yang mencakup masa pakai layar (jejak perenderan layar)
  • TRACE_METRIC — metrik khusus yang dikaitkan dengan jejak kode khusus yang diinstrumentasi pengembang
  • NETWORK_REQUEST — jejak yang mencakup masa permintaan jaringan (jejak permintaan jaringan HTTP)
nama_acara 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 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
  • Untuk DURATION_TRACE dan SCREEN_TRACE — Durasi waktu ("durasi") dari awal hingga akhir pelacakan
  • Untuk TRACE_METRIC — lamanya waktu ("durasi") dari awal hingga akhir pelacakan induk
Satuan: mikrodetik
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 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 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 .