Daha ayrıntılı analiz için Apple ve Android uygulamalarından Performance Monitoring verilerini BigQuery'e aktarabilirsiniz. BigQuery, verileri BigQuery SQL kullanarak analiz etmenize, başka bir bulut sağlayıcıya aktarmanıza ve hatta özel makine öğrenimi modellerinizde kullanmanıza olanak tanır.
BigQuery dışa aktarma özelliğini etkinleştirme
Firebase konsolunda Entegrasyonlar sayfasına gidin ve ardından BigQuery kartında Bağla'yı tıklayın.
BigQuery'ü etkinleştirmek için ekrandaki talimatları uygulayın.
Performance Monitoring için BigQuery dışa aktarma özelliğini etkinleştirdiğinizde aşağıdakiler gerçekleşir:
Firebase, BigQuery'ye mevcut verilerinizin bir kopyasını dışa aktarır. Dışa aktarma işlemi için verilerin ilk yayılması 48 saati bulabilir.
- Son 30 güne veya BigQuery dışa aktarmayı etkinleştirdiğiniz en son tarihe (hangisi en güncelse) kadar veri doldurma işlemlerini manuel olarak planlayabilirsiniz.
Veri kümesi oluşturulduktan sonra konumu değiştirilemez ancak veri kümesini farklı bir konuma kopyalayabilir veya manuel olarak farklı bir konuma taşıyabilir (yeniden oluşturabilirsiniz). Daha fazla bilgi için Veri kümesi konumunu değiştirme başlıklı makaleyi inceleyin.
Firebase, Firebase projenizdeki verilerinizin BigQuery ile düzenli olarak senkronize edilmesini sağlar. Bu günlük dışa aktarma işlemleri genellikle planlandıktan sonra 24 saat içinde biter.
Varsayılan olarak, projenizdeki tüm uygulamalar BigQuery uygulamasına bağlıdır. Daha sonra projeye eklediğiniz tüm uygulamalar otomatik olarak BigQuery'ye bağlanır. Hangi uygulamaların veri göndereceğini yönetebilirsiniz.
BigQuery dışa aktarmayı devre dışı bırakmak için Firebase konsolunda projenizin bağlantısını kaldırın.
BigQuery alanına 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 izi: Varsayılan olarak uygulama başlangıcı, ön planda uygulama ve arka planda uygulama gibi "süre" metriğini ve geliştirici tarafından enstrümante edilen tüm özel kod izlerini toplayan izler
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ırparent_trace_name
, bu metriği içeren iz adıdır
Ekran izleme: Bir ekranın kullanım ömrünü kapsayan izlemeler (ekran oluşturma izlemeleri)
event_type
:SCREEN_TRACE
event_name
,_st_
ön ekiyle birlikte gerçek ekran adıdır.
Ağ isteği: Bir ağ isteğinin yaşam süresini kapsayan izler (HTTP ağ isteği izleri)
event_type
:NETWORK_REQUEST
event_name
, ağ isteği URL'sinin kategorize edilmiş kalıbıdır
Her performans etkinliği, etkinliğin özelliklerini (ör. istemci cihazın ülkesi ve operatörü) ve etkinliğe özgü bilgileri içerir:
- Süre izleri, izleme metrikleri ve ekran izleri
trace_info
- İzleme metrikleri
trace_info.metric_info
içeriyor - Ekran izleri şunları içeriyor:
trace_info.screen_info
- Ağ izlemeleri
network_info
içeriyor
Ayrıntılı veri şeması
Alan Adı | Tür | Açıklama |
---|---|---|
event_timestamp | zaman damgası | Etkinliğin istemci cihazında başladığı zaman (zaman damgası) (izleme başlangıcı, ağ başlangıcı vb.) |
app_display_version | dize | Uygulamanın görüntülenen sürümü (ör. "4.1.7")
|
app_build_version | dize | Uygulamanın derleme sürümü (ör. "1523456")
|
os_version | dize | İstemci cihazın OS sürümü
|
device_name | dize | İstemci cihazın adı (ör. "Google Pixel") |
country | dize | Etkinliğin gerçekleştiği ülkenin iki harfli ülke kodu (ör. "US" veya bilinmeyen ülke için "ZZ") |
nakliyeci | dize | İstemci cihazın operatörü |
radyo_türü | dize | Etkinliğin gerçekleştiği sırada etkin radyo türü (ör. "Kablosuz Ağ") |
custom_attributes | ARRAY<RECORD> | Bu etkinliğe eklenen tüm özel özellikler |
custom_attributes.key | dize | Özel özelliğin anahtarı |
özel_özellikler.değer | dize | Özel özelliğin değeri |
event_type | dize | Etkinliğin türü; olası değerler:
|
event_name | dize | Etkinliğin adı
|
parent_trace_name | dize | İzleme metriğini taşıyan üst izlemenin adı Yalnızca TRACE_METRIC için mevcuttur |
trace_info | KAYIT | Yalnızca DURATION_TRACE , SCREEN_TRACE ve TRACE_METRIC için mevcut |
trace_info.duration_us | int64 |
|
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 izleme için donmuş karelerin oranı (0 ile 1 arasında) (ö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) |
trace_info.metric_info | KAYIT | Yalnızca TRACE_METRIC için mevcut |
trace_info.metric_info.metric_value | int64 | İz metriğinin değeri |
network_info | 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ü (ör. "text/html") |
network_info.request_http_method | dize | Ağ isteğinin HTTP yöntemi (ör. "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önderimi tamamlandığında event_timestamp 'ten sonraki mikrosaniyelerBirim: mikrosaniye |
network_info.response_initiated_time_tr | int64 | Ağ yanıtı başlatıldıktan event_timestamp mikrosaniye sonraBirim: mikrosaniye |
network_info.response_completed_time_us | int64 | Ağ yanıtı tamamlandıktan sonra event_timestamp değerinden sonraki mikrosaniyelerBirim: mikrosaniye |
Dışa aktarılan verilerle neler yapabilirsiniz?
Aşağıdaki bölümlerde, dışa aktarılan Performance Monitoring verilerinizle BigQuery içinde çalıştırabileceğiniz sorgulara örnekler verilmiştir.
Console'da görülen verilerle eşleştirme
Firebase kontrol paneli, günlük verileri America/Los_Angeles
saat diliminde toplar.
Konsoldakiyle eşleşecek şekilde, tarih işlevleri saat dilimi olarak America/Los_Angeles
değerini açıkça ayarlamalıdır. Aksi takdirde tarih işlevi varsayılan olarak UTC'yi kullanır.
SELECT DATE(event_timestamp, 'America/Los_Angeles') AS daily_date, APPROX_QUANTILES(trace_info.duration_us, 100)[OFFSET(90)] / 1000000 AS p90_seconds, FROM `TABLE_NAME` WHERE DATE(event_timestamp, 'America/Los_Angeles') >= DATE_SUB( PARSE_DATE('%Y%m%d', 'YYYY-MM-DD'), INTERVAL 7 DAY) AND DATE(event_timestamp, 'America/Los_Angeles') <= PARSE_DATE('%Y%m%d', 'YYYY-MM-DD') AND event_name = '_app_start' GROUP BY 1 ORDER BY 1 DESC;
Ülkeye göre ortalama uygulama başlatma gecikmesi dökümünü görüntüleme
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şullara göre 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 dosya türlerini yüklemek için önbellek isabet oranını hesaplama
Bu analizde, diskten yükleme için özel bir kod izlemeyi file-extension
adlı bir özel özellikle ve cache-hit
adlı bir özel metrik (TRACE_METRIC
) ile donattığınız varsayılır. Bu metrik, önbellek isabeti durumunda 1
, önbellek hatası durumunda ise 0
olarak ayarlanır.
Örneğin, PNG dosyalarını diskten yüklemeyle ilgili ö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ğ isteği gönderdiği zamanı kontrol edin
Ö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;
Performance Monitoring verilerinizi istediğiniz yere götürme
Bazen Performance Monitoring 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 dışa aktarmak için:
BigQuery web kullanıcı arayüzünü kullanma
CLI komutunu çalıştırma
bq extract
API veya istemci kitaplıkları üzerinden ayıklama işi gönderme
Fiyatlandırma
Performance Monitoring hizmetinden dışa veri aktarma işlemi ücretsizdir ve BigQuery, ücretsiz olarak kapsamlı kullanım sınırları sunar. Ayrıntılı bilgi için BigQuery fiyatlandırması veya BigQuery korumalı alanı inceleyin.