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
- Firebase konsolundaki Entegrasyonlar sayfasına gidin.
- BigQuery kartında Bağlantı'yı tıklayın.
- BigQuery'yi etkinleştirmek için ekrandaki talimatları izleyin.
Projenizi BigQuery'ye bağladığınızda:
- Firebase, Firebase projenizdeki verilerinizin BigQuery ile günlük senkronizasyonunu ayarlar.
- Varsayılan olarak, projenizdeki tüm uygulamalar BigQuery'ye bağlıdır ve daha sonra projeye ekleyeceğ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 . Bu, her bağlantılı uygulama için günlük eşitlemeden alınan verileri içeren bir toplu iş tablosunu içerir.
- Crashlytics BigQuery akış dışa aktarımını etkinleştirirseniz, bağlantılı tüm uygulamaların sürekli güncellenen verileri içeren gerçek zamanlı bir tablosu da olur.
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 |
---|---|
|
|
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:
Google Analytics için BigQuery dışa aktarımlarını etkinleştirin. Proje verilerini BigQuery'ye aktarma konusuna bakın.
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");
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:
- Crashlytics Data Studio Dashboard şablonunu açın.
- Sağ üst köşedeki Şablonu Kullan'ı tıklayın.
- Yeni Veri Kaynağı açılır menüsünde Yeni Veri Kaynağı Oluştur öğesini seçin.
- BigQuery kartında Seç'i tıklayın.
- 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.
- Yapılandırma altında, Crashlytics Şablon düzeyini Varsayılan olarak ayarlayın.
- Yeni veri kaynağını oluşturmak için Bağlan'a tıklayın.
- Crashlytics şablonuna dönmek için Rapora Ekle'yi tıklayın.
- Son olarak, Crashlytics Data Studio Dashboard şablonunun kendi kopyanızı oluşturmak için Rapor Oluştur'a tıklayın.