Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

Performans İzleme verilerini BigQuery'ye aktarın

Daha fazla analiz için iOS ve Android uygulamalarından Performans İzleme verilerini BigQuery'ye aktarabilirsiniz . 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. Firebase konsolundaki Entegrasyonlar sayfasına gidin, ardından BigQuery kartında Bağlantı'yı tıklayın.

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

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

BigQuery dışa aktarmayı devre dışı bırakmak için Firebase konsolunda projenizin bağlantısını kaldırın .

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 izleme — varsayılan olarak, uygulama başlangıcı, ön planda uygulama ve arka planda uygulama dahil olmak üzere "süre" metriğini ve ayrıca geliştirici tarafından yönlendirilen özel kod izlerini toplayan izler

    • event_type : DURATION_TRACE
    • event_name , izleme adıyla aynı
  • İzleme metriği — geliştirici tarafından kullanılan özel kod izlemeleriyle ilişkili özel metrikler

    • event_type : TRACE_METRIC
    • event_name , metriğin adıdır
    • parent_trace_name , bu ölçümü içeren izleme adıdır
  • Ekran izi — bir ekranın ömrünü kapsayan izler (ekran işleme izleri)

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

    • event_type : NETWORK_REQUEST
    • event_name , ağ isteği URL'sinin kategorize edilmiş modelidir

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, izleme ölçümleri ve ekran izleri trace_info içerir
  • İzleme metrikleri trace_info.metric_info içerir
  • Ekran izleri trace_info.screen_info içerir
  • Ağ izleri network_info içeriyor

Ayrıntılı veri şeması

Alan adı Tür 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 dize Uygulamanın görüntüleme sürümü (örneğin, "4.1.7")
  • Android için — VersionName
  • iOS için — CFBundleShortVersionString
app_build_version dize Uygulamanın sürümünü oluşturun (örneğin, "1523456")
  • Android için — VersionCode
  • iOS için — CFBundleVersion
OS sürümü dize İ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ı dize İstemci cihazın adı (örneğin, "Google Pixel")
ülke dize Etkinliğin gerçekleştiği ülkenin iki harfli ülke kodu (örneğin, bilinmeyen ülke için "US" veya "ZZ")
taşıyıcı dize İstemci cihazının taşıyıcısı
radio_type dize 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 dize Özel özelliğin anahtarı
custom_attributes.value dize Özel özelliğin değeri
etkinlik tipi dize Etkinliğin türü; olası değerler:
  • DURATION_TRACE — varsayılan olarak uygulama başlangıcı, ön planda uygulama ve arka planda uygulama dahil olmak üzere "süre" metriğini ve ayrıca geliştirici tarafından yönlendirilen özel kod izlerini toplayan izler
  • SCREEN_TRACE — bir ekranın ömrünü kapsayan izler (ekran işleme izleri)
  • TRACE_METRIC — geliştirici tarafından kullanılan özel kod izlemeleriyle ilişkili özel metrikler
  • NETWORK_REQUEST — bir ağ isteğinin ömrünü kapsayan izler (HTTP ağ isteği izleri)
etkinlik adı dize Etkinliğin adı
  • DURATION_TRACE — iz adı
  • TRACE_METRIC — özel metrik adı
  • SCREEN_TRACE_st_ ardından iz adı
  • NETWORK_REQUEST — ağ isteği URL kalıbı
parent_trace_name dize İzleme metriğini taşıyan üst izlemenin adı
Yalnızca TRACE_METRIC için TRACE_METRIC
trace_info KAYIT Yalnızca DURATION_TRACE , SCREEN_TRACE ve TRACE_METRIC için mevcut
trace_info.duration_us int64
  • DURATION_TRACE ve SCREEN_TRACESCREEN_TRACE başından sonuna kadar geçen süre ("süre")
  • TRACE_METRIC — ana TRACE_METRIC başından sonuna kadar geçen süre ("süre")
Birim: mikrosaniye
trace_info.screen_info KAYIT Yalnızca SCREEN_TRACE için 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 TRACE_METRIC için TRACE_METRIC
trace_info.metric_info.metric_value int64 İzleme metriğinin değeri
Ağ bilgisi KAYIT Yalnızca NETWORK_REQUEST için mevcut
network_info.response_code int64 Ağ yanıtı için HTTP yanıt kodu (örneğin, 200, 404)
network_info.response_mime_type dize Ağ yanıtının MIME türü (örneğin, "metin/html")
network_info.request_http_method dize 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 Ağ isteği gönderme tamamlandığında event_timestamp'ten sonraki event_timestamp
Birim: mikrosaniye
network_info.response_initiated_time_us int64 Ağ yanıtı başlatıldığında event_timestamp'ten sonraki event_timestamp
Birim: mikrosaniye
network_info.response_completed_time_us int64 Ağ yanıtı tamamlandığında event_timestamp'ten sonraki event_timestamp
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, file-extension adlı özel bir öznitelik ve önbellek isabeti durumunda 1 ve cache-hit TRACE_METRIC 0 olarak ayarlanan cache-hit adlı özel bir metrik (bir TRACE_METRIC ) ile diskten yükleme için özel bir kod izlemesi uyguladığınızı varsayar.

Ö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 komutunun çalıştırılması bq extract

  • API veya istemci kitaplıkları aracılığıyla birayıklama işi gönderme.

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 BigQuery fiyatlandırmasına veya BigQuery korumalı alanına bakın .