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
- 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'ye günlük senkronizasyonlarını ayarlar.
- Varsayılan olarak, projenizdeki tüm uygulamalar BigQuery'ye bağlanır ve daha sonra projeye eklediğiniz tüm uygulamalar otomatik olarak BigQuery'ye bağlanır. Hangi uygulamaların veri gönderdiğini yönetebilirsiniz .
- Firebase , mevcut verilerinizin bir kopyasını BigQuery'ye aktarır. Her bağlantılı uygulama için buna, günlük senkronizasyondan elde edilen verileri içeren bir toplu tablo dahildir.
- 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ş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 |
---|---|
|
|
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ı tablo, 30 günlük bir bölüm sona erme süresine sahiptir. 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ı) dahil olmak üzere ham kilitlenme verileri ve Crashlytics günlüklerinin 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 sonunda 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ı, ülkeye 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:
Google Analytics için BigQuery dışa aktarmayı etkinleştirin. Proje verilerini BigQuery'ye aktarma konusuna bakın.
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");
Crashlytics BigQuery veri kümesindeki kilitlenmelerle 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ına ilişkin veriler com_google_test_ANDROID
adlı bir tabloda ve (etkinleştirilmişse) gerçek zamanlı veriler 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 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 izleri 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ı |
hafıza.ücretsiz | INT65 | Kalan bellek baytları |
depolamak | KAYIT | Cihazın kalıcı depolaması |
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'li/köklü olup olmadığı |
işletim_sistemi.türü | SİCİM | Cihazdaki işletim sistemi 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çlama_ç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_frame.sahibi | 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 (okuyun: 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ğru |
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ı |
error.frames.symbol | 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ı |
error.frames.sahibi | 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şı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ı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:
- Crashlytics Data Studio Panosu ş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 'u seçin.
- BigQuery kartında Seç'i tıklayın.
- 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.
- Yapılandırma altında Crashlytics Şablonu 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 şablonunuzun kendi kopyanızı oluşturmak için Rapor Oluştur'a tıklayın.