Performance Monitoring verilerini BigQuery'ye aktarın

Daha ayrıntılı analiz için Apple ve Android uygulamalarından BigQuery'ye Performans İzleme verilerini aktarabilirsiniz. BigQuery, verileri BigQuery SQL kullanarak analiz etmenize, başka bir bulut sağlayıcıya aktarmanıza ve hatta özel makine öğrenimi modelleriniz için kullanmanıza olanak tanır.

BigQuery dışa aktarmayı etkinleştir

  1. Firebase konsolunda Entegrasyonlar sayfasına gidin ve ardından BigQuery kartında Bağla'yı tıklayın.

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

    Performance Monitoring için BigQuery Export'u etkinleştirdiğinizde aşağıdakiler gerçekleşir:

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

BigQuery'ye hangi veriler aktarılır?

Dışa aktarma işlemi, projedeki her uygulama için yakalanan tüm performans etkinliklerini içeren bir tablo oluşturur. Tablodaki her satır, aşağıdakilerden biri olabilecek tek bir performans etkinliğidir:

  • Süre izleme: Varsayılan olarak uygulama başlatma, ön plandaki uygulama ve arka plandaki uygulama gibi "süre" metriğini toplayan izler ve geliştirici tarafından kullanılan özel kod izleri

    • event_type: DURATION_TRACE
    • event_name, iz adıyla aynı
  • İzleme metriği: Geliştiricinin kullandığı özel kod izleriyle ilişkilendirilen özel metrikler

    • event_type: TRACE_METRIC
    • event_name, metriğin adıdır
    • parent_trace_name, bu metriği içeren iz adıdır
  • Ekran izleme: Bir ekranın kullanım ömrünü kapsayan izler (ekran oluşturma izleri)

    • event_type: SCREEN_TRACE
    • event_name, _st_ önekine ek olarak gerçek ekran adından oluşur
  • 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 kategorilere ayrılmış kalıbıdır

Her performans etkinliği, etkinlik özelliklerinin (ör. istemci cihazının ülkesi ve operatörü) yanı sıra etkinliğe özel bilgileri içerir:

  • Süre izleri, iz metrikleri ve ekran izleri şunları içerir: trace_info
  • İz metrikleri trace_info.metric_info içeriyor
  • Ekran izleri şunları içeriyor: trace_info.screen_info
  • Ağ izleri şunu içeriyor: network_info

Ayrıntılı veri şeması

Alan Adı Tür Açıklama
event_timestamp zaman damgası İstemci cihazında etkinliğin başladığı Epoch'tan bu yana geçen zaman damgası (izleme başlangıcı, ağ başlangıcı vb.)
uygulama_görüntülü_sürümü dize Uygulamanın görüntüleme sürümü (ör. "4.1.7")
  • Android için — VersionName
  • iOS için — CFBundleShortVersionString
uygulama_oluşturma_sürümü dize Uygulamanın derleme sürümü (ör. "1523456")
  • Android için — VersionCode
  • iOS için — CFBundleVersion
os_sürümü dize İstemci cihazın OS sürümü
  • Android için — Android API düzeyi (örneğin, "26")
  • iOS için - iOS sürümü (örneğin "11.4")
device_name [cihaz_adı] dize İstemci cihazın adı (örneğin, "Google Pixel")
country dize Etkinliğin gerçekleştiği ülkenin iki harfli ülke kodu (örneğin, bilinmeyen ülke için "US" veya "ZZ")
nakliyeci dize İstemci cihazın operatörü
radyo_türü dize Etkinlik gerçekleştiğinde etkin radyo türü (ör. "Kablosuz")
özel_özellikler DİZİ<KAYIT> Bu etkinliğe ekli tüm özel özellikler
özel_özellikler.anahtar dize Özel özelliğin anahtarı
özel_özellikler.değer dize Özel özelliğin değeri
event_type [etkinlik_türü] dize Etkinliğin türü; olası değerler:
  • DURATION_TRACE - Varsayılan olarak "süre" metriğini toplayan izler (uygulama başlatma, ön plandaki uygulama ve arka plandaki uygulamanın yanı sıra geliştirici tarafından kullanılan özel kod izleri dahil)
  • SCREEN_TRACE - bir ekranın kullanım ömrünü kapsayan izler (ekran oluşturma izleri)
  • TRACE_METRIC: Geliştirici aracı tarafından kullanılan özel kod izlemelerle ilişkilendirilen özel metrikler
  • NETWORK_REQUEST - ağ isteğinin kullanım ömrünü kapsayan izler (HTTP ağ isteği izleri)
event_name dize Etkinliğin adı
  • DURATION_TRACE için — iz adı
  • TRACE_METRIC için — özel metrik adı
  • SCREEN_TRACE için — _st_ ve ardından iz adı
  • NETWORK_REQUEST için - ağ istek URL'si kalıbı
üst_izleyici_adı dize İz metriğini taşıyan üst izlemenin adı
Yalnızca TRACE_METRIC için mevcuttur
iz_bilgisi KAYIT Yalnızca DURATION_TRACE, SCREEN_TRACE ve TRACE_METRIC için mevcut
trace_info.duration_us int64
  • DURATION_TRACE ve SCREEN_TRACE için: İzin başlangıcından sonuna kadar geçen süre ("süre")
  • TRACE_METRIC için: Üst izlemenin başlangıcından sonuna kadar süre ("süre")
Birim: mikrosaniye
trace_info.screen_info KAYIT Yalnızca SCREEN_TRACE için mevcut
izleme_bilgisi.ekran_bilgisi.yavaş_kare_oranı kayan64 Bu ekran izi için yavaş karelerin oranı, 0 ile 1 arasındadır (örneğin, 0,05 değeri bu ekran örneğindeki karelerin% 5'inin oluşturulmasının 16 ms.den uzun sürdüğü anlamına gelir)
trace_info.screen_info.frozen_frame_ratio kayan64 Bu ekran izi için 0 ile 1 arasında donmuş karelerin oranı (örneğin, 0, 05 değeri bu ekran örneğindeki karelerin% 5'inin oluşturulmasının 700 ms.den uzun sürdüğü anlamına gelir)
izleme_bilgisi.metrik_bilgisi KAYIT Yalnızca TRACE_METRIC için mevcut
izleme_bilgisi.metrik_bilgi.metrik_değer int64 İz metriğinin değeri
ağ_bilgileri KAYIT Yalnızca NETWORK_REQUEST için mevcut
network_info.response_code [Ağ_bilgisi.yanıt_kodu] int64 Ağ yanıtı için HTTP yanıt kodu (örneğin, 200, 404)
network_info.response_mime_type [ağ_bilgisi.yanıt_mime_türü] 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_tr int64 Ağ isteği gönderme işlemi tamamlandığında event_timestamp sonrasındaki mikrosaniye
Birim: mikrosaniye
network_info.response_initiated_time_tr int64 Ağ yanıtı başlatıldığında event_timestamp sonrasındaki mikrosaniye
Birim: mikrosaniye
network_info.response_completed_time_tr int64 Ağ yanıtı tamamlandığında event_timestamp sonrasındaki mikrosaniye
Birim: mikrosaniye

Dışa aktarılan verilerle ne yapabilirsiniz?

Aşağıdaki bölümlerde, dışa aktarılan Performance Monitoring verilerinizle BigQuery'de çalıştırabileceğiniz sorgulara örnekler verilmiştir.

Ü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ş karelerin oranını çeşitli koşullarla karşılaştırarak kontrol etme

Örneğin, donmuş karelerin oranını ve kullanıcıların farklı radyo türlerini (kablosuz, 4G vb.) kullanırken uygulamanızın her bir ekranında geçirdiği sürenin 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 türdeki dosyaları yüklemeye ilişkin önbellek isabet oranını hesapla

Bu analizde, diskten yükleme için file-extension adlı bir özel özellik ve önbellek isabeti durumunda 1 ve önbellek eksikse 0 olarak ayarlanmış cache-hit adlı bir özel metrik (TRACE_METRIC) kullanarak özel bir kod izi uyguladığınız varsayılmıştır.

Örneğin, diskten PNG dosyalarını 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 günün hangi saatinde ağ isteği gönderdiğini kontrol etme

Örneğin, ABD'deki kullanıcıların günün hangi saatinde uygulamanızdan ağ isteği 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 verilerinizi başka bir üçüncü taraf çözümüne aktarmak istersiniz. Şu anda verilerin dışa aktarılması için ücret alınmamaktadır.

Verilerinizi aşağıdaki yöntemlerle dışa aktarabilirsiniz:

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

  • CLI komutunu çalıştırma bq extract

  • API veya istemci kitaplıklarıyla ayıklama işi gönderme.

Fiyatlandırma

Performance Monitoring'den veri dışa aktarım için ücret alınmaz. BigQuery, ücretsiz olarak kullanabileceğiniz yüksek kullanım sınırları sunar. Ayrıntılı bilgi için BigQuery fiyatlandırmasına veya BigQuery korumalı alanına bakın.