Firebase Crashlytics verilerini BigQuery'ye aktarma

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

BigQuery dışa aktarmayı etkinleştir

  1. Şuraya gidin: Entegrasyonlar Firebase konsolunda Google Etiket Yöneticisi'ni kullanarak.
  2. BigQuery kartında Bağla'yı tıklayın.
  3. BigQuery'yi etkinleştirmek için ekrandaki talimatları uygulayın.

Projenizi BigQuery'ye bağladığınızda:

BigQuery dışa aktarmayı devre dışı bırakmak için: projenizin bağlantısını kaldırın Firebase konsolunda yer alır.

BigQuery'ye hangi veriler aktarılır?

Firebase Crashlytics verileri, firebase_crashlytics Varsayılan olarak, bağımsız tablolar her uygulama için Crashlytics veri kümesi içerir. Firebase, Google Etiket Yöneticisi'nde uygulamanın paket tanımlayıcısına dayalı tablolar, dönemler alt çizgi ve platform adı ekleyin.

Örneğin, com.google.test kimliğine sahip bir uygulamanın verileri bir tabloda yer alır com_google_test_ANDROID adlı. Bu toplu tablo günde bir kez güncellenir. Eğer Crashlytics BigQuery akışı dışa aktarmayı, Firebase Crashlytics'i veriler de gerçek zamanlı olarak com_google_test_ANDROID_REALTIME hesabına aktarılır.

Bir tablodaki her satır, uygulamada gerçekleşen bir etkinliği temsil eder. Aşağıdakiler dahil olmak üzere: kilitlenmeler, önemli olmayan hatalar ve ANR'ler.

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

Crashlytics verilerinizi gerçek zamanlı olarak yayınlamak için: BigQueryStreaming'dir. Kullanabilirsiniz bir yerde bilgi sunmak gibi, canlı veri gerektiren herhangi bir amaç için bir sunumu canlı olarak izlemek veya uygulamadaki sorunları izleme gibi uyarıları ve özel iş akışlarını tetikleyin.

Crashlytics BigQuery akışını dışa aktarma özelliği, BigQuery korumalı alanında kullanılamaz.

Crashlytics BigQuery akış dışa aktarma özelliğini etkinleştirdiğinizde, bir gerçek zamanlı tablonuz olur. İşte yapmanız gereken farklılıklar dikkat edin:

Toplu Tablo Gerçek Zamanlı Tablo
  • Veriler günde bir kez dışa aktarılır
  • BigQuery'ye toplu yazmadan önce dayanıklı şekilde depolanan etkinlikler
  • Geri doldurulabilir en fazla 30 gün önce
  • Veriler gerçek zamanlı olarak dışa aktarılır
  • Dolgu yok

Toplu tablo, uzun vadeli analiz ve zaman içindeki eğilimleri tanımlamak için idealdir çünkü etkinlikleri yazmadan önce kalıcı olarak saklarız ve bunlar tekrar doldurulabilir 30 güne kadar masaya yatırılır. Gerçek zamanlı tablonuza veri yazdığımızda, BigQuery'ye anında yazmanızı sağlar. Bu nedenle, canlı gösterge tabloları ve Özel uyarılar. Bu iki tablo, bir birleştirme sorgusu ile birleştirilerek elde edilen faydaları var. Aşağıda 9. Örnek sorguya bakın.

Varsayılan olarak, gerçek zamanlı tablolarda bölüm geçerlilik süresi 30 gündür. Alıcı: nasıl değiştireceğinizi öğrenmek için bkz. Bölüm geçerlilik süresini güncelleme.

Crashlytics BigQuery akışını etkinleştir

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

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 başlıklı makaledeki talimatları uygulayın.

Görüntüleme sayısı

BigQuery kullanıcı arayüzünü kullanarak aşağıdaki örnek sorguları görünümlere dönüştürebilirsiniz. Görüntüleyin Görünüm oluşturma başlıklı bölüme 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 kullanır.

BigQuery'de Firebase Crashlytics verileriyle çalışma

Aşağıdaki örneklerde Crashlytics verileriniz üzerinde çalıştırabileceğiniz sorgular gösterilmektedir. Bu sorgular, Crashlytics'te bulunmayan raporlar oluşturur kontrol paneli

Crashlytics sorgusu örnekleri

Aşağıdaki örnekler, kilitlenmeyi toplayan raporların nasıl oluşturulacağını gösterir ve etkinlik verilerini daha kolay anlaşılan özetlere dönüştürmenizi sağlar.

1. Örnek: Günlük kilitlenme sayısı

Mümkün olduğunca çok sayıda hatayı düzeltmeye çalışan lider geliştirici, ekibinin yeni fotoğraf paylaşımı uygulamasını kullanıma sunmaya hazır. Bunu yapmadan önce önceki aydaki günlük kilitlenme sayısını kontrol etmek istediğinizi hata-bash, uygulamayı zamanla daha kararlı hale getirdi:

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;

2. Örnek: En yaygın kilitlenmeleri bulma

Proje yöneticisi üretim planlarını doğru şekilde önceliklendirmek için kilitlenmelerini ele aldık. Bir sorgu oluştururlar. alakalı veri noktaları sağlayan bir belgeye ekleyebilirsiniz.

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;

3. Örnek: Kilitlenen ilk 10 cihaz

Sonbahar yeni telefon sezonudur! Geliştirici bunun aynı zamanda yeni bir cihaz olduğunu bilir. belirli sorunlar sezonu. Karşılaşılan uyumluluk sorunlarının önüne geçmek için en fazla trafik alan 10 cihazı tanımlayan bir sorgu geçen haftaki kilitlenmeler:

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;

4. Örnek: Özel anahtara göre filtreleme

Bir oyun geliştirici, oyun deneyiminin en çok hangi seviyesinde olduğunu öğrenmek istiyor kilitlenmelerine neden olabilir. Bu istatistiği takip edebilmeleri için özel bir Crashlytics anahtarı ayarladı current_level ve kullanıcı yeni bir seviyeye her ulaştığında güncelleyin.

Objective-C

CrashlyticsKit setIntValue:3 forKey:@"current_level";

Swift

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

Java

Crashlytics.setInt("current_level", 3);

Bu anahtarı BigQuery Export'ta kullanarak her kilitlenme etkinliğiyle ilişkili current_level değerlerinin dağılımı:

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
.

5. Örnek: User-ID ayıklama

Bir geliştiricinin uygulaması erken erişim sürümündedir. Kullanıcılarının çoğu buna bayılıyor ancak olağan dışı sayıda kilitlenmeyle karşılaştı. Analiz bölümünün altına inmek için o kullanıcılarla ilgili tüm kilitlenme etkinliklerini toplayan bir sorgu yazar ve kullanmaya başladı:

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

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

Bir geliştirici, beta test kullanıcıları grubuna kritik bir hata yayınladı. Ekip , özel kilitlenmeyi tanımlamak için yukarıdaki 2. Örnekteki sorguyu kullanabilmiştir. sorun kimliği. Şimdi ise uygulama kullanıcılarının listesini çıkarmak için bir sorgu çalıştırmak istiyor. etkilenen kişiler:

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;

7. Örnek: Ülkeye göre ayrılmış şekilde, kilitlenme sorunundan etkilenen kullanıcı sayısı

Ekip şimdi yeni bir sürümün kullanıma sunulması sırasında kritik bir hata tespit etti. Ekip, belirli bir anahtar kelimeyi tespit etmek için yukarıdaki 2. Örnekteki sorguyu kilitlenme sorununun kimliği. Ekip artık bu kilitlenmenin 2024'te kullanıcılara ulaşabiliyoruz.

Ekibin bu sorguyu yazabilmesi için şunları yapması gerekir:

  1. Google Analytics için BigQuery dışa aktarma işlemlerini etkinleştirin. Proje verilerini BigQuery'ye aktarma başlıklı makaleyi inceleyin.

  2. Uygulamalarını hem Google Analytics SDK'sına hem de kullanıcı kimliği iletecek şekilde güncellemelidir. ve Crashlytics SDK'sı.

    Objective-C
    CrashlyticsKit setUserIdentifier:@"123456789";
    FIRAnalytics setUserID:@"12345678 9";
    
    Swift
    Crashlytics.sharedInstance().setUserIdentifier("123456789");
    Analytics.setUserID("123456789");
    
    Java
    Crashlytics.setUserIdentifier("123456789");
    mFirebaseAnalytics.setUserId("123456789");
    
  3. Crashlytics'te kilitlenmeler içeren Google Analytics BigQuery veri kümesi BigQuery veri kümesi:

    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
    

8. Örnek: Bugün şimdiye kadarki en önemli 5 sorun

Crashlytics BigQuery akış dışa aktarma özelliğinin 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;

9. Örnek: Bugün de dahil olmak üzere DATE tarihinden beri en sık karşılaşılan 5 sorun

Crashlytics BigQuery akış dışa aktarma özelliğinin etkinleştirilmesini gerektirir.

Bu örnekte, gerçek zamanlı analizleri eklemek için toplu ve gerçek zamanlı tabloları birleştiriyoruz. verileri güvenilir toplu veri olarak işler. event_id birincil anahtar olduğundan ortak etkinlikleri iki tablodan tekilleştirmek için DISTINCT event_id kullanabilir.

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'deki Firebase Crashlytics şemasını anlama

Crashlytics'i BigQuery'ye bağladığınızda Firebase son etkinlikleri dışa aktarır (kilitlenmeler, önemli olmayan hatalar ve ANR'ler), iki güne kadar olan etkinlikler dahil bağlantıdan önce, dolgu 30 güne kadar.

Bu noktadan itibaren siz bağlantıyı devre dışı bırakana kadar Firebase, Crashlytics'i dışa aktarır ürün hedeflerine odaklanmasına yardımcı olur. Verilerin kullanılabilir hale gelmesi birkaç dakika sürebilir BigQuery'ye gönderir.

Veri kümeleri

Firebase Crashlytics, Crashlytics için BigQuery'de yeni bir veri kümesi oluşturur dışı verilerdir. Bu veri kümesi, birden fazla uygulaması olsa bile projenizin tamamını kapsar.

Tablolar

Firebase Crashlytics, projenin verilerini dışa aktarmayı devre dışı bırakmadıysanız söz konusu uygulama için de geçerlidir. Firebase adları uygulamanın paket tanımlayıcısına göre tablolar, dönemler alt çizgi ve platform adı ekleyin.

Örneğin, com.google.test kimliğine sahip bir Android uygulamasının verileri com_google_test_ANDROID adlı tablo; gerçek zamanlı veriler (etkinse) com_google_test_ANDROID_REALTIME adlı tabloda

Tablolar, standart bir Crashlytics veri kümesi ve özel Geliştiriciler tarafından tanımlanan Crashlytics anahtarları.

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. Eğer Crashlytics BigQuery akışı dışa aktarma etkinleştirildikten sonra gerçek zamanlı tablo toplu tablo ile aynı sütunlara sahip olur. Dışa aktarma işleminin içindeki sütunlar aşağıda listelenmiştir.

Yığın izlemeler olmadan

Yığın izleme içermeyen etkinlikleri temsil eden satırlarda bulunan sütunlar.

Alan adı Veri Türü Açıklama
platform DİZE Apple veya Android uygulamaları
paket_tanımlayıcı DİZE Paket kimliği, ör. com.google.gmail
event_id [etkinlik_kimliği] DİZE Etkinlik için benzersiz bir kimlik
önemli BOOLE Uygulamanın kilitlenip kilitlenmediği
error_type [hata_türü] DİZE Etkinliğin hata türü (FATAL, NON_FATAL, ANR)
sorun_kimliği DİZE Etkinlikle ilişkili sorun
varyant_kimliği DİZE Bu etkinlikle ilişkili sorun varyantı
Tüm etkinliklerin ilişkili bir sorun varyantına sahip olmadığını unutmayın.
event_timestamp ZAMAN DAMGASI Etkinliğin ne zaman gerçekleştiği
device KAYIT Etkinliğin gerçekleştiği cihaz
cihaz.üretici DİZE Cihaz üreticisi
cihaz.modeli DİZE Cihaz modeli
cihaz.mimari DİZE X86_32, X86_64, ARMV7, ARM64, ARMV7S veya ARMV7K
bellek KAYIT Cihazın bellek durumu
kullanılan bellek İT64 Kullanılan bellek baytı
belleksiz İT64 Kalan bellek baytı
depolama KAYIT Cihazın kalıcı depolama alanı
depolama alanı.kullanılan İT64 Kullanılan depolama alanı baytı
depolama.ücretsiz İT64 Kalan depolama alanı (bayt)
işletim_sistemi KAYIT Cihazdaki işletim sistemiyle ilgili ayrıntılar
işletim_sistemi.display_sürümü DİZE Cihazdaki işletim sistemi sürümü
operating_system.name DİZE Cihazdaki işletim sisteminin adı
işletim_sistemi.modification_state DİZE Cihazın değiştirilip değiştirilmediği (ör. jailbreak'li/root erişimli) (DEĞİŞTİRİLMEDİ veya DEĞİŞTİRİLMEDİ)
işletim_sistemi.type DİZE Cihazda çalıştırılan işletim sistemi türü (ör. iOS, MACOS); yalnızca Apple platform uygulamaları için kullanılabilir
işletim_sistemi.cihaz_türü DİZE Cihazın türü (örneğin, MOBİL, TABLET, TV vb.); olarak da bilinir "cihaz kategorisi"
uygulama KAYIT Etkinliği oluşturan uygulama
uygulama.derleme_sürümü DİZE Uygulamanın derleme sürümü
uygulama.görünen_sürümü DİZE
kullanıcı KAYIT İsteğe bağlı: Uygulamanın kullanıcısından toplanan bilgiler
user.name DİZE İsteğe bağlı: Kullanıcının adı
kullanici.eposta DİZE İsteğe bağlı: Kullanıcının e-posta adresi
user.id DİZE İsteğe bağlı: Kullanıcıyla ilişkilendirilen uygulamaya özel kimlik
özel_anahtarlar TEKRARLANAN KAYIT Geliştirici tarafından tanımlanmış anahtar/değer çiftleri
özel_anahtarlar.anahtar DİZE Geliştirici tarafından tanımlanmış anahtar
özel_anahtarlar.değer DİZE Geliştirici tarafından tanımlanan değer
kurulum_uuid DİZE Benzersiz bir uygulamayı tanımlayan ve cihaz kurulumu
Crashlytics_sdk_sürümleri DİZE Etkinliği oluşturan Crashlytics SDK sürümü
uygulama_yönü DİZE PORTRAIT, LANDSCAPE, FACE_UP veya FACE_DOWN
cihaz_yönü DİZE PORTRAIT, LANDSCAPE, FACE_UP veya FACE_DOWN
işlem_durumu DİZE ARKA PLAN veya ÖNCEKİ
logs TEKRARLANAN KAYIT Etkinleştirilmişse Crashlytics günlük kaydedici tarafından oluşturulan zaman damgalı günlük iletileri
günlükler.zaman_damgası ZAMAN DAMGASI Günlüğün oluşturulduğu tarih
günlükler.mesaj DİZE Günlüğe kaydedilen mesaj
içerik haritaları TEKRARLANAN KAYIT Etkinleştirilmişse zaman damgası bulunan Google Analytics içerik haritaları
içerik haritaları.timestamp ZAMAN DAMGASI İçerik haritasıyla ilişkili zaman damgası
breadcrumbs.name DİZE İçerik haritasıyla ilişkilendirilen ad
içerik haritaları.params TEKRARLANAN KAYIT İçerik haritasıyla ilişkili parametreler
içerik haritası.params.anahtar DİZE İçerik haritasıyla ilişkili parametre anahtarı
içerik haritası.params.değer DİZE İçerik haritasıyla ilişkili parametre değeri
suç_çerçevesi KAYIT Kilitlenmenin veya hatanın temel nedeni olarak belirlenen çerçeve
suç_çerçevesi.line İT64 Çerçevedeki dosyanın satır numarası
suç_çerçevesi.dosya DİZE Çerçeve dosyasının adı
suç_çerçevesi.simge DİZE Hidratlı sembol veya hidrat içmeyi mümkün değilse ham simgesi
suç_çerçevesi.uzaklaşma İT64 Kodu içeren ikili resimdeki bayt farkı; Java istisnaları
suç_çerçevesi.adres İT64 Java için ayarlanmamış, ikili resimdeki kodu içeren adres çerçeveler
suç_çerçevesi.kitaplık DİZE Çerçeveyi içeren kitaplığın görünen adı
suç_çerçevesi.sahip DİZE GELİŞTİRİCİ, TEDARİKÇİ, ÇALIŞMA ZAMANI, PLATFORM veya SİSTEM
suç_çerçevesi.suçlanan BOOLE Crashlytics'in analizinin, sorunun neden bu kare olduğunu belirleyip belirlemediği kilitlenme veya hatanın
istisnalar TEKRARLANAN KAYIT Yalnızca Android: Bu etkinlik sırasında oluşan istisnalar. İç içe yerleştirilmiş istisnalar ters kronolojik sırada sunulur (okuma: son kayıt ilk kayıttır istisna atıldı)
istisnaları.tür DİZE İstisna türü, ör. java.lang.InvalidStateException
İstisnalar.istisna_mesajı DİZE İstisnayla ilişkili bir mesaj
İstisnalar.iç içe yerleştirilmiş BOOLE Son atılan istisna (yani ilk kayıt) hariç tümü için doğru
istisnaları.başlık DİZE İleti dizisinin başlığı
özel_altyazılar DİZE İleti dizisinin alt başlığı
istisnaları.suç BOOLE Crashlytics, istisnanın hata veya çökme
istisnalar.çerçeveler TEKRARLANAN KAYIT Özel durumla ilişkilendirilen çerçeveler
istisnaları.frames.line İT64 Çerçevedeki dosyanın satır numarası
istisnaları.çerçeveler.dosyası DİZE Çerçeve dosyasının adı
istisnalar.çerçeveler.simgesi DİZE Hidratlı sembol veya hidrat içmeyi mümkün değilse ham simgesi
istisnalar.çerçeveler.offset İT64 Kodu içeren ikili resimdeki bayt farkı; Java istisnaları
istisnalar.çerçeveler.adresi İT64 Java için ayarlanmamış, ikili resimdeki kodu içeren adres çerçeveler
istisnalar.çerçeveler.library DİZE Çerçeveyi içeren kitaplığın görünen adı
istisnaları.frames.sahip DİZE GELİŞTİRİCİ, TEDARİKÇİ, ÇALIŞMA ZAMANI, PLATFORM veya SİSTEM
istisnalar.çerçeveler.blamed BOOLE Crashlytics'in analizinin, sorunun neden bu kare olduğunu belirleyip belirlemediği kilitlenme veya hatanın
hata TEKRARLANAN KAYIT Yalnızca Apple uygulamaları: önemli olmayan hatalar
error.kuyruk_adı DİZE İş parçacığının çalıştırıldığı sıra
hata.kod İT64 Uygulamanın günlüğe kaydedilen NSError ile ilişkili hata kodu
hata.başlık DİZE İleti dizisinin başlığı
error.altyazı DİZE İleti dizisinin alt başlığı
hatası.suçu BOOLE Crashlytics'in analizinin, sorunun neden bu kare olduğunu belirleyip belirlemediği hata
hatası.çerçeveler TEKRARLANAN KAYIT Yığın izlemenin çerçeveleri
error.frames.line İT64 Çerçevedeki dosyanın satır numarası
error.frames.file DİZE Çerçeve dosyasının adı
hata.çerçeveler.simgesi DİZE Hidratlı sembol veya hidrat içmeyi mümkün değilse ham simgesi
error.frames.offset İT64 Kodu içeren ikili resme giden bayt farkı
error.frames.address İT64 İkili resimdeki kodu içeren adres
error.frames.library DİZE Çerçeveyi içeren kitaplığın görünen adı
error.frames.owner DİZE GELİŞTİRİCİ, TEDARİKÇİ, ÇALIŞMA ZAMANI, PLATFORM veya SİSTEM
error.frames.blamed BOOLE Crashlytics'in analizinin, sorunun neden bu kare olduğunu belirleyip belirlemediği hata
ileti dizileri TEKRARLANAN KAYIT Etkinlik sırasında mevcut olan ileti dizileri
ileti dizileri.çöktü BOOLE İş parçacığının çöküp çökmediği
messages.thread_name DİZE İleti dizisinin adı
messages.kuyruk_adı DİZE Yalnızca Apple uygulamaları: İş parçacığının çalıştırıldığı sıra
messages.signal_name DİZE Uygulamanın kilitlenmesine neden olan sinyalin adı (yalnızca kilitlenen cihazlarda bulunur) yerel ileti dizileri
messages.sinyal_code DİZE Uygulamanın kilitlenmesine neden olan sinyalin kodu. yalnızca kilitlenen cihazlarda mevcut yerel ileti dizileri
ileti dizileri.crash_address İT64 Uygulamanın kilitlenmesine neden olan sinyalin adresi; yalnızca mevcut kilitlenen yerel iş parçacıklarında
messages.code İT64 Yalnızca Apple uygulamaları: Uygulamanın özel günlüğe kaydedilen NSError hatasının kodu
ileti dizileri.başlık DİZE İleti dizisinin başlığı
topics.altyazı DİZE İleti dizisinin alt başlığı
başlıklar.sorumlu BOOLE Crashlytics'in analizinin, sorunun neden bu kare olduğunu belirleyip belirlemediği kilitlenme veya hatanın
mesaj dizileri.çerçeveler TEKRARLANAN KAYIT İleti dizisinin çerçeveleri
Thread.frames.line İT64 Çerçevedeki dosyanın satır numarası
Thread.frames.file DİZE Çerçeve dosyasının adı
ipler.çerçeveler.simgesi DİZE Hidrat sembolü veya hidyalatılmış değilse ham simgesi
ipler.çerçeveler.uzaklaşması İT64 Kodu içeren ikili resme giden bayt farkı
Thread.frames.address İT64 İkili resimdeki kodu içeren adres
Thread.frames.library DİZE Çerçeveyi içeren kitaplığın görünen adı
ileti dizileri.çerçeve.sahibi DİZE GELİŞTİRİCİ, TEDARİKÇİ, ÇALIŞMA ZAMANI, PLATFORM veya SİSTEM
ileti dizileri.çerçeveler.bama BOOLE Crashlytics'in analizinin, sorunun neden bu kare olduğunu belirleyip belirlemediği hata
unity_metadata.unity_sürümü DİZE Bu cihazda çalışan Unity sürümü
unity_metadata.debug_build BOOLE Bu bir hata ayıklama derlemesiyse
unity_metadata.processor_type DİZE İşlemci türü
unity_metadata.processor_count İT64 İşlemci (çekirdek) sayısı
unity_metadata.processor_frequency_mhz İT64 İşlemcilerin MHz cinsinden frekansı
oney_metadata.system_memory_size_mb İT64 Sistem belleğinin Mb cinsinden boyutu
ünite_meta verileri.grafikler_bellek_boyutu_mb İT64 MB cinsinden grafik belleği
oney_metadata.graphics_cihaz_kimliği İT64 Grafik cihazının tanımlayıcısı
oney_metadata.graphics_device_sağlayıcı_kimliği İT64 Grafik işlemcisi tedarikçisinin tanımlayıcısı
unity_metadata.graphics_cihaz_adı DİZE Grafik cihazının adı
unity_metadata.graphics_device_tedarikçi DİZE Grafik cihazının satıcısı
oney_metadata.graphics_device_sürümü DİZE Grafik cihazının sürümü
oney_metadata.graphics_cihaz_türü DİZE Grafik cihazının türü
oney_metadata.graphics_shader_seviyesi İT64 Grafiklerin gölgelendirici düzeyi
unity_metadata.graphics_render_target_count İT64 Grafik oluşturma hedeflerinin sayısı
oney_metadata.graphics_copy_texture_support DİZE Unity API'de tanımlandığı gibi grafik dokusunu kopyalama desteği
oney_metadata.graphics_max_texture_size İT64 Doku oluşturmaya ayrılmış maksimum boyut
oney_metadata.screen_size_px DİZE Ekranın piksel cinsinden boyutu (genişlik x yükseklik olarak biçimlendirilir)
unity_metadata.screen_resolve_dpi DİZE Ekranın kayan nokta sayısı olarak DPI değeri
oney_metadata.screen_refresh_rate_hz İT64 Ekranın Hz cinsinden yenileme hızı

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

Google Data Studio, BigQuery'deki Crashlytics veri kümelerini, okunması ve kolay okunan raporlar haline getirin. ve tamamen özelleştirilebilir.

Data Studio'yu kullanma hakkında daha fazla bilgi için Data Studio hızlı başlangıç kılavuzunu deneyin: Data Studio'ya hoş geldiniz.

Crashlytics rapor şablonu kullanma

Data Studio, Crashlytics için kapsamlı bir örnek rapor sunar. dışa aktarılan Crashlytics BigQuery şemasından boyut ve metrik grubu. Eğer Crashlytics BigQuery akış dışa aktarma özelliğini etkinleştirdiyseniz, Gerçek zamanlı trendler sayfasındaki verileri içerebilir.Ayrıca, yeni rapor ve görselleştirmeler oluşturmak için bir şablon olarak kullanabilirsiniz. Kendi uygulamanızın ham kilitlenme verileri:

  1. Crashlytics Data Studio Kontrol Paneli ş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. Aşağıdaki seçenekleri kullanarak dışa aktarılan Crashlytics verilerini içeren bir tablo belirleyin: Projelerim > [projenizin-adı] > firebase_crashlytics > [tablonuzun-adı]. Toplu tablonuzu her zaman seçebilirsiniz; eğer Crashlytics BigQuery akış dışa aktarma özelliği etkinse gerçek zamanlı tablosunu kullanmanız gerekir.
  6. Yapılandırma bölümünde, Crashlytics Şablonu düzeyi'ni Varsayılan olarak ayarlayın.
  7. Yeni veri kaynağını oluşturmak için Bağlan'ı tıklayın.
  8. Crashlytics şablonuna dönmek için Add to Report'u (Rapora Ekle) tıklayın.
  9. Son olarak, Crashlytics kopyanızı oluşturmak için Rapor Oluştur'u tıklayın Data Studio Kontrol Paneli şablonu.
ziyaret edin.