Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Firebase Crashlytics verilerini BigQuery'ye aktarın

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırı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ısına aktarmanıza ve Google Data Studio ile görselleştirme ve özel gösterge tabloları için kullanmanıza olanak tanır.

BigQuery dışa aktarımını 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şturulur. Firebase, tabloları uygulamanın paket tanımlayıcısına göre adlandırır, periyotlar alt çizgiye dönüştürülür ve sonuna bir platform adı eklenir.

Ö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ış dışa aktarımını etkinleştirirseniz, Firebase Crashlytics verileri de gerçek zamanlı olarak com_google_test_ANDROID_REALTIME .

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ştir

BigQueryStreaming ile Crashlytics verilerinizi gerçek zamanlı olarak aktarabilirsiniz. Canlı bir panoda 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ış dışa aktarma özelliği, 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 tablonuz olur. Tablolar arasında bilmeniz gereken farklar şunlardır:

Toplu Tablo Gerçek Zamanlı Tablo
  • Günde bir kez dışa aktarılan veriler
  • BigQuery'ye toplu yazmadan önce kalıcı bir şekilde depolanan etkinlikler
  • 90 gün öncesine kadar doldurulabilir
  • Gerçek zamanlı olarak dışa aktarılan veriler
  • Dolgu yok

Toplu tablo, uzun vadeli analiz 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, hemen BigQuery'ye yazarız ve bu nedenle canlı gösterge tabloları 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 Örnek 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, bkz . Bölüm sona erme tarihini güncelleme .

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 Görünüm oluşturma bölümüne bakın.

Dışa aktarılan verilerle ne yapabilirsiniz?

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

BigQuery'de Firebase Crashlytics verileriyle çalışma

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

Crashlytics sorgu örnekleri

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

Örnek 1: Güne göre kilitlenmeler

Bir 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, bug-bash'lerinin uygulamayı zaman içinde daha kararlı hale getirdiğinden emin olmak için geçen ayki 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ına uygun şekilde öncelik vermek için ürünlerindeki en yaygın 10 çökmeye 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: En çok kilitlenen 10 cihaz

Sonbahar yeni telefon sezonu! Bir geliştirici, bunun aynı zamanda cihaza özel yeni sorunlar sezonu olduğu anlamına geldiğini de 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 filtreleyin

Bir oyun geliştiricisi, oyunlarının hangi seviyesinin en çok çökme yaşadığını bilmek ister. Bu istatistiği izlemelerine yardımcı olmak için özel bir Crashlytics anahtarı current_level ayarlarlar ve kullanıcı her yeni düzeye ulaştığında bunu güncellerler.

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ı raporlamak 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 bir uygulaması vardır. Kullanıcılarının çoğu buna bayılıyor, 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 kullanıcısı için 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: Bir kilitlenme sorunundan etkilenen kullanıcı sayısı, ülkelere göre dökümü

Ş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 aktarmayı etkinleştirin. Proje verilerini BigQuery'ye aktarma konusuna bakın.

  2. Bir kullanıcı kimliğini hem Google Analytics SDK'sına hem de Crashlytics SDK'sına geçirmek 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. Crashlytics BigQuery veri kümesindeki kilitlenmelerle birlikte Google Analytics BigQuery veri kümesindeki etkinliklere katılmak 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: DATE'den bu yana, bugün de dahil olmak üzere ilk 5 sorun

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

Bu örnekte, güvenilir toplu iş verilerine gerçek zamanlı bilgiler eklemek için toplu iş ve gerçek zamanlı tabloları birleştiriyoruz. event_id bir birincil anahtar olduğundan, iki tablodan 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 ile bağladığınızda, Firebase, bağlantıdan iki gün öncesine kadar olan olaylar da dahil olmak üzere son olayları (kilitlenmeler, önemli olmayan hatalar ve ANR'ler) doksan güne kadar doldurma seçeneğiyle dışa aktarır.

Bu noktadan bağlantıyı devre dışı bırakana kadar Firebase, Crashlytics olaylarını günlük olarak dışa aktarır. Her dışa aktarma işleminden sonra verilerin BigQuery'de kullanılabilir olması birkaç dakika sürebilir.

veri kümeleri

Firebase Crashlytics, BigQuery for Crashlytics verilerinde yeni bir veri kümesi oluşturur. Veri kümesi, birden fazla uygulamaya sahip olsa bile tüm projenizi kapsar.

Tablolar

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

Ö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 özel Crashlytics anahtarları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

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

Yığın izleri olmadan

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

Alan adı Veri tipi Tanım
platform SİCİM Apple veya Android uygulamaları
paket tanımlayıcısı 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
error_type SİCİM Olayın hata türü (FATAL, NON_FATAL, ANR)
sorun_kimliği SİCİM Etkinlikle ilgili bir sorun
event_timestamp ZAMAN DAMGAMI Olay gerçekleştiğinde
cihaz KAYIT Olayın meydana geldiğ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 baytları
bellek.free INT65 Kalan bellek baytları
depolamak KAYIT Cihazın kalıcı depolama alanı
depolama.kullanılmış INT64 Kullanılan depolama baytları
depolama.ücretsiz INT64 Kalan depolama baytları
işletim sistemi KAYIT Cihazın işletim sistemi ayrıntıları
Operating_system.display_version SİCİM işletim sistemi sürümü
işletim_sistemi.adı SİCİM işletim sistemi adı
işletim_sistemi.modifikasyon_durumu SİCİM DEĞİŞTİRİLMİŞ veya DEĞİŞTİRİLMEMİŞ, yani cihazın jailbreak yapılmış/rootlanmış olup olmadığı
işletim_sistemi.türü SİCİM Cihazdaki işletim sisteminin türü. Örneğin IOS, MACOS
Operating_system.device_type SİCİM Cihazın türü. Ör. MOBİL, TABLET, TV
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şkilendirilmiş uygulamaya özel bir kimlik
özel_anahtarlar TEKRARLANAN KAYIT Geliştirici tanımlı anahtar/değer çiftleri
custom_keys.key SİCİM Geliştirici tanımlı bir anahtar
özel_anahtarlar.değer SİCİM Geliştirici tanımlı bir değer
kurulum_uuid SİCİM Benzersiz bir uygulama ve cihaz kurulumunu tanımlayan bir kimlik
crashlytics_sdk_versions SİCİM Etkinliği oluşturan Crashlytics SDK sürümü
app_orientation SİCİM PORTRE, MANZARA, FACE_UP veya FACE_DOWN
device_orientation SİCİM PORTRE, MANZARA, FACE_UP veya FACE_DOWN
süreç_durumu SİCİM ARKA PLAN veya ÖNSÖZ
kütükler TEKRARLANAN KAYIT Etkinleştirilmişse, Crashlytics günlükçü tarafından oluşturulan zaman damgalı günlük mesajları
logs.timestamp ZAMAN DAMGAMI Günlük yapıldığında
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 haritaları
ekmek kırıntıları.zaman damgası ZAMAN DAMGAMI İçerik haritasıyla ilişkili zaman damgası
ekmek kırıntıları.name SİCİM Ekmek kırıntısı ile ilişkili ad
kırıntıları.params TEKRARLANAN KAYIT İçerik haritasıyla ilişkili parametreler
kırıntıları.params.key SİCİM İçerik haritasıyla ilişkili bir parametre anahtarı
ekmek kırıntıları.params.value SİCİM İçerik haritasıyla ilişkili bir parametre değeri
suçlama_frame KAYIT Kilitlenme veya hatanın temel nedeni olarak tanımlanan çerçeve
suçlama_frame.line INT64 Çerçeve dosyasının satır numarası
suçlama_çerçevesi.dosyası SİCİM Çerçeve dosyasının adı
suçlama_frame.symbol SİCİM Sulu sembol veya susuzsa ham sembol
suçlama_frame.offset INT64 Kodu içeren ikili görüntüye bayt ofseti, Java istisnaları için ayarlanmadı
suç_çerçevesi.adresi INT64 Java çerçeveleri için ayarlanmamış, kodu içeren ikili görüntüdeki adres
suçlama_frame.library SİCİM Çerçeveyi içeren kitaplığın görünen adı
suçlama_çerçeve.sahip SİCİM GELİŞTİRİCİ, SATICI, RUNTIME, PLATFORM veya SİSTEM
suçlama_frame.suçlandı BOOLE Crashlytics'in analizinin bu çerçevenin çökmenin veya hatanın nedeni 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ırada sunulur (okuma: son kayıt, atılan ilk istisnadır)
istisnalar.tür SİCİM İstisna türü, örneğin Java.lang.IllegalStateException
istisnalar.exception_message SİCİM İstisna ile ilişkili bir mesaj
istisnalar.iç içe BOOLE Son atılan istisna (yani ilk kayıt) dışındaki herkes için doğrudur
istisnalar.başlık SİCİM Konunun başlığı
istisnalar.altyazı SİCİM Konunun alt başlığı
istisnalar.suçlandı BOOLE Crashlytics, hata veya kilitlenmeden istisnanın sorumlu olduğunu belirlerse doğrudur
istisnalar.çerçeveler TEKRARLANAN 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 Sulu sembol veya susuzsa ham sembol
istisnalar.çerçeveler.offset INT64 Kodu içeren ikili görüntüye bayt ofseti, Java istisnaları için ayarlanmadı
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.sahip SİCİM GELİŞTİRİCİ, SATICI, RUNTIME, PLATFORM veya SİSTEM
istisnalar.çerçeveler.suçlandı BOOLE Crashlytics'in analizinin bu çerçevenin çökmenin veya hatanın nedeni olduğunu belirleyip belirlemediği
hata TEKRARLANAN 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'u ile 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çlandı BOOLE Crashlytics'in analizinin hatanın nedeninin bu çerçeve olduğunu belirleyip belirlemediği
hata.çerçeveler TEKRARLANAN KAYIT Yığın izinin ç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ı
hata.çerçeveler.sembol SİCİM Sulu sembol veya susuzsa ham sembol
error.frames.offset INT64 Kodu içeren ikili görüntüye bayt ofset
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ı
hata.çerçeveler.sahip SİCİM GELİŞTİRİCİ, SATICI, RUNTIME, 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
thread.crashed BOOLE İplik çöktü mü
threads.thread_name SİCİM iş parçacığının adı
threads.queue_name SİCİM Yalnızca Apple uygulamaları: İş parçacığının ç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 iş parçacıklarında bulunur
threads.crash_address INT64 Uygulamanın çökmesine neden olan sinyalin adresi; yalnızca kilitlenen yerel iş parçacıklarında bulunur
thread.code INT64 Yalnızca Apple uygulamaları: Uygulamanın özel olarak günlüğe kaydedilen NSError'unun hata kodu
thread.title SİCİM Konunun başlığı
thread.subtitle SİCİM Konunun alt başlığı
threadler.suçlandı BOOLE Crashlytics'in analizinin bu çerçevenin çökmenin veya hatanın nedeni olduğunu belirleyip belirlemediği
thread.frames TEKRARLANAN 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 su ile beslenemiyorsa ham sembol
threads.frames.offset INT64 Kodu içeren ikili görüntüye bayt ofset
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, RUNTIME, PLATFORM veya SİSTEM
threads.frames.suçlandı BOOLE Crashlytics'in analizinin hatanın nedeninin bu çerçeve olduğunu belirleyip belirlemediği

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

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

Crashlytics rapor şablonu 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ış dışa aktarımını etkinleştirdiyseniz, bu verileri Data Studio şablonunun Gerçek Zamanlı trendler sayfasında görüntüleyebilirsiniz. Örneği, kendi uygulamanızın ham kilitlenme verilerine dayalı olarak hızla yeni raporlar ve görselleştirmeler oluşturmak için şablon olarak kullanabilirsiniz:

  1. Crashlytics Data Studio Panosu ş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 'u seçin.
  4. BigQuery kartında Seç'i tıklayın.
  5. Projelerim > [proje-adınız] > firebase_crashlytics > [tablo-adınız] öğesini seçerek, dışa aktarılan Crashlytics verilerini içeren bir tablo seçin. Toplu 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 Şablonu 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 şablonunuzun kendi kopyanızı oluşturmak için Rapor Oluştur'a tıklayın.