Firebase Crashlytics verilerini BigQuery'ye aktarın

Daha fazla analiz için Crashlytics verilerinizi BigQuery'ye aktarabilirsiniz. BigQuery, verileri BigQuery SQL kullanarak analiz etmenize, başka bir bulut sağlayıcıya aktarmanıza ve Google Data Studio ile görselleştirme ve özel kontrol panelleri için kullanmanıza olanak tanır.

BigQuery dışa aktarmayı etkinleştir

  1. Firebase konsolundaki Entegrasyonlar sayfasına gidin.
  2. BigQuery kartında Bağlantı'yı tıklayın.
  3. BigQuery'yi etkinleştirmek için ekrandaki talimatları izleyin.

Projenizi BigQuery'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?

Firebase Crashlytics verileri, firebase_crashlytics adlı bir BigQuery veri kümesine aktarılır. Varsayılan olarak, projenizdeki her uygulama için Crashlytics veri kümesinde ayrı tablolar oluşturulacaktır. Firebase, tabloları uygulamanın paket tanımlayıcısına göre, alt çizgiye dönüştürülmüş noktalar ve sonuna bir platform adı eklenmiş olarak adlandırır.

Örneğin, com.google.test kimliğine sahip bir uygulamanın verileri com_google_test_ANDROID adlı bir tabloda olacaktır. Bu parti tablosu her gün bir kez güncellenir. Crashlytics BigQuery akışını dışa aktarmayı etkinleştirirseniz, Firebase Crashlytics verileri de gerçek zamanlı olarak com_google_test_ANDROID_REALTIME aktarılır.

Bir tablodaki her satır, kilitlenmeler, önemli olmayan hatalar ve ANR'ler dahil olmak üzere uygulamada meydana gelen bir olayı temsil eder.

Crashlytics BigQuery akış dışa aktarımını etkinleştirin

BigQueryStreaming ile Crashlytics verilerinizi gerçek zamanlı olarak aktarabilirsiniz. Bilgileri canlı bir kontrol panelinde sunmak, bir sunumu canlı olarak izlemek veya uyarıları ve özel iş akışlarını tetikleyen uygulama sorunlarını izlemek gibi canlı veri gerektiren herhangi bir amaç için kullanabilirsiniz.

Crashlytics BigQuery akış dışa aktarımı, BigQuery korumalı alanı için kullanılamaz.

Crashlytics BigQuery akış dışa aktarma özelliğini etkinleştirdiğinizde toplu iş tablosuna ek olarak gerçek zamanlı bir tablonuz olur. Tablolar arasında bilmeniz gereken farklar şunlardır:

Parti Tablosu Gerçek Zamanlı Tablo
  • Veriler günde bir kez dışa aktarılır
  • Olaylar, BigQuery'ye toplu olarak yazılmadan önce kalıcı olarak depolanır
  • 90 gün öncesine kadar doldurulabilir
  • Gerçek zamanlı olarak dışa aktarılan veriler
  • Dolgu mevcut değil

Toplu iş tablosu, uzun vadeli analizler ve zaman içindeki eğilimleri belirlemek için idealdir çünkü olayları yazmadan önce dayanıklı bir şekilde saklarız ve 90 güne kadar tabloya geri doldurulabilirler. Gerçek zamanlı tablonuza veri yazdığımızda, onu hemen BigQuery'ye yazarız ve bu nedenle, canlı panolar ve özel uyarılar için idealdir. Bu iki tablo, her ikisinin de avantajlarından yararlanmak için bir birleştirme sorgusu ile birleştirilebilir. Aşağıdaki sorgu Örneği 9'a bakın.

Varsayılan olarak, gerçek zamanlı tablonun bölüm sona erme süresi 30 gündür. Bunu nasıl değiştireceğinizi öğrenmek için Bölüm son kullanma tarihini güncelleme bölümüne bakın.

Crashlytics BigQuery akışını etkinleştirin

Akışı etkinleştirmek için BigQuery entegrasyonları sayfasının Crashlytics bölümüne gidin ve Akışı dahil et onay kutusunu seçin.

Veri Stüdyosu Şablonu

Data Studio şablonunuzda gerçek zamanlı verileri etkinleştirmek için, Dışa aktarılan Crashlytics verilerini Data Studio ile görselleştirme bölümündeki talimatları izleyin.

Görüntüleme

BigQuery kullanıcı arayüzünü kullanarak aşağıdaki örnek sorguları görünümlere dönüştürebilirsiniz. Ayrıntılı talimatlar için bkz. Görünüm oluşturma .

Dışa aktarılan verilerle ne yapabilirsiniz?

BigQuery dışa aktarmaları, diğer verilerin yanı sıra cihaz türü, işletim sistemi, istisnalar (Android uygulamaları) veya hatalar (Apple uygulamaları) ve Crashlytics günlükleri gibi ham kilitlenme verilerini içerir.

BigQuery'de Firebase Crashlytics verileriyle çalışma

Aşağıdaki örnekler, Crashlytics verileriniz üzerinde çalıştırabileceğiniz sorguları göstermektedir. Bu sorgular, Crashlytics kontrol panelinde bulunmayan raporlar oluşturur.

Crashlytics sorgularına örnekler

Aşağıdaki örnekler, kilitlenme olayı verilerini daha kolay anlaşılır özetler halinde toplayan raporların nasıl oluşturulacağını göstermektedir.

Örnek 1: Güne göre kilitlenmeler

Baş geliştirici, mümkün olduğu kadar çok hatayı düzeltmeye çalıştıktan sonra ekibinin nihayet yeni fotoğraf paylaşım uygulamasını başlatmaya hazır olduğunu düşünüyor. Bunu yapmadan önce, bug-bash'larının uygulamayı zaman içinde daha kararlı hale getirdiğinden emin olmak için geçen ay için günlük kilitlenme sayısını kontrol etmek istiyorlar:

SELECT
  COUNT(DISTINCT event_id) AS number_of_crashes,
  FORMAT_TIMESTAMP("%F", event_timestamp) AS date_of_crashes
FROM
 `projectId.firebase_crashlytics.package_name_ANDROID`
GROUP BY
  date_of_crashes
ORDER BY
  date_of_crashes DESC
LIMIT 30;

Örnek 2: En yaygın kilitlenmeleri bulun

Bir proje yöneticisi, üretim planlarını düzgün bir şekilde önceliklendirmek için ürünlerindeki en yaygın 10 çökmeyi nasıl işaret edeceğini düşünür. İlgili veri noktalarını sağlayan bir sorgu üretirler:

SELECT
  DISTINCT issue_id,
  COUNT(DISTINCT event_id) AS number_of_crashes,
  COUNT(DISTINCT installation_uuid) AS number_of_impacted_user,
  blame_frame.file,
  blame_frame.line
FROM
  `projectId.firebase_crashlytics.package_name_ANDROID`
WHERE
  event_timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(),INTERVAL 168 HOUR)
  AND event_timestamp < CURRENT_TIMESTAMP()
GROUP BY
  issue_id,
  blame_frame.file,
  blame_frame.line
ORDER BY
  number_of_crashes DESC
LIMIT 10;

Örnek 3: İlk 10 kilitlenen cihaz

Sonbahar yeni telefon sezonu! Bir geliştirici, bunun aynı zamanda yeni cihaza özel sorunlar sezonu anlamına geldiğini bilir. Yaklaşan uyumluluk endişelerinin önüne geçmek için, geçen hafta en çok çökme yaşayan 10 cihazı tanımlayan bir sorgu oluşturdular:

SELECT
  device.model,
COUNT(DISTINCT event_id) AS number_of_crashes
FROM
  `projectId.firebase_crashlytics.package_name_ANDROID`
WHERE
  event_timestamp >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 168 HOUR)
  AND event_timestamp < CURRENT_TIMESTAMP()
GROUP BY
  device.model
ORDER BY
  number_of_crashes DESC
LIMIT 10;

Örnek 4: Özel anahtara göre filtreleme

Bir oyun geliştiricisi, oyunlarının hangi seviyesinde en çok çökme yaşandığını bilmek ister. Bu istatistiği takip etmelerine yardımcı olmak için özel bir Crashlytics anahtarı current_level ayarlar ve kullanıcı her yeni seviyeye ulaştığında bunu günceller.

Amaç-C

CrashlyticsKit setIntValue:3 forKey:@"current_level";

Süratli

Crashlytics.sharedInstance().setIntValue(3, forKey: "current_level");

java

Crashlytics.setInt("current_level", 3);

BigQuery dışa aktarmalarında bu anahtarla, her kilitlenme olayıyla ilişkili current_level değerlerinin dağılımını bildirmek için bir sorgu yazarlar:

SELECT
COUNT(DISTINCT event_id) AS num_of_crashes,
  value
FROM
  `projectId.firebase_crashlytics.package_name_ANDROID`
UNNEST(custom_keys)
WHERE
  key = "current_level"
GROUP BY
  key,
  value
ORDER BY
  num_of_crashes DESC

Örnek 5: Kullanıcı Kimliği çıkarma

Bir geliştiricinin erken erişimde olan bir uygulaması var. Kullanıcılarının çoğu onu seviyor, ancak üçü alışılmadık sayıda kilitlenme yaşadı. Sorunun temeline inmek için, kullanıcı kimliklerini kullanarak bu kullanıcılar için tüm kilitlenme olaylarını çeken bir sorgu yazarlar:

SELECT *
FROM
  `projectId.firebase_crashlytics.package_name_ANDROID`
WHERE
  user.id IN ("userid1", "userid2", "userid3")
ORDER BY
  user.id
 

Örnek 6: Belirli bir kilitlenme sorunuyla karşılaşan tüm kullanıcıları bulun

Bir geliştirici, bir grup beta testçisine kritik bir hata yayınladı. Ekip, belirli kilitlenme sorunu kimliğini belirlemek için yukarıdaki Örnek 2'deki sorguyu kullanabildi. Şimdi, bu kilitlenmeden etkilenen uygulama kullanıcılarının listesini çıkarmak için bir sorgu çalıştırmak istiyorlar:

SELECT user.id as user_id
FROM
  `projectId.firebase_crashlytics.package_name_ANDROID`
WHERE
  issue_id = "YOUR_ISSUE_ID"
  AND application.display_version = ""
  AND user.id != ""
ORDER BY
  user.id;

Örnek 7: Kilitlenme sorunundan etkilenen kullanıcı sayısı, ülkeye göre ayrılmış

Şimdi ekip, yeni bir sürümün kullanıma sunulması sırasında kritik bir hata tespit etti. Belirli kilitlenme sorunu kimliğini belirlemek için yukarıdaki Örnek 2'deki sorguyu kullanabildiler. Ekip şimdi, bu çökmenin dünyanın farklı ülkelerindeki kullanıcılara yayılıp yayılmadığını görmek istiyor.

Bu sorguyu yazmak için ekibin şunları yapması gerekir:

  1. Google Analytics için BigQuery dışa aktarımlarını etkinleştirin. Proje verilerini BigQuery'ye aktarma konusuna bakın.

  2. Kullanıcı kimliğini hem Google Analytics SDK'sına hem de Crashlytics SDK'sına iletmek için uygulamalarını güncelleyin.

    Amaç-C
    CrashlyticsKit setUserIdentifier:@"123456789";
    FIRAnalytics setUserID:@"12345678 9";
    
    Süratli
    Crashlytics.sharedInstance().setUserIdentifier("123456789");
    Analytics.setUserID("123456789");
    
    java
    Crashlytics.setUserIdentifier("123456789");
    mFirebaseAnalytics.setUserId("123456789");
    
  3. Google Analytics BigQuery veri kümesindeki etkinlikleri Crashlytics BigQuery veri kümesindeki kilitlenmelerle birleştirmek için kullanıcı kimliği alanını kullanan bir sorgu yazın:

    SELECT DISTINCT c.issue_id, a.geo.country, COUNT(DISTINCT c.user.id) as num_users_impacted
    FROM `projectId.firebase_crashlytics.package_name_ANDROID` c
    INNER JOIN  `projectId.analytics_YOUR_TABLE.events_*` a on c.user.id = a.user_id
    WHERE
     c.issue_id = "YOUR_ISSUE_ID"
     AND a._TABLE_SUFFIX BETWEEN '20190101'
     AND '20200101'
    GROUP BY
     c.issue_id,
     a.geo.country,
     c.user.id
    

Örnek 8: Bugüne kadarki en önemli 5 sorun

Crashlytics BigQuery akış dışa aktarımının etkinleştirilmesini gerektirir

SELECT
  issue_id,
  COUNT(DISTINCT event_id) AS events
FROM
  `your_project.firebase_crashlytics.package_name_ANDROID_REALTIME`
WHERE
  DATE(event_timestamp) = CURRENT_DATE()
GROUP BY
  issue_id
ORDER BY
  events DESC
LIMIT
  5;

Örnek 9: Bugün dahil DATE tarihinden bu yana ilk 5 sorun

Crashlytics BigQuery akış dışa aktarımının etkinleştirilmesini gerektirir.

Bu örnekte, güvenilir parti verilerine gerçek zamanlı bilgiler eklemek için parti ve gerçek zamanlı tabloları birleştiriyoruz. event_id birincil anahtar olduğundan, iki tablodaki herhangi bir ortak olayı tekilleştirmek için DISTINCT event_id kullanabiliriz.

SELECT
  issue_id,
  COUNT(DISTINCT event_id) AS events
FROM (
  SELECT
    issue_id,
    event_id,
    event_timestamp
  FROM
    `your_project.firebase_crashlytics.package_name_ANDROID_REALTIME`
  UNION ALL
  SELECT
    issue_id,
    event_id,
    event_timestamp
  FROM
    `your_project.firebase_crashlytics.package_name_ANDROID`)
WHERE
  event_timestamp >= "2020-01-13"
GROUP BY
  issue_id
ORDER BY
  events DESC
LIMIT
  5;

BigQuery'de Firebase Crashlytics şemasını anlama

Crashlytics'i BigQuery'ye bağladığınızda Firebase, doksan güne kadar doldurma seçeneğiyle, bağlantıdan iki gün öncesine kadar olan olaylar dahil son olayları (çökmeler, önemli olmayan hatalar ve ANR'ler) dışa aktarır.

Bu noktadan siz bağlantıyı devre dışı bırakana kadar Firebase, Crashlytics etkinliklerini günlük olarak dışa aktarır. Verilerin her dışa aktarma işleminden sonra BigQuery'de kullanılabilir hale gelmesi birkaç dakika sürebilir.

veri kümeleri

Firebase Crashlytics, BigQuery for Crashlytics verilerinde yeni bir veri kümesi oluşturur. Veri kümesi, birden çok uygulaması olsa bile tüm projenizi kapsar.

Tablolar

Firebase Crashlytics, projenizdeki her uygulama için veri kümesinde bir tablo oluşturur (bu uygulama için verileri dışa aktarmayı devre dışı bırakmadıysanız). Firebase, tabloları uygulamanın paket tanımlayıcısına göre, alt çizgiye dönüştürülmüş noktalar ve sonuna bir platform adı eklenmiş olarak adlandırır.

Örneğin, com.google.test kimliğine sahip bir Android uygulamasının verileri com_google_test_ANDROID adlı bir tabloda ve gerçek zamanlı veriler (etkinleştirilmişse) com_google_test_ANDROID_REALTIME adlı bir tabloda olacaktır.

Tablolar, geliştiriciler tarafından tanımlanan herhangi bir özel Crashlytics anahtarına ek olarak standart bir Crashlytics verisi seti içerir.

Satırlar

Tablodaki her satır, uygulamanın karşılaştığı bir hatayı temsil eder.

Sütunlar

Bir tablodaki sütunlar kilitlenmeler, önemli olmayan hatalar ve ANR'ler için aynıdır. Crashlytics BigQuery akış dışa aktarımı etkinleştirilirse gerçek zamanlı tablo, toplu iş tablosuyla aynı sütunlara sahip olur. Dışa aktarma içindeki sütunlar aşağıda listelenmiştir.

Yığın izleri olmadan

Yığın izlemesi olmayan olayları temsil eden satırlarda bulunan sütunlar.

Alan adı Veri tipi Tanım
platformu SİCİM Apple veya Android uygulamaları
paket_tanımlayıcı SİCİM Paket kimliği, ör. com.google.gmail
event_id SİCİM Etkinlik için benzersiz bir kimlik
is_fatal BOOLE Uygulamanın çöküp çökmediği
hata_türü SİCİM Olayın hata türü (FATAL, NON_FATAL, ANR)
sayı_kimliği SİCİM Etkinlikle ilgili sorun
varyant_id SİCİM Bu etkinlikle ilişkili sorun varyantı
Tüm etkinliklerin ilişkili bir sorun varyantı olmadığını unutmayın.
event_timestamp ZAMAN BİLGİSİ Olay meydana geldiğinde
cihaz KAYIT Olayın gerçekleştiği cihaz
cihaz üreticisi SİCİM cihaz üreticisi
cihaz modeli SİCİM Cihaz modeli
cihaz.mimari SİCİM X86_32, X86_64, ARMV7, ARM64, ARMV7S veya ARMV7K
hafıza KAYIT Cihazın hafıza durumu
bellek.kullanılmış INT64 Kullanılan bellek baytı
bellek.ücretsiz INT65 Kalan bellek baytı
depolamak KAYIT Cihazın kalıcı depolaması
depolama.kullanılmış INT64 Kullanılan depolama baytı
depolama.ücretsiz INT64 Kalan depolama baytı
işletim sistemi KAYIT Cihazdaki işletim sisteminin ayrıntıları
işletim_sistemi.display_version SİCİM Cihazdaki işletim sisteminin sürümü
işletim_sistemi.adı SİCİM Cihazdaki işletim sisteminin adı
işletim_sistemi.modifikasyon_durumu SİCİM Cihazın değiştirilip değiştirilmediği, örneğin jailbreak/root (DEĞİŞTİRİLMİŞ veya DEĞİŞTİRİLMEMİŞ)
işletim_sistemi.türü SİCİM Cihazda çalışan işletim sisteminin türü (örneğin, IOS, MACOS); yalnızca Apple platformları uygulamaları için kullanılabilir
işletim_sistemi.device_type SİCİM Cihazın türü (örneğin MOBİL, TABLET, TV vb.); "cihaz kategorisi" olarak da bilinir
başvuru KAYIT Etkinliği oluşturan uygulama
uygulama.build_version SİCİM Uygulamanın derleme sürümü
application.display_version SİCİM
kullanıcı KAYIT İsteğe bağlı: Uygulamanın kullanıcısı hakkında toplanan bilgiler
Kullanıcı adı SİCİM İsteğe bağlı: Kullanıcının adı
Kullanıcı e-postası SİCİM İsteğe bağlı: Kullanıcının e-posta adresi
Kullanıcı kimliği SİCİM İsteğe bağlı: Kullanıcıyla ilişkili uygulamaya özel bir kimlik
özel_anahtarlar TEKRARLAYAN KAYIT Geliştirici tanımlı anahtar/değer çiftleri
custom_keys.key SİCİM Geliştirici tanımlı bir anahtar
custom_keys.value SİCİM Geliştirici tanımlı bir değer
kurulum_uuid SİCİM Benzersiz bir uygulama ve cihaz yüklemesini tanımlayan bir kimlik
crashlytics_sdk_versions SİCİM Etkinliği oluşturan Crashlytics SDK sürümü
uygulama_yönelimi SİCİM PORTRE, MANZARA, YÜZ YUKARI veya YÜZ AŞAĞI
cihaz_yönlendirmesi SİCİM PORTRE, MANZARA, YÜZ YUKARI veya YÜZ AŞAĞI
işlem_durumu SİCİM ARKA PLAN veya ÖN PLAN
kütükler TEKRARLAYAN KAYIT Etkinleştirilmişse, Crashlytics günlüğü tarafından oluşturulan zaman damgalı günlük mesajları
günlükler.zaman damgası ZAMAN BİLGİSİ Günlük yapıldığında
günlükler.mesaj SİCİM Günlüğe kaydedilen mesaj
galeta unu TEKRARLAYAN KAYIT Etkinleştirilmişse, zaman damgalı Google Analytics kırıntıları
kırıntılar.timestamp ZAMAN BİLGİSİ İçerik haritasıyla ilişkili zaman damgası
ekmek kırıntıları.isim SİCİM Ekmek kırıntısıyla ilişkili ad
kırıntıları.params TEKRARLAYAN KAYIT İçerik haritasıyla ilişkili parametreler
ekmek kırıntıları.params.key SİCİM İçerik haritasıyla ilişkilendirilmiş bir parametre anahtarı
ekmek kırıntıları.params.değer SİCİM İçerik haritasıyla ilişkilendirilmiş bir parametre değeri
suçlama çerçevesi KAYIT Kilitlenme veya hatanın temel nedeni olarak tanımlanan çerçeve
suçlama_çerçevesi.hat INT64 Çerçeve dosyasının satır numarası
suçlama_çerçevesi.dosya SİCİM çerçeve dosyasının adı
suçlama_çerçevesi.sembol SİCİM Hidratlı sembol veya hidratlanamıyorsa ham sembol
suçlama_çerçevesi.offset INT64 Java istisnaları için ayarlanmamış, kodu içeren ikili görüntüdeki bayt ofseti
suçlama_çerçevesi.adres INT64 Java çerçeveleri için ayarlanmamış, kodu içeren ikili görüntüdeki adres
suçlama_çerçevesi.kütüphane SİCİM Çerçeveyi içeren kitaplığın görünen adı
suçlama_çerçevesi.sahibi SİCİM GELİŞTİRİCİ, SATICI, ÇALIŞTIRMA ZAMANI, PLATFORM veya SİSTEM
suçlama_çerçevesi.suçlama BOOLE Crashlytics'in analizinin, bu çerçevenin çökmeye veya hataya neden olduğunu belirleyip belirlemediği
istisnalar TEKRARLAYAN KAYIT Yalnızca Android: Bu etkinlik sırasında meydana gelen istisnalar. Yuvalanmış istisnalar ters kronolojik sırayla sunulur (okuma: son kayıt, atılan ilk istisnadır)
istisnalar.tür SİCİM İstisna türü, ör. java.lang.IllegalStateException
istisnalar.exception_mesaj SİCİM İstisna ile ilişkili bir mesaj
istisnalar.iç içe geçmiş BOOLE Son atılan istisna dışında hepsi için doğrudur (yani ilk kayıt)
istisnalar.başlık SİCİM Konu başlığı
istisnalar.altyazı SİCİM Konunun alt başlığı
istisnalar.suçlu BOOLE Crashlytics hata veya kilitlenmeden istisnanın sorumlu olduğunu belirlerse doğrudur
istisnalar.çerçeveler TEKRARLAYAN KAYIT İstisna ile ilişkili çerçeveler
istisnalar.çerçeveler.satır INT64 Çerçeve dosyasının satır numarası
istisnalar.çerçeveler.dosya SİCİM çerçeve dosyasının adı
istisnalar.çerçeveler.sembol SİCİM Hidratlı sembol veya hidratlanamıyorsa ham sembol
istisnalar.çerçeveler.offset INT64 Java istisnaları için ayarlanmamış, kodu içeren ikili görüntüdeki bayt ofseti
istisnalar.çerçeveler.adres INT64 Java çerçeveleri için ayarlanmamış, kodu içeren ikili görüntüdeki adres
istisnalar.çerçeveler.kütüphane SİCİM Çerçeveyi içeren kitaplığın görünen adı
istisnalar.çerçeveler.sahibi SİCİM GELİŞTİRİCİ, SATICI, ÇALIŞTIRMA ZAMANI, PLATFORM veya SİSTEM
istisnalar.çerçeveler.suçlu BOOLE Crashlytics'in analizinin, bu çerçevenin çökmeye veya hataya neden olduğunu belirleyip belirlemediği
hata TEKRARLAYAN KAYIT Yalnızca Apple uygulamaları: önemli olmayan hatalar
hata.sıra_adı SİCİM İş parçacığının çalıştığı sıra
hata kodu INT64 Uygulamanın özel olarak günlüğe kaydedilen NSError'uyla ilişkili hata kodu
hata.başlık SİCİM Konu başlığı
hata.altyazı SİCİM Konunun alt başlığı
hata.suçlu BOOLE Crashlytics'in analizinin hatanın nedeninin bu çerçeve olduğunu belirleyip belirlemediği
hata.çerçeveler TEKRARLAYAN KAYIT Stacktrace çerçeveleri
hata.çerçeveler.satır INT64 Çerçeve dosyasının satır numarası
hata.çerçeveler.dosya SİCİM çerçeve dosyasının adı
hata.çerçeveler.sembol SİCİM Hidratlı sembol veya hidratlanamıyorsa ham sembol
error.frames.offset INT64 Kodu içeren ikili görüntüdeki bayt ofseti
hata.çerçeveler.adres INT64 Kodu içeren ikili görüntüdeki adres
error.frames.library SİCİM Çerçeveyi içeren kitaplığın görünen adı
hata.çerçeveler.sahibi SİCİM GELİŞTİRİCİ, SATICI, ÇALIŞTIRMA ZAMANI, PLATFORM veya SİSTEM
hata.çerçeveler.suçlu BOOLE Crashlytics'in analizinin hatanın nedeninin bu çerçeve olduğunu belirleyip belirlemediği
İş Parçacığı TEKRARLAYAN KAYIT Etkinlik sırasında mevcut olan ileti dizileri
threads.crashed BOOLE İş parçacığının çöküp çökmediği
threads.thread_name SİCİM Konunun adı
thread.queue_name SİCİM Yalnızca Apple uygulamaları: İş parçacığının üzerinde çalıştığı sıra
threads.signal_name SİCİM Uygulamanın çökmesine neden olan sinyalin adı, yalnızca kilitlenen yerel ileti dizilerinde bulunur
threads.signal_code SİCİM Uygulamanın çökmesine neden olan sinyalin kodu; yalnızca kilitlenen yerel ileti dizilerinde bulunur
threads.crash_address INT64 Uygulamanın çökmesine neden olan sinyalin adresi; yalnızca kilitlenen yerel ileti dizilerinde bulunur
threads.code INT64 Yalnızca Apple uygulamaları: Uygulamanın özel olarak günlüğe kaydedilen NSError hata kodu
threads.title SİCİM Konu başlığı
Konular.altyazı SİCİM Konunun alt başlığı
Konular.suçlu BOOLE Crashlytics'in analizinin, bu çerçevenin çökmeye veya hataya neden olduğunu belirleyip belirlemediği
Konular.çerçeveler TEKRARLAYAN KAYIT İplik çerçeveleri
threads.frames.line INT64 Çerçeve dosyasının satır numarası
threads.frames.file SİCİM çerçeve dosyasının adı
threads.frames.symbol SİCİM Hidratlı sembol veya hidratlanamıyorsa ham sembol
threads.frames.offset INT64 Kodu içeren ikili görüntüdeki bayt ofseti
threads.frames.adres INT64 Kodu içeren ikili görüntüdeki adres
threads.frames.library SİCİM Çerçeveyi içeren kitaplığın görünen adı
threads.frames.sahibi SİCİM GELİŞTİRİCİ, SATICI, ÇALIŞTIRMA ZAMANI, PLATFORM veya SİSTEM
threads.frames.blamed BOOLE Crashlytics'in analizinin hatanın nedeninin bu çerçeve olduğunu belirleyip belirlemediği
birlik_metadata.unity_version SİCİM Bu cihazda çalışan Unity sürümü
birlik_metadata.debug_build BOOLE Bu bir hata ayıklama yapısıysa
birlik_metadata.işlemci_türü SİCİM işlemci türü
birlik_metadata.işlemci_sayım INT64 İşlemci sayısı (çekirdek)
birlik_metadata.işlemci_frekans_mhz INT64 İşlemci(ler)in MHz cinsinden frekansı
birlik_metadata.system_memory_size_mb INT64 Mb cinsinden sistem belleğinin boyutu
birlik_metadata.graphics_memory_size_mb INT64 MB cinsinden grafik belleği
birlik_metadata.graphics_device_id INT64 Grafik aygıtının tanımlayıcısı
birlik_metadata.grafikler_device_vendor_id INT64 Grafik işlemci satıcısının tanımlayıcısı
birlik_metadata.grafik_device_name SİCİM Grafik aygıtının adı
birlik_metadata.grafikler_device_vendor SİCİM Grafik aygıtının satıcısı
birlik_metadata.graphics_device_version SİCİM Grafik aygıtının sürümü
birlik_metadata.graphics_device_type SİCİM Grafik aygıtının türü
birlik_metadata.graphics_shader_level INT64 Grafiklerin shader seviyesi
birlik_metadata.grafikler_render_target_count INT64 Grafik oluşturma hedeflerinin sayısı
birlik_metadata.graphics_copy_texture_support SİCİM Unity API'sinde tanımlandığı şekilde grafik dokusunu kopyalama desteği
birlik_metadata.graphics_max_texture_size INT64 Doku işlemeye ayrılan maksimum boyut
birlik_metadata.screen_size_px SİCİM Genişlik x yükseklik olarak biçimlendirilmiş, piksel cinsinden ekranın boyutu
birlik_metadata.ekran_çözünürlük_dpi SİCİM Kayan noktalı sayı olarak ekranın DPI değeri
birlik_metadata.screen_refresh_rate_hz INT64 Ekranın Hz cinsinden yenileme hızı

Data Studio ile dışa aktarılan Crashlytics verilerini görselleştirme

Google Data Studio, BigQuery'deki Crashlytics veri kümelerinizi okunması, paylaşılması ve tamamen özelleştirilebilir raporlara dönüştürür.

Data Studio'yu kullanma hakkında daha fazla bilgi edinmek için Data Studio hızlı başlangıç ​​kılavuzunu deneyin, Data Studio'ya Hoş Geldiniz .

Bir Crashlytics rapor şablonu kullanma

Data Studio'nun Crashlytics için, dışa aktarılan Crashlytics BigQuery şemasından kapsamlı bir boyut ve metrik seti içeren örnek bir raporu vardır. Crashlytics BigQuery akış dışa aktarmayı etkinleştirdiyseniz, bu verileri Data Studio şablonunun Gerçek zamanlı trendler sayfasında görüntüleyebilirsiniz. Kendi uygulamanızın ham kilitlenme verilerine dayalı olarak hızla yeni raporlar ve görselleştirmeler oluşturmak için örneği şablon olarak kullanabilirsiniz:

  1. Crashlytics Data Studio Dashboard şablonunu açın.
  2. Sağ üst köşedeki Şablonu Kullan'ı tıklayın.
  3. Yeni Veri Kaynağı açılır menüsünde Yeni Veri Kaynağı Oluştur öğesini seçin.
  4. BigQuery kartında Seç'i tıklayın.
  5. Projelerim > [proje-adınız] > firebase_crashlytics > [masa-adınız] öğesini seçerek dışa aktarılan Crashlytics verilerini içeren bir tablo seçin. Parti tablonuz her zaman seçilebilir; Crashlytics BigQuery akış dışa aktarma etkinse bunun yerine gerçek zamanlı tablonuzu seçebilirsiniz.
  6. Yapılandırma altında, Crashlytics Şablon düzeyini Varsayılan olarak ayarlayın.
  7. Yeni veri kaynağını oluşturmak için Bağlan'a tıklayın.
  8. Crashlytics şablonuna dönmek için Rapora Ekle'yi tıklayın.
  9. Son olarak, Crashlytics Data Studio Dashboard şablonunun kendi kopyanızı oluşturmak için Rapor Oluştur'a tıklayın.