Catch up on everthing we announced at this year's Firebase Summit. Learn more

Performans İzleme verilerini BigQuery'ye aktarın

Apple'dan Performans İzleme veri verebilirsiniz ve Android apps içine BigQuery'e daha fazla analiz için. BigQuery, verileri BigQuery SQL kullanarak analiz etmenize, başka bir bulut sağlayıcısına aktarmanıza ve hatta verileri özel makine öğrenimi modelleriniz için kullanmanıza olanak tanır.

BigQuery dışa aktarımını etkinleştir

  1. Git Entegrasyonları Firebase konsolundaki sayfasında, Toplu Veri Sorgulama kartında Linki tıklayın.

  2. BigQuery'yi etkinleştirmek için ekrandaki talimatları izleyin.

Projenizi BiqQuery'ye bağladığınızda:

  • Firebase mevcut verilerin bir kopyasını ihraç BigQuery'ye.

    • İlk bağlantıda, Firebase, hemen denemeye başlayabilmeniz için BigQuery tablolarınızı son 7 güne ait verileri doldurmak üzere otomatik olarak planlar. İlk verilerin BigQuery'de kullanılabilir olması için birkaç saat bekleyin.

    • Ayrıca şunları da yapabilirsiniz elle zamanlama verileri Dolgularda son 30 gün up.

  • Firebase, Firebase projenizdeki verilerinizin BigQuery'ye günlük senkronizasyonlarını ayarlar.

  • Varsayılan olarak, projenizdeki tüm uygulamalar BigQuery'ye bağlıdır ve daha sonra projeye eklediğiniz tüm uygulamalar otomatik olarak BigQuery'ye bağlanır. Sen edebilirsiniz uygulamalar veri göndermek hangi yönetmek .

BigQuery ihracat devre dışı bırakmak için, projenizi bağlantısını kaldırmak Firebase konsolunda.

BigQuery'ye hangi veriler aktarılır?

Projedeki her uygulama için dışa aktarma, yakalanan tüm performans olaylarını içeren bir tablo oluşturur. Tablodaki her satır, aşağıdakilerden biri olabilen tek bir performans olayıdır:

  • Süre iz - varsayılan olarak, toplamak izleri, uygulama başlangıç, app-in-ön planda ve uygulamayı in arka yanı sıra herhangi bir geliştirici alet gerektirmeyen özel kod izlerini içerir, hangi "süre" metrik

    • event_type olan DURATION_TRACE
    • event_name iz adı ile aynıdır
  • Metrik Trace - geliştirici alet gerektirmeyen özel kod izleri ile ilişkili özel metrikleri

    • event_type olan TRACE_METRIC
    • event_name metrik adıdır
    • parent_trace_name bu metriği içeren iz adıdır
  • Ekran iz - Bir ekranın ömrünü kapsayan izleri (ekran oluşturma izleri)

    • event_type olan SCREEN_TRACE
    • event_name is önek _st_ artı gerçek ekran adı
  • Ağ isteği - bir ağ isteğine ömrünü kapsayan izleri (HTTP ağ isteği izleri)

    • event_type olan NETWORK_REQUEST
    • event_name ağı istek URL kategorize kalıptır

Her performans olayı, olayın özelliklerini (müşteri cihazının ülkesi ve taşıyıcısı gibi) ve olaya özel bilgileri içerir:

  • Süre izleri, iz ölçümlerini ve ekran izleri ihtiva trace_info
  • İz ölçümlerini içeriyor trace_info.metric_info
  • Ekran izleri ihtiva trace_info.screen_info
  • Ağ izleri ihtiva network_info

Ayrıntılı veri şeması

Alan adı Tip Açıklama
event_timestamp zaman damgası İstemci cihazında olay başladığında Epoch'tan bu yana zaman damgası (izleme başlangıcı, ağ başlangıcı vb.)
app_display_version sicim Uygulamanın görüntüleme sürümü (örneğin, "4.1.7")
  • Android için - VersionName
  • İOS için - CFBundleShortVersionString
app_build_version sicim Uygulamanın sürümünü oluşturun (örneğin, "1523456")
  • Android için - VersionCode
  • İOS için - CFBundleVersion
OS sürümü sicim İstemci cihazının işletim sistemi sürümü
  • Android için — Android API düzeyi (örneğin "26")
  • iOS için — iOS sürümü (örneğin "11.4")
cihaz adı sicim İstemci cihazın adı (örneğin, "Google Pixel")
ülke sicim Etkinliğin gerçekleştiği ülkenin iki harfli ülke kodu (örneğin, bilinmeyen ülke için "US" veya "ZZ")
taşıyıcı sicim İstemci cihazının taşıyıcısı
radyo_tipi sicim Etkinliğin gerçekleştiği andaki aktif radyo türü (örneğin, "WIFI")
custom_attributes DİZİ<KAYIT> Bu etkinliğe eklenen tüm özel özellikler
custom_attributes.key sicim Özel özelliğin anahtarı
custom_attributes.value sicim Özel özelliğin değeri
etkinlik tipi sicim Etkinliğin türü; olası değerler:
  • DURATION_TRACE - varsayılan olarak, toplamak izleri, "süre" metrik, uygulama başlangıç, app-in-ön planda ve uygulamayı in arka yanı sıra herhangi bir geliştirici alet gerektirmeyen özel kod izlerini içerir
  • SCREEN_TRACE - Bir ekranın ömrünü kapsayan izleri (ekran oluşturma izleri)
  • TRACE_METRIC - geliştirici aletli özel kod izleri ile ilişkili özel metrik
  • NETWORK_REQUEST - Bir ağ isteği ömrünü kapsayan izleri (HTTP ağ isteği izleri)
etkinlik adı sicim Etkinliğin adı
  • İçin DURATION_TRACE iz adı -
  • İçin TRACE_METRIC özel metrik adı -
  • For SCREEN_TRACE - _st_ iz adını ve ardından
  • İçin NETWORK_REQUEST ağı istek URL kalıbı -
parent_trace_name sicim İzleme metriğini taşıyan üst izlemenin adı
Yalnızca mevcut TRACE_METRIC
trace_info KAYIT Yalnızca mevcut DURATION_TRACE , SCREEN_TRACE ve TRACE_METRIC
trace_info.duration_us int64
  • İçin DURATION_TRACE ve SCREEN_TRACE - izinin başından sonuna kadar zamanın Uzunluk ( "süresi")
  • For TRACE_METRIC - ebeveyn izinin başından sonuna kadar süre ( "süresi") uzunluğu
Birim: mikrosaniye
trace_info.screen_info KAYIT Yalnızca mevcut SCREEN_TRACE
trace_info.screen_info.slow_frame_ratio şamandıra64 Bu ekran izi için yavaş kare oranı 0 ile 1 arasındadır (örneğin, 0,05 değeri, bu ekran örneğinin karelerinin %5'inin oluşturulmasının 16 ms'den fazla sürdüğü anlamına gelir)
trace_info.screen_info.frozen_frame_ratio şamandıra64 Bu ekran izi için donmuş karelerin oranı 0 ile 1 arasındadır (örneğin, 0,05 değeri, bu ekran örneğinin karelerinin %5'inin oluşturulmasının 700 ms'den fazla sürdüğü anlamına gelir)
trace_info.metric_info KAYIT Yalnızca mevcut TRACE_METRIC
trace_info.metric_info.metric_value int64 İzleme metriğinin değeri
Ağ bilgisi KAYIT Yalnızca mevcut NETWORK_REQUEST
network_info.response_code int64 Ağ yanıtı için HTTP yanıt kodu (örneğin, 200, 404)
network_info.response_mime_type sicim Ağ yanıtının MIME türü (örneğin, "metin/html")
network_info.request_http_method sicim Ağ isteğinin HTTP yöntemi (örneğin, "GET" veya "POST")
network_info.request_payload_bytes int64 Ağ isteği yükünün boyutu
Birim: bayt
network_info.response_payload_bytes int64 Ağ yanıt yükünün boyutu
Birim: bayt
network_info.request_completed_time_us int64 Sonra mikrosaniye event_timestamp gönderme ağ isteği tamamlandıktan
Birim: mikrosaniye
network_info.response_initiated_time_us int64 Sonra mikro event_timestamp ağ yanıt başlatılır
Birim: mikrosaniye
network_info.response_completed_time_us int64 Sonra mikrosaniye event_timestamp ağ yanıtı tamamlandıktan
Birim: mikrosaniye

Dışa aktarılan verilerle ne yapabilirsiniz?

Aşağıdaki bölümlerde, dışa aktarılan Performans İzleme verilerinize karşı BigQuery'de çalıştırabileceğiniz sorgu örnekleri sunulmaktadır.

Ülkeye göre ortalama uygulama başlatma gecikmesi dökümünü görüntüleyin

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;

Donmuş çerçevelerin oranını çeşitli koşullara göre kontrol edin

Örneğin, farklı radyo türlerinde (WiFi, 4G vb.) kullanıcıların uygulamanızın her ekranında geçirdikleri sürenin yanı sıra donmuş karelerin oranını kontrol edebilirsiniz.

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;

Diskten belirli dosya türlerini yüklemek için önbellek isabet oranını hesaplayın

Bu analiz, özel bir öznitelik adında ile diskten yükleme için özel bir kod iz enstrümante varsayar file-extension ve özel bir metrik (a TRACE_METRIC isimlendirilmiştir) cache-hit ayarlanırsa 1 eğer önbellek isabet ve 0 eğer önbellek bayan.

Örneğin, PNG dosyalarını diskten yüklemek için önbellek isabet oranını hesaplayabilirsiniz:

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);

Kullanıcıların ağ istekleri gönderdiği günün saatini kontrol edin

Örneğin, Amerika Birleşik Devletleri'ndeki kullanıcıların uygulamanızdan günün hangi saatinde ağ istekleri gönderdiğini kontrol edebilirsiniz:

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;

Performans İzleme verilerinizi istediğiniz yere götürün

Bazen, Performans İzleme verilerinize sunucu tarafında erişmek veya onu başka bir üçüncü taraf çözümüne göndermek istersiniz. Şu anda verileri dışa aktarmak için herhangi bir ücret alınmamaktadır.

Verilerinizi şu şekilde dışa aktarabilirsiniz:

  • BigQuery web kullanıcı arayüzünü kullanma

  • CLI komutu Koşu bq extract

  • Bir gönderme Çıkarma işi API veya istemci kütüphaneleri aracılığıyla.

fiyatlandırma

Performans İzleme'den veri dışa aktarmak için herhangi bir ücret alınmaz ve BigQuery, cömert ücretsiz kullanım sınırları sağlar. Ayrıntılı bilgi için bkz BigQuery fiyatlandırma veya BigQuery kum havuzu .