Firebase Crashlytics verilerini BigQuery'ye aktarın

Daha ayrıntılı 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:

  • Firebase, verilerinizin Firebase projenizden BigQuery'ye günlük senkronizasyonunu 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. Hangi uygulamaların veri göndereceğini yönetebilirsiniz .
  • Firebase, mevcut verilerinizin bir kopyasını BigQuery'ye aktarır . Bağlantılı her uygulama için bu, günlük senkronizasyondan elde edilen verileri içeren bir toplu tablo içerir.
  • Crashlytics BigQuery akış dışa aktarımını etkinleştirirseniz bağlantılı tüm uygulamalarda ayrıca sürekli güncellenen verileri içeren bir gerçek zamanlı tablo bulunur.

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 çizgilere dönüştürülmüş noktalar ve sonuna bir platform adı eklenerek 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 toplu tablo 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 adresine aktarılacaktır.

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

Crashlytics BigQuery akışını dışa aktarmayı etkinleştir

BigQueryStreaming ile Crashlytics verilerinizi gerçek zamanlı olarak yayınlayabilirsiniz. Canlı bir kontrol panelinde bilgi 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ışını dışa aktarma, BigQuery korumalı alanı için kullanılamaz.

Crashlytics BigQuery akış dışa aktarımını etkinleştirdiğinizde toplu tabloya ek olarak gerçek zamanlı bir tabloya sahip olursunuz. Tablolar arasında bilmeniz gereken farklar şunlardır:

Toplu Tablo Gerçek Zamanlı Tablo
  • Veriler günde bir kez dışa aktarıldı
  • BigQuery'ye toplu yazmadan önce etkinlikler 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 tablo, uzun vadeli analiz ve zaman içindeki eğilimleri belirlemek için idealdir çünkü olayları yazmadan önce kalıcı olarak saklıyoruz ve bunlar 90 güne kadar tabloya doldurulabiliyor. Gerçek zamanlı tablonuza veri yazdığımızda bunu hemen BigQuery'ye yazarız ve bu nedenle canlı kontrol panelleri ve özel uyarılar için idealdir. Bu iki tablo, her ikisinin de avantajlarından yararlanmak için bir birleştirme sorgusuyla birleştirilebilir. Aşağıdaki Sorgu Örneği 9'a bakın.

Varsayılan olarak, gerçek zamanlı tablonun bölümün sona erme süresi 30 gündür. Bunu nasıl değiştireceğinizi öğrenmek için bkz. Bölümün geçerlilik süresinin güncellenmesi .

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.

Data Studio Ş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ı, cihaz türü, işletim sistemi, istisnalar (Android uygulamaları) veya hatalar (Apple uygulamaları) ve Crashlytics günlüklerinin yanı sıra diğer verileri içeren ham kilitlenme verilerini içerir.

BigQuery'de Firebase Crashlytics verileriyle çalışma

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

Crashlytics sorgu örnekleri

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ünlere göre kilitlenmeler

Lider 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, yaptıkları hata giderme işleminin zamanla uygulamayı daha kararlı hale getirdiğinden emin olmak için geçen aydaki 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 çökmeleri bulun

Bir proje yöneticisi, üretim planlarını doğru şekilde önceliklendirebilmek için, ürünündeki en yaygın 10 çökmeyi nasıl belirteceğ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: En çok kilitlenen 10 cihaz

Sonbahar yeni telefon sezonu! Bir geliştirici bunun aynı zamanda cihaza özgü yeni sorunlar sezonu anlamına da geldiğini biliyor. Yaklaşan uyumluluk endişelerinin önüne geçmek için geçen hafta en çok kilitlenme yaşayan 10 cihazı tanımlayan bir sorgu hazırladılar:

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 fazla çökme yaşandığını bilmek istiyor. Bu istatistiği takip etmelerine yardımcı olmak için özel bir Crashlytics anahtarı current_level ayarlıyorlar ve kullanıcı her yeni seviyeye ulaştığında bunu güncelliyorlar.

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ındaki 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ğini çıkarma

Bir geliştiricinin erken erişimdeki bir uygulaması var. Kullanıcılarının çoğu bunu seviyor ancak üçü alışılmadık sayıda çökme 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 çökmeden 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ış

Artık 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 kazanın dünya çapında farklı ülkelerdeki 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 aktarmaları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 iletecek şekilde 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ün şu ana kadarki en önemli 5 konu

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 de dahil olmak üzere DATE tarihinden bu yana en sık karşılaşılan 5 sayı

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

Bu örnekte, güvenilir toplu verilere gerçek zamanlı bilgi eklemek için toplu ve gerçek zamanlı tabloları birleştiriyoruz. event_id birincil anahtar olduğundan, iki tablodaki ortak olayları 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 birlikte, bağlantıdan iki gün öncesine kadar olan olaylar da dahil olmak üzere son etkinlikleri (kilitlenmeler, ö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. Her dışa aktarmanın ardından verilerin BigQuery'de kullanılabilir hale gelmesi birkaç dakika sürebilir.

Veri kümeleri

Firebase Crashlytics, BigQuery'de Crashlytics verileri için yeni bir veri kümesi oluşturur. Veri kümesi, birden fazla uygulamaya sahip olsa bile projenizin tamamını kapsar.

Tablolar

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

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

Tablolar, geliştiriciler tarafından tanımlanan özel Crashlytics anahtarlarına ek olarak standart bir Crashlytics verileri kümesi 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ışını dışa aktarma etkinleştirilirse gerçek zamanlı tablo, toplu tabloyla aynı sütunlara sahip olacaktır. Dışa aktarmadaki sütunlar aşağıda listelenmiştir.

Yığın izleri olmadan

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

Alan adı Veri tipi Tanım
platformu SİCİM Apple veya Android uygulamaları
bundle_identifier SİCİM Paket kimliği, örneğin com.google.gmail
event_id SİCİM Etkinlik için benzersiz bir kimlik
is_fatal BOOLE Uygulamanın çöküp çökmediği
hata_tipi SİCİM Olayın hata türü (FATAL, NON_FATAL, ANR)
sayı_id SİCİM Etkinlikle ilgili sorun
varyant_id SİCİM Bu etkinlikle ilişkili sorun çeşidi
Tüm olayların ilişkili bir sorun değişkenine sahip olmadığını unutmayın.
event_timestamp ZAMAN DAMGASI Olayın meydana geldiği zaman
cihaz KAYIT Olayın gerçekleştiği cihaz
cihaz üreticisi SİCİM Cihaz üreticisi
cihaz modeli SİCİM Cihaz modeli
cihaz mimarisi SİCİM X86_32, X86_64, ARMV7, ARM64, ARMV7S veya ARMV7K
hafıza KAYIT Cihazın hafıza durumu
kullanılan bellek INT64 Kullanılan bellek baytı
hafıza.ücretsiz INT64 Kalan bellek baytı
depolamak KAYIT Cihazın kalıcı depolaması
depolama.kullanılmış INT64 Kullanılan depolama baytı
depolama.ücretsiz INT64 Bayt depolama alanı kaldı
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.modification_state SİCİM Cihazın değiştirilip değiştirilmediği, örneğin jailbreakli/root edilmiş (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 platformu 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
application.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 TEKRARLANAN KAYIT Geliştirici tarafından tanımlanan anahtar/değer çiftleri
özel_anahtarlar.anahtar SİCİM Geliştirici tanımlı bir anahtar
özel_anahtarlar.değer SİCİM Geliştirici tarafından tanımlanan bir değer
kurulum_uuid SİCİM Benzersiz bir uygulama ve cihaz kurulumunu tanımlayan kimlik
Crashlytics_sdk_versions SİCİM Etkinliği oluşturan Crashlytics SDK sürümü
uygulama_oryantasyonu SİCİM PORTRE, MANZARA, YÜZ YUKARI veya YÜZ AŞAĞI
cihaz_oryantasyonu SİCİM PORTRE, MANZARA, YÜZ YUKARI veya YÜZ AŞAĞI
süreç_durumu SİCİM ARKA PLAN veya ÖN PLAN
kütükler TEKRARLANAN KAYIT Etkinleştirilmişse, Crashlytics günlükçü tarafından oluşturulan zaman damgalı günlük mesajları
günlükler.zaman damgası ZAMAN DAMGASI Günlük oluşturulduğunda
günlükler.mesaj SİCİM Günlüğe kaydedilen mesaj
galeta unu TEKRARLANAN KAYIT Etkinleştirilmişse, zaman damgalı Google Analytics içerik kırıntıları
kırıntılar.timestamp ZAMAN DAMGASI İçerik haritasıyla ilişkili zaman damgası
ekmek kırıntıları.name SİCİM Ekmek kırıntısıyla ilişkilendirilen ad
kırıntıları.params TEKRARLANAN KAYIT İçerik haritasıyla ilişkili parametreler
breadcrumbs.params.key SİCİM İçerik haritasıyla ilişkili bir parametre anahtarı
Breadcrumbs.params.value SİCİM İçerik haritasıyla ilişkili bir parametre değeri
suçlama_frame KAYIT Kilitlenmenin veya hatanın temel nedeni olarak tanımlanan çerçeve
suçlama_frame.line INT64 Çerçeve dosyasının satır numarası
suç_çerçeve.dosyası SİCİM Çerçeve dosyasının adı
suçlama_frame.symbol SİCİM Hidratlanmış sembol veya hidratlanamıyorsa ham sembol
suçlama_frame.offset INT64 Kodu içeren ikili görüntünün bayt dengesi, Java istisnaları için ayarlanmadı
suç_çerçeve.adresi INT64 Kodu içeren ikili görüntüdeki adres, Java çerçeveleri için ayarlanmamış
suçlama_frame.library SİCİM Çerçeveyi içeren kitaplığın görünen adı
suç_çerçeve.sahip SİCİM GELİŞTİRİCİ, SATICI, ÇALIŞMA ZAMANI, PLATFORM veya SİSTEM
suç_çerçeve.suçlandı BOOLE Crashlytics'in analizinin, kilitlenme veya hatanın nedeninin bu çerçeve olduğunu belirleyip belirlemediği
istisnalar TEKRARLANAN KAYIT Yalnızca Android: Bu etkinlik sırasında meydana gelen istisnalar. İç içe istisnalar ters kronolojik sırayla sunulur (okuyun: son kayıt, atılan ilk istisnadır)
istisnalar.tip SİCİM İstisna türü, örneğin Java.lang.IllegalStateException
istisnalar.istisna_message SİCİM İstisnayla ilişkili bir mesaj
istisnalar.iç içe BOOLE Son atılan istisna (yani ilk kayıt) dışındaki herkes için geçerlidir
istisnalar.title SİCİM Konunun başlığı
istisnalar.altyazı SİCİM Konunun alt başlığı
istisnalar.suçlanan BOOLE Crashlytics hatanın veya kilitlenmenin istisnadan kaynaklandığını belirlerse doğrudur
istisnalar.çerçeveler TEKRARLANAN KAYIT İstisnayla ilişkili çerçeveler
istisnalar.frames.line 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 Hidratlanmış sembol veya hidratlanamıyorsa ham sembol
istisnalar.kareler.offset INT64 Kodu içeren ikili görüntünün bayt dengesi, Java istisnaları için ayarlanmadı
istisnalar.çerçeveler.adres INT64 Kodu içeren ikili görüntüdeki adres, Java çerçeveleri için ayarlanmamış
istisnalar.frames.library 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ŞMA ZAMANI, PLATFORM veya SİSTEM
istisnalar.çerçeveler.suçlanan BOOLE Crashlytics'in analizinin, kilitlenme veya hatanın nedeninin bu çerçeve olduğunu belirleyip belirlemediği
hata TEKRARLANAN KAYIT Yalnızca Apple uygulamaları: önemli olmayan hatalar
error.queue_name SİCİM İş parçacığının çalıştığı kuyruk
hata kodu INT64 Uygulamanın özel olarak günlüğe kaydedilen NSError'ıyla ilişkili hata kodu
hata.başlık SİCİM Konunun başlığı
hata.altyazı SİCİM Konunun alt başlığı
hata.suçlanan BOOLE Crashlytics'in analizinin hatanın nedeninin bu çerçeve olduğunu belirleyip belirlemediği
hata.çerçeveler TEKRARLANAN KAYIT Stacktrace'in çerçeveleri
error.frames.line INT64 Çerçeve dosyasının satır numarası
error.frames.file SİCİM Çerçeve dosyasının adı
error.frames.sembol SİCİM Hidratlanmış sembol veya hidratlanamıyorsa ham sembol
error.frames.offset INT64 Kodu içeren ikili görüntünün bayt uzaklığı
error.frames.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ı
error.frames.owner SİCİM GELİŞTİRİCİ, SATICI, ÇALIŞMA ZAMANI, PLATFORM veya SİSTEM
error.frames.suçlandı BOOLE Crashlytics'in analizinin hatanın nedeninin bu çerçeve olduğunu belirleyip belirlemediği
İş Parçacığı TEKRARLANAN KAYIT Etkinlik sırasında mevcut olan konular
Konular.çöktü BOOLE İpliğin çöküp çökmediği
threads.thread_name SİCİM Konunun adı
threads.queue_name SİCİM Yalnızca Apple uygulamaları: İş parçacığının çalıştığı kuyruk
threads.signal_name SİCİM Uygulamanın çökmesine neden olan sinyalin adı, yalnızca çöken yerel iş parçacıklarında mevcut
threads.signal_code SİCİM Uygulamanın çökmesine neden olan sinyalin kodu; yalnızca çökmüş yerel ileti dizilerinde mevcut
threads.crash_address INT64 Uygulamanın çökmesine neden olan sinyalin adresi; yalnızca çökmüş yerel ileti dizilerinde mevcut
thread.code INT64 Yalnızca Apple uygulamaları: Uygulamanın özel olarak günlüğe kaydedilen NSError hata kodu
thread.title SİCİM Konunun başlığı
konular.altyazı SİCİM Konunun alt başlığı
Konular.suçlanan BOOLE Crashlytics'in analizinin, kilitlenme veya hatanın nedeninin bu çerçeve olduğunu belirleyip belirlemediği
Konular.çerçeveler TEKRARLANAN KAYIT İpliğin ç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.sembol SİCİM Hidratlanmış sembol veya hidratlanamıyorsa ham sembol
threads.frames.offset INT64 Kodu içeren ikili görüntünün bayt uzaklığı
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.sahip SİCİM GELİŞTİRİCİ, SATICI, ÇALIŞMA ZAMANI, PLATFORM veya SİSTEM
threads.frames.suçlandı 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_tipi SİCİM İşlemci türü
birlik_metadata.processor_count INT64 İşlemci sayısı (çekirdek)
birlik_metadata.processor_frequency_mhz INT64 İşlemcinin/işlemcilerin 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 cihazının tanımlayıcısı
birlik_metadata.graphics_device_vendor_id INT64 Grafik işlemci satıcısının tanımlayıcısı
birlik_metadata.graphics_device_name SİCİM Grafik cihazının adı
birlik_metadata.graphics_device_vendor SİCİM Grafik cihazının satıcısı
birlik_metadata.graphics_device_version SİCİM Grafik cihazı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 gölgelendirici düzeyi
birlik_metadata.graphics_render_target_count INT64 Grafiksel oluşturma hedeflerinin sayısı
birlik_metadata.graphics_copy_texture_support SİCİM Unity API'sinde tanımlandığı şekilde grafik dokusunun kopyalanması desteği
birlik_metadata.graphics_max_texture_size INT64 Doku oluşturmaya ayrılmış maksimum boyut
birlik_metadata.screen_size_px SİCİM Genişlik x yükseklik olarak biçimlendirilmiş ekranın piksel cinsinden boyutu
birlik_metadata.screen_çözünürlük_dpi SİCİM Kayan nokta sayısı olarak ekranın DPI değeri
birlik_metadata.screen_refresh_rate_hz INT64 Hz cinsinden ekranın yenileme hızı

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

Google Data Studio, BigQuery'deki Crashlytics veri kümelerinizi okunması kolay, paylaşılması kolay 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ılavuzu olan Data Studio'ya Hoş Geldiniz'i deneyin.

Crashlytics rapor şablonunu kullanma

Data Studio, dışa aktarılan Crashlytics BigQuery şemasından kapsamlı bir boyut ve metrik kümesi içeren Crashlytics için örnek bir rapora sahiptir. Crashlytics BigQuery akışını 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ızlı bir şekilde yeni raporlar ve görselleştirmeler oluşturmak için örneği şablon olarak kullanabilirsiniz:

  1. Crashlytics Data Studio Kontrol Paneli şablonunu açın.
  2. Sağ üst köşedeki Şablonu Kullan'a tıklayın.
  3. Yeni Veri Kaynağı açılır menüsünde Yeni Veri Kaynağı Oluştur'u seçin.
  4. BigQuery kartında Seç'e tıklayın.
  5. Projelerim > [projenizin-adı] > firebase_crashlytics > [tablonuzun-adı] seçeneğini belirleyerek dışa aktarılan Crashlytics verilerini içeren bir tablo seçin. Toplu tablonuz her zaman seçilebilir; Crashlytics BigQuery akış dışa aktarımı 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 Kontrol Paneli şablonunun kopyasını oluşturmak için Rapor Oluştur'a tıklayın.